00:00
好,刚才呢,把那个数据库的一个增删改查我们搞定了,现在我们看一下这个表格啊,看一下表的那整个表的一个创建语句在这。只不过说有很多你看到的中括号这个。中括号表示。可写可不写的对吧,可选项是不是对吧,那我们把这个整体给它加进去看一下,第一个cre关键字没问题吧,然后table我们先理出来什么呢?就是不是不带中括号,就B选项啊,就是CRA table表明和字段嘛。对吧,和磁带这些东西呢,是必须要有的。啊,必须要有的,你看只有这几个关键字是什么。没有中啊,其他的都是什么。中括号对吧,好,那我们看一下第一个。中国叫external。External什么意思?
01:01
外部的。外部的OK,这后面呢,我们会讲管理表和外部表。啊,就会用到这个关键字,你现在稍微注意一下啊,它可以创建外部表,也就是不加他创建的就不是外部表啊,你把它叫做内部表,叫做管理表,这个都行。啊,就非外部的嘛,就是内部表嘛,好接下来这个东西就不用不用多聊了吧,对吧,啊,If not exist,防止这个出错,好接下来是这个什么列名这些东西,然后这个。什么意思?就是给这个table做一些注释吧,那也一样嘛,你可以加一个,然后后面加很多注释嘛,对吧?啊这个东西呢,其实我们也很少用好接下来。这两个东西一个是partition的呗。按什么什么分区,还有一个什么class。这这都知道对,一个分区一个分桶。
02:01
啊,知道排序是吧?啊统排吗?啊,这里面呢,有分区表,有分统表,这个都是我们后面要重点聊的东西,特别这个分区表特别重要,我之前提了一嘴,在生长环境当中,我们建的表绝大部分都是分区表。绝大部分都是分区表啊,等会我们会聊,这个分区表专门放了一节,看见没?啊,分区表里面有很多东西啊,很多东西,这是建分区表和建分工表用的,后面跟着什么东西啊,就是这个参数。列名对吧,分同也一样对吧?也就是我要对这张表按照哪个列进行分区,按照哪个列进行分组,其实大家想一下分区这个词。在哈度当中是有分区,分的是什么东西啊。是把数据给他分开啊。进到不同的reducer对不对。对吧,其实这个地方也一样。那对于我存储数据在HDF上来说,我要把数据分开,有几种方式分开。
03:01
要按照字段,我一个字段将数据分开,那你想现在我让你,哎这一堆数据放在这,你给我把这个数据给它做一个分开分离,我不想在一个文件里面存着,那有几种方式给它分开。不是按照这个列啊,列给你规定的,不是按照什么时间的,按照这个列啊。假如说这个列里边是ID啊,部门ID有一号部门,二号部门,三号部门。那你想这个一号部门,二号部门,三号部门的数据,我有哪些方法从那个隔离的角度给它分开在HDF上,作为存储文件系统来说。没怎么办?起跑数。123就是三个,假如说我三个都要分开,是不是可以分成三个不同的文件,我也可以分成三个不同的什么?文件夹。
04:01
是不是都从物理上给它隔开了呀,对吧?啊,也就是有文件和文件夹之分,我们要把数据集把它变小,那分区分的就是文件夹。分铜那就什么。刚才说了只有两种情况,那一个文件夹一个文件,它分的就是文件分桶呢,假如说这一堆数据一个G,你分成四个文件对吧,这四个文件在同一个文件夹底下。但是分区它不一样,它分成了四个文件夹。啊,讲到这个事儿,后面呢,我们要重点聊,现在呢,你稍微做做理解,这分区呢,就是你现在脑子里边知道它很重要,而且呢,分的是文件夹啊分的文件夹好接下来。注意这个地方,如果说你写了class by这个东西要。这分几个桶?啊,就分几个文件,就告诉人家这个是啊,啊,那我们前面这个store。
05:05
多推的半按什么能排序对吧?啊,就见表的时候就可以规定这个内容啊,就可以规定这个内容好这个呢,其实很少用,很少,我们说建表的时候必须按照这个排序,因为排序的时候我们c select的查询语句里边一定有麦。对吧,啊,一定有奥啊,一定有这个东西啊好,那接下来继续往下走这个。是不是看过?骂了对吧,后面跟着什么了。啊,然后fields map,还有collection对吧,还有的按什么分分割吧就行,那个分割啊,都在这个底下定义着啊,包括line这一行,它什么分割,然后这里。注意这个不一样,上面是。缩体的这个地方是做。做什么意思,存储对吧?啊。
06:02
就是默认的,我们是不是之前写的都是TXT啊。文本格式吧,哎,它里面呢,还有其他的格式。还有其他的格式的文件啊,可以来指定它这个存储格式,也就是说假如说这个地方我写了是一个什么接子啊,或者说是一个什么后面要学的什么OC这种格式,那你只能把orc的一个文件放到我的这个。目录里面了,你不是可以put进去能查到吗?那你只能put orc text它就不认了啊,那你要是放的是text,我在里边放一个其他的文件格式,那他也不认了,你放一个什么点ex可执行文件进去,他也认不了,能懂我意思啊,这是存储格式,可以指定他默认的呢,都是。然后最后还有一个location。啊,这个东西就简单了,其实跟那个,呃,我们的那个什么。建库,建库的时候指定位置一样,我建表默认的情况下,是不是在这个库底下有个表明啊,我也可以改变它这个路径啊,可以改变通过这个location来改变它那个路径是这个意思啊,就是跟那个库一样,库呢,你不指定location默认的是不是在那个wellhouse底下。
07:10
对吧,那假如说有个汉库在外号底下,我正常的在汉库里面建表,是不是在汉里文件夹底下的啊,我可以改变它逻辑啊,就可以指定啊,这是可以OK好这里呢,现在我们要关心的来。我们马上要讲的。就这几个吧,啊分区呢,在这我们到时候后面专门的去讲了啊,专门去讲的那具体的字段的一个内容也在这,什么分区表,分钟表,这个说了不常用啊,这个不常用,如果form里面呢,有fields connection map。对吧,啊等等这些东西,然后还有那个存储格式啊,Location指定位置啊,指定位置还有like like是复制表结构,就是类似于那个MYS当中,你是不是可以创建一张表一张表。直接把结构复制过来,它也可以好,那这个东西我们看一下我们当时所创建的这个CC。
08:03
是不是我当时怎么写的?别的table CC括号,ID,然后分号没了吧,但其实它给我们有很多的一个默认值来看一下。怎么看呢,Creep?Table CC。我们是不是只写到这?那你看,其实它里边有。还有按什么东西读。T,是不是我之前提过对吧,它默认的。好,然后还有什么输出的。啊,其实这个只是have做了加工,它本身上还是什么T化吧,啊,因为你用的是MR嘛,那MR呢,Text化超的不能封了,大家都要熟的对吧?啊所以呢,是按行来的,然后地址信息是不我们没有传地址信息。
09:00
默认的是不是放在这个库底下了。对吧,还有其他的。啊,它这个地方呢,就有什么。操作时间了啊,操作时间其他的一些属性啊,其他的一些属性,也就是说真正的你要。存储起来的时候是这样的一个内容。啊是这些个东西,就是你要创建一张表啊,创建一张表,这个才是最基本的。才是最基本的,这是最基本的一个创建表的一个语法了,就说这个位置啊,你不能没有,但是呢,你自己可以不传,它默认值有啊,这个是我们所聊的整个创建表的一个语法,其实对于have当中,它创建表其实还挺复杂的是吧。对吧,挺复杂,但是呢,我们要勾出来哪些啊,就是这个东西其实还好。Create table对吧,然后列明这个都肯定要有啊,跟MY一样,只不过说我们现在要掌握的,它要限定分割符location,以及重要的是它,我把它标红吧。
10:00
这几个其他的什么额外的注释信息可以不要。可以不要啊,然后给这个列的主持信息也可以不要啊,至于这个列是干什么事的啊,你可以加一个comment,然后还有分总表,其实在公司当中比较少用。啊,后面讲到分工表的时候,我会跟大家说,为什么这个东西在公司当中比较少用。然后还有一个存储,按照什么排序,一般进表的时候我们很少指定,因为查询的时候我们可以干嘛。可以指定啊,所以建表的时候一般不指定啊,所以呢,你现在要关注的,其实看着这个很复杂,那你只要缩减成什么。标红的这一些就够了啊,这个是整个的一个线表的语法啊,建表的语法,那我们把这个解一下。
我来说两句