00:00
大家的发的表情越来越奇怪了,对吧?啊,像house里面呢,它默认的是一个笑脸,你就发笑脸就完了呗,对吧?好,那接下来呢,是我们第三章数据类型,我们做一个了解。啊做个了解对吧,呃,那主要的还是这些个类型。当然这个不是他全部的数据类型啊,我们只是说把它相对来说比较常用的一些类型呢,给它列举出来了啊,那如果说你要砍这个,看这个数据类型这边有切到这个文档。啊文档啊,然后这边呢,我们来看到啊。它这个地方有一个S。指南对吧,搜个指南,那我们点开啊,搜索指南当中呢,我们能看到这边有表函数啊,诶这个地方就有一个数据类型,注意在这个搜索指南里边,对吧,有一个。Data text数据类型,点开数据类型里边an in的类型,Flow double对吧,然后DEC啊,布隆string啊,Fix stream n啊,指定长度的啊,UID date date32 date time date641堆啊都分开了对吧?然后每举类型啊,数组对吧?啊top元组啊,聚合,聚合函数,这个聚函数啊,这个我们不用管呃,能不能为空对吧?还有指定的一些数据类型,特殊的special对吧,特殊的这类型啊,还有map对吧,它里面呢,也可以存这种复杂结构,但一般很少这样去存。
01:35
很少这样,就是还在发表情呢,行,那这个呢,每一个啊,他都有这个解释,比方说我们点进来对吧,他都会有详细的这个介绍,包括有一些例子。对吧,包括有一些例子在这边啊,做一些加减乘除对吧,这个东西都可以啊都可以。对吧,还有负数啊,还有负数突出一个啊,笑出双下巴啊,行,那大家要知道一下,就是我们文档当中给大家提供的这些呢,只是一部分啊,不过今天的这个科林浩这个课程啊,确实对大家来说比较轻松啊。
02:16
呃,在数仓当中难得的,整个实时数仓当中难得比较轻松的时候了,对吧。留着都比较难啊,但是今天这个下午的课程呢,会比较轻松啊,确实比较轻松啊,第一个那我们再看一下整形啊,整形呢,它主要分为这这样的啊IN863264,那表示位置呗,位数对吧,那这个呢,负128~127啊,然后呢,负的32768啊就正常的,我们之前短整形带对吧,然后呢。短整形int long对吧,就这样子的啊好,那下来还有这个无负号的,所以无符号呢,它就没有负数区间,从零开始一直到255,那刚好啊位数在这对吧,这是负128~127,刚好255256个,256个数字对吧,零到二五五二二百五十六个。
03:11
啊,吃了炫脉是么?啊,根本停不下来啊行,那这个呢是正二,他就double一下吧,把这个数据double一下对吧,你要考虑零的存在啊,就说把这个减一大过减一啊呃,十六三十二六十四,那这个就还好对吧,因为嗯这个表示的范围会更大一点,就是正数的数值会更大一点,往往有时候呢,我们在统计什么个数啊,像这些指标的时候,我们就可以用无符号的u in对吧?啊不用直接用in的,因为你要统计个数,那最小它也得是零个,它不能它不能是负的。对吧?啊这意思第二个负电型啊,负电型呢,是有FLOAT32表示原本的float对吧,还有FLOW64表示double啊单精度跟双精度,但是无论用float还是用这个double这种类型的,呃,那它都会有这个精度损失,其实我们刚才看到在官方文档当中,这个就官方文档拿过来例子对吧?C那一减0.9啊,一减0.9对吧?那比方说我们拿这个来看一下啊,它呢,并不是我们看到0.1对吧,它会有精度损失,那大家想一下,如果说我们存的是一种金额。
04:20
对吧?啊,那如果说我们要保证这个精度,那你说应该用什么类型啊。我们应该要用什么类型才可以啊?对了,Decem对吧,而且刚才在这个官方文档当中,咱们确实看到了他有这个什么。第三收益类型对吧?啊,它可以指定这个保留的小数位,那这样的话精度就会更高对吧?好,这是我们所看到,这个我们就不聊了,对吧?呃,那第二个这是浮点型啊,也比较简单,没什么好说的对吧,只不过说它写法啊,注意一下,它并不是像我们之前所学习的那种写法完全都不一样啊,然后鲍尔类型半类型呢,也是一个非常常用的数据类型。
05:09
对吧,非常常用的数据类型在我们的MY搜狗还是在这个have里边啊,比较常用,但是在这个地方你看啊,我们刚才打开这个data,大家不类型在这。对吧,挂号类型点开。点开好以后,他说什么东西啊。他说什么东西啊,他其实告诉我们,哎,没有波尔类型,没有波尔类型,那我们用u in的八啊,然后呢,用零一这两个值来表示对吧,代替啊,那这个呢,往往我们会结合着后面的叫枚举类型来用它呢,并没有这个true false。对吧,那有就说我就是要这个true false呢,那他官方告诉我们了,咱们可以用什么零一来表示,你不要用true跟false了,你就用零一对吧,这个意思好,这是我们所看到的一个点啊,波尔类型你要知道一下没有啊,它没有专门的波尔类型。接下来第。
06:15
对吧,嗯,这个就是精度更高的,可以指定这个有效位啊,那这里边儿呢,有这几种啊。乘十二六十四一百二十八啊就表示总共有多少位,总共的有多少位,然后呢,小数位你可以保留多少,总共加起九位,18位,38位,对吧?你可以指定一下这个小数位的一个个数,中间呢,有这个S嘛,可指定这个小数位的个数啊好,这个S表示小数位有多少个,一般来精度比较高的,我们可以用TC,那这个呢,不多聊了,也是常规的,而且它的名字啊,注意叫TC32 64 128,并不是直接叫TC。接下来呢,是字符传数据类型,字符传呢,我们刚才看到它有两种啊,第一种呢,Three这个就完全一样了,哎,终于碰到一个完全一样的数据类型。
07:01
就叫string对吧,它跟我们之前所学习过的string完全一样。啊好,大家来fix string,这个是指定长度的啊,就固定长度的啊,有一个fix string,但实际上在生产环境当中,我们更多的还是喜欢用这个string变长的。随便对吧,多长都可以啊,那这个呢是进程的啊,一般就是固定的,假如内容本来就是固定的。对吧,如果说你想通过这种方式来过滤掉一些脏数据,哎,可以对吧?啊,可以用这个过滤掉一些脏数据哦,嗯,我用正常,假如说超过这个长度,那不行,对不对啊,但一般来说肯定四命用起来更方便啊,那毋庸置疑的,所以未来我们用的更多的还是四命类型,这是字符传啊,字符传呢,这个就跟我们之前所学习的完全一样,没什么区别,接下来每举类型。啊,枚举类型,我们之前说了有枚举类型可以代替布尔类型,波尔类型没有对吧,他用零一啊,那在这个当中有枚举有枚举啊好,那我们看一下枚举呢这样。
08:08
在这里边。也有这个枚举类型啊,其实我们文档当中例子啊,都来自于这个观光的这边枚举类型。对吧,啊,我们可以用一个八。位和16位来做它这个枚举,也就是说什么意思呢?比方说我们现在希望做到一个这样的事情。创建一个带有枚举。八啊八呢,它是用一的八来做的,八位对吧?啊,你要16,那就16位,16位就是先在一个数据范围啊,然后呢,我们指定hello。1WORD2也就未来你只能输hello跟word这两种,输其他的就会报错,就就相当于假如说我这个叫true,这个叫horse,是不是形成了我们的布尔类型啊,对吧,我不叫这个hello word,我叫true跟false,以后往里面插入数据的时候,只能插入什么处跟false,你插入其他的报错报类型不就是这样的意思嘛,对吧?好,那我们看一下创建一张表啊,这个表呢,也是从这个文档当中拿过来的,就是它对吧?我们看一下啊,首先create table没有问题,表明对吧,然后指定字段,字段呢叫X。
09:22
然后呢,指定类型,只不过说这个类型呢,是一个枚举。是一个枚举类型对吧,然后枚菌里边指定你要输的hello跟word一个一一个二对吧,然后呢,引擎用的tlo tlo用于测试用的最多啊,这个后面我们专门要聊引擎再说啊,我把它复制一下。这也能复制上吗?过来,然后呢,加一个分号好保存那受。Table斯,我们多了一个这样的表啊,现在呢,你去查这张表,那个新。From。没去表它现在的零条数据空的,那肯定没有问题对吧,那我们往里面放数据,大家肯定清楚音色的into表明拿过来,然后Y柳丝。
10:09
大家想,我们只能放什么?哈,行不行?放哈,可不可以啊,还可以对吧,放word呢。当然也可以啊,这个时候我们再查下这张表,哎,有两个值,一个hello,有word,但如果说我插入hello word之外的,比方说我插入这个link。他是不是就报错了,他报错了,他说这个里边我们是一个类型,叫什么hello word你写的不好意思不认识。对吧,那其实从这个点我们要看出来,假如我们建一张表,这个字段里面呢,我这写的是to,这写的false,那未来这个字段是不是只能放to跟false,不能放其他的值啊,是不是相当于用枚举类型做了一个负类型对吧?这是我们所看到枚举类型啊,当然它还可以干什么事呢?呃,除了这个之外,你往里面插入数据啊,Y64对吧,可以同时插入多个,这个我们不用关心,那接下来还有。
11:08
就是如果说我们可以查询这里面具体的121234这个值,刚才我们不是说了,Hello,对1WORD对于二嘛,对吧,我可以查询。做一个转换,把我们每举X这个字段呢,没绝对性,把它强转成一个八。对吧,把它转换成你的八来看一二,就是我们之前定义枚举的时候,定义的东西,你也能看到它根本的这个值,对吧?啊,这就是我们所看到的叫枚举类型啊,更重要的它这个作用呢,可以帮助我们去构建这个布尔类型啊这块OOK吗?刚才吃了现饭,现在就完全停下来了,是不是睡着了?全麦结束之后就停下来了是吗?
12:00
好这块呢,东西倒不难对吧?啊,那下来时间类型啊,时间类型啊,这里边呢,有这几种啊,第一种呢是data塔。可以插入一二来,我给你试一下好吧。报错,那有可能说你说呢。这个。这个对吧,然后呢,我们查一下这个数据啊,注意那你想啊,为什么这个不行啊。这个是字符传吧,对吧,而枚举类型八跟16对应的都是什么in的类型。对,这个是字符串,这个字符串对啊好,那更重要的是我们插入一之后,我们查一下这个数据啊。它显示的还是谁。
13:00
还是hello啊,可以插入一二对吧,0112这种方式显示的还是谁,正常显示的还是hello。啊,对吧,这个没有问题啊对,有同学要测一下,那就测一下呗,对吧。好,那接下来呢,这个时间。啊,时间类型对吧,呃,时间类型当中呢,有这几个date。Data time,还有一个data time64这个分别对应的年月日,年月日十分秒和年月十分秒加毫秒。后面还有个点。对吧,加毫秒数啊,类似于这样子的,当然呢,在这个当中,你可以去看到里边内容啊,啊它呢有这个类型,刚才我们打开的对吧,就是这个文档在这边啊,可以看到有很多的数据类型啊,指的是这个意思啊,这个我们都关心,那将来还有这个数组。受阻。数组不光有数组,我们看到在这里边它还有map对吧。刚才我们看到是吧,Map对吧,还有map这种结构KVKV类型都可以啊,但是这种复杂数据类型在格列号当中就用的比较少了。
14:07
啊,用的比较少了,因为它是作为op对吧,数据库,然后呢,更多的对应的是这个在线的实时分析。你要做实时数仓,可以用到这个click house在工作当中很多时候用C号做这个实时数仓,对吧。好,那为什么说这种复杂数据类型呢,反而比较少用呢?因为这样啊,你看我们要做实时查询,所以我们希望它查询的速度越快越好。对吧,那如果用复杂数据类型,你要做一个什么指标的时候,假如说是数组吧,是不是先还要把它炸开。包括map一样,那你用map,你要获取map里边值,那这个明显的效率就变低了,所以他就不愿意做这个事啊,不推荐。对吧,不推荐使用这个啊,所以你要是真的用科house,一般你把数据先加工好,假如说原本的数据有数组,你也不要直接把数组存到这个科house,而是先给它压平了,然后再给它放到click house,应该用这种方式才可以,这样可以优一点,对吧?这个大家应该能明白啊,好,但是呢,在这个里边我们可以看到它可以有这个数组,第一个我们可以直接用A瑞,跟账号当中一样啊,用A的方式。
15:20
212我们可以看一下它类型啊,这个呢是作为X,这个作为X段,然后呢to type。对吧,打印它的一个type type name就是它它的一个类型名称,大家看啊,数组一二,然后呢,它类型是a u in8,它自动推断的。又用的u in the8啊,推断出来里边放的数据类型对吧?好,那这是这个还有另外一种方式,我们可以这样啊。直接写中括号,往里面放数据也可以。直接写一个中括号往里面放数据对吧,它是一个数组,这个呢也是数组U18对吧?啊,你可以定义数组之后呢,可以往里面放这样的数据啊,可以放这个中括号一二这样都可以。
16:02
好,这是我们所看到的一个数组类型,当然呢,它并不常用,那这是整个的一个数据类型,其实还是我们所熟悉的一些比较常规的数据类型。只不过说呢,呃,对于这个而言。里边的名字比较奇怪啊,他取的名字比较奇怪,对吧?啊,只不过说之前我们也有这个整形这个浮点型啊,单精度多双精度对吧,有这个字符转字转还正常。对吧,啊不尔时间以前都有都有这样的数据类型啊,但是呢,只不过说他这里的名字取的方式不太一样而已,对吧?好,那这个呢,我们截一下,这是我们说的这个第三章数据。
我来说两句