00:00
那接下来呢,我们了解一个它的一个基本见表语法,那见表语法只要你懂点思考差不多大差不差的啊,那我们可以通过help命令去查看它的用法啊,举个例子来,我们进入到这里,Help create table。哎,回车。啊。这边就展示了很多东西,特别特别的详细,对吧,包括各种使用方式,他这边都给到我们了。你看还分了分门别类啊,可以说是特别特别详细了,还翻到最上面啊。啊,太长了,翻不上,你可以跟这个去看啊,那么我们看一下基本语法,它有哪些部分组成,首先呢,叫create table。那external是建外外部表的时候来使用的啊,外部表呢,后面也会介绍。
01:01
然后呢,可以加一个什么呢?If not it,就如果不存在我才见表,存在的话就不见了,这个在我们使用搜狗验常见对吧,不过它这个只根据表明去判断啊,就判断这个表明存不存在啊,那后面呢,是不是就是指定表明啊,你要见表的表明,那前面你也可以跟上库名,库名可以不携带,那格式就是库名点表明。啊,这个也是一个常规用法,熟悉circle口应该都懂,那后面该跟什么呢?首先是一个括号,括号里边可以写这些东西,这就是列的什么定义,什么叫列的定义?我举个例子,比如说我要建立一个列叫ID类型,我要给个int类型,这就是一个列的定义啊。那我们是不是见表定义多个列,比如说我再定义一个内,哎,我定义一个是这类型啊,这个就是。
02:01
呃,下面这一行表示的意思。就定义列,那同时可以定义一些什么呢?索引相关的东西啊,这方括号是什么意思啊,可选的啊,就可写可不写,那这就是最基本最核心的,那再再往下看一个很重要的叫引擎。啊,引擎引擎呢,可以是olap,可以是MYSQL,外表可以是broker表可以是外表。啊,那一般最常用的是什么?就是op,默认呢,你不指定也是op啊,接下来是。哪些是替列?对吧,Key链或者说是也不能这么讲,应该叫做key的一个描述信息啊,Key的描述信息这我们讲到数据模型的时候再展开,现在你可能没什么概念啊,那这边是不是一个表的注释啊,对吧,这个用法跟各种数据库都一样啊,一个表注式,再往下这两块我们一起看这个就是。
03:07
对应我们前面讲到了一个是什么分区,你是不是得按照某个字段做分区是吧,那这就是指定一个分区语法,那下面这个distribution。这个是不是就分桶啊。对吧?还记得刚才讲分筒对应就是划分最小的物理单元吗?那就是那个叫tablet。啊好,还有呢,是一个叫roll up上卷。就是获取更粗力度的一个聚合情况。呃,我们后面也会具体展开介绍,再往后呢,Properties这边是不是指定一些表的属性,哎,就某一些属性一些参数,我们可以在这里进行指定。再往后呢,如果是个broker相关的,是不是还可以指定broker的配置项啊?整体而言呢,我们在建表语句上可写的有这么多种,那其中后面这些都是可选的。
04:12
应该来讲不算陌生对吧,可能比较陌生的,就这个啊这这个。这样其他都很常见,像什么分区啊,分筒啊,注释啊,列的定义啊,这个相信每个搜索都会有的。好,另外呢,二间表示一个同步命令。命令呃,就是建表成功,就是你看到你输入建表语句,返回一个OK,那就说明已经建表成功了啊不不是异步的,那接下来简单说一个。概念有的人称do是什么?单分区和复合分区啥意思呢?啊,我们先了解一下复合分区其实啊就是什么意思啊,T分区也分同啊,也就是说你指定了partition,也指定了distribution,这两个都指定了,这个就叫复合分区啊,那第一级复合嘛,第一级就是。
05:09
我们所谓的分区这个概念,前面一直讲的这个分区的概念。那第二集就是分筒。啊,我要按照哪,按照什么进行啊,划分分桶。那单分区我们看看什么叫单分区,也就是说我只分筒不分区,也就是说没有这个part,只有这个distribution,那这个时候其实它也是存在分区的,但是它只有一个分区啊,这个分区名就是表明相来说分区不做划分的就啊不做划分了,那我们用的最多的啊,应该还是这种复合分区的方式。这是关于建表语法的一个基本介绍,那后面呢,我们也会看一些实际案例啊,然后我们再回头来。
06:07
结合这一块的知识啊,大家就会掌握的更熟一点了,那接下来我们聊一聊一个字段类型对吧?看一下Doris支持的类型,首先是数值类的。我们看这几个像他有什么呢?先找我们认得的对吧,呃,像f double这种浮点型的。它也有啊,那还有什么在我们用跟金钱相关的时候,经常用的这个disim,它也是有的,Decim才能保证金度对吧?啊,这里就涉及到你一个经验问题,比如说你,呃,这个有个字段是跟钱相关的,是金额,那你是用double还是用decim呢?肯定是用DEC,它才不会不会丢失精度嘛,Double是存在精度丢失的问题。那这里也一样啊,那在认识一下其他的跟int形相关的是这几个,这几个是整形,它分为什么呢?Tiny int small int big int,还有更大的large取int,对吧?啊,由小到大,由小到大。
07:20
Tiny int是一字节啊。有这个。Small int呢,两字节。Big in8字节。Large int16字节,如果把它换算成咱们熟悉的这个big int是不是相当于long类型对吧?弄是不是八字节,那int是什么?Int是四字节对吧?这里没有,那small int是不是相当于咱们呃,里面的一个。Hot是吧?那这个是不是。就这几个啊,那拉int是更大的。
08:01
好。那再往下看一些时间类型,一个是data,一个是data time,我们在分析过程中肯定少不了日期的字段啊。那其实date是什么呢?就是到天。Data time是可以支持到哪呢?支持到秒啊,就看你的需求了,你的日期字段是要到天还是要精确到秒,那对应的存储空间也不一样,精度精确到天的date是三个字节。精确到秒是八字节啊,你看下面都有这个,你看是不是十分秒都有啊,十分秒都有上面这种只到天啊天。还有一个差定长的一个字符串,它长度范围是一到二五啊,默认是一,它后面可以写一个括号,也就怎么写呢。啊就就诶啊这么写,比如说差,你这里面可以写个比如说五五十五对吧,这是允许的范围是一到二五,这它的长度啊。
09:06
那ver这个MYSQ也有对吧,Ver呢,它前面就。加了一个VR,它是一个变长的字符串,变长字符串长度呢就更广更大一到65533,这个买搜狗差不多啊,然后这个是什么呢。HIR是什么东西啊?这其实是也是很常见的,大家想想我们在去虫的时候经常借用什么数据结构啊,我们先不说哪种开发语言,首先这个set这个结构大家是不是认得set是不是会去重的一个集合对吧?那更进一步的,我们在呃实际工作中经常常用的是不是还有一个布隆呢?布隆过滤器,那对应的是不是一个bit map位图啊?那还有一种方式就是HL,这个全称叫什么呢?应该叫hyper log log hyper log log这种算法是不是也是做一个去重的?
10:10
对吧,这个在都是很经典的几个做法,那这个I就是这种的一个结果。那它的使用是有限制的,并不是说你随便定义就可以用啊,它只能通过配套的这几种方式啊进行使用。那还有一个诶,刚才提到bit ma位图bit ma,那这里就有了啊,那最大的支持是二的六十四次方减一啊还有一个这个大家注意啊,这个是有版本问题了,这个是零点是G啊,是0.15版本支持的。因为早期版本一直没有呢,可能大家觉得不是,可能有有些场景不太方便啊,不太方便,那在0.15版本增加了这个string类型,并且它大家要注意,它最大支持到两个G啊,最大。
11:06
容量是两个G。这些呢,就主要的咱们一些字段可以说,嗯,都是相对比较熟悉的一些类型字段类型,另外一个就是呃,聚合类型,就我们在建表的时候,其实会如果是像3.5讲到了一个聚合模型的话,会有一个定义的聚合类型。那个其实不属于字段类型啊,那只是说一个聚合类型,那后面讲到的时候,我们再一起来看啊。
我来说两句