00:00
好,那接下来我们来看一下click house一个重点表引擎啊,我们先了解一下表引擎,它是click click house的一个特点和特色,那么之前也讲了表引擎什么呢?就类似my circle里边,它是不是有一个no DB跟Mar DB啊,对吧?不同的引擎它有不同的作用,不同的功能,主要是在这方面做的一个区别,那在click house里面,咱们建表的时候,表引擎是必须指定。它呢,主要是这么几个作用啊,我们简单看看,这是一个官方的描述,从官网摘下来的啊,它是决定了如何存储表的数据又怎么存的呗,对吧,那首先第一个呢,就是什么存储的方式和位置,我存在哪里对吧,写在哪从哪读,正常来讲,咱们一般的引擎是不是都存在本地的什么磁盘。对吧?诶大家注意,咱们克里house是不依赖于哈杜的。呃,不依赖于什么HDFS计算资源,也不依赖于雅恩啊,这个是一个,那他自己管理,它一般都是在本地,那本地在哪里呢?还记得咱们默认配置是哪哇,Live click house就在这个里面,它里面有data这个。
01:15
路径来我瞅一眼呗,说到了咱们就瞅,嗯,好,唯一是吧,Qui,然后呢,CD live克house权限不够,哎呀,那修do s leave house。简单瞅一眼,在这个路径下面是不是有很多东西啊,其中大家可能关注的是什么,一个是这data,还有一个什么原数据,什么叫原数句啊,也就见表,你简单理解就是建表语句呗。就create table,那整个语句它是保存在这里的呗,啊,那你的具体数据内容保存在data路径下面啊。当然还有一些其他的东西对吧?啊,还有它运行的时候需要的一些依赖在这里也都有啊,它都混在一起行。
02:04
那那为什么,那直接说全部存在本地就行就好了呗,当然它还有一些可以集成外部,比如说集成MYSQL,集成卡夫卡,那数据就不在本地啊,一会儿再来聊啊,那还有支持哪些查询及如何支持,就有些语法是在特定的引擎下面它才能用的,能理解吧,并不是所有引擎都有相同的用法跟语法,呃,就比如说咱们前面。那我想想啊,应该是数组这里对吧,数据类型这里是不是有一句话。不能在modu表中存储多维数组,这里大家就能可见一斑,对吧,就多维数组在合并数家族用不了,这点就是这个意思啊,不同的引擎可能有些功能支持,有些是不支持的,那还有一个并发数据访问,咱们前面介绍特点的时候,呃,也聊到了它是一个什么。线程级的并行,它是不是可以多线程?
03:00
同时去执行一条查询呢,对吧,那并不是,呃,所有的表引擎都可以的,有一些不行,对吧,那还有一个索引。如果存在的话,就是说如果指定支不支持索引的功能,说白了,那你想想索引的目的是为什么,是不是为了快啊,数据量大的时候,我不希望说去做一个全表扫描。那样太浪费时间了,效率太低了,那如果有的索引就快了呗,但并不是所有引擎都支持,还有一个是否可以多线程的请求,对吧,还有一个数据复制。有些引擎它是支持数据复制,有些不支持,说白了不同引擎功能不一样,是不是这个意思啊,那我们必须在建表的时候明确指定引擎啊,当然每个引擎有相关参数啊,另外要注意什么?大小写敏感。你在写引擎名称的时候是大小写敏感,那它的命名是有什么特点呢?大家简单瞅一下目录这种命名方式是什么?是不是大驼峰啊?
04:03
对吧,每个单词的首字母大写大头风。它是这种命名啊,那我们先聊聊几个简单的啊,一个我们这边列了几个,第一个叫tinylo。这个是属于什么?是不是log家族的?我们前面也介绍了,说有表引擎,它有多种类型,对吧?其中一种是日志家族log tiny log是其中一个,它是什么呢?列文件的形式保存在磁盘上。不支持,所以没有并发控制。一般保存少量数据的小表。你看它特点是什么,首先列文件不用讲,因为咱们是列式存储嘛,这个可以理解,保存在本地磁盘也可以理解,但它的特点是什么?不支持,所以没有并发。所以这种场景一般是用来干嘛呢?是不是自己做一些简单测试的时候,你可能才会用到这个生产环境,你绝对不会考虑它的,对吧?啊,那其实像咱们前面建表在你看这个我记得是什么,随便找一个吧。
05:07
咱们有个建表语句对吧,你看咱们在讲枚举的时候,我是直接粘过来,你看我建表语句后面有一个什么engine引擎,等于tinylo,就是一个测试,简单测试临时用的啊,用tinylo那行,这个就没必要过多去关注,知道就行,还有一个是什么memory。听名字就知道了,是不是基于内存呢?那内存什么特点呢?是不是快呀?但它的缺点是什么?容易变心呗,也不是容易变心就是什么呢,是不是我一呃。如果一重启或者挂了,是不是内存里面数据就没了,就清空了,所以你觉得生产环境会用吗?那肯定不会啊,这个就像一个什么,生活中是不是有些人是海王啊。他今今晚,比如说海王A,他今天跟某个异性约会。
06:00
B。今晚对吧,他对这个异性说的肯定说啊,我很爱你,很爱你怎么样怎么样怎么样,对吧。当然,他说的没做,今晚他是爱谈的,对吧?但过到了明天,是不是相当于重启了?时间一过,你谁呀,我不认识你,对吧?内存不靠谱啊,不靠谱,那它呃也不支持索引对吧,它虽然性能高,当然只是什么简单查询下面,因为基于完全是基于内存的嘛,你看每秒钟能超过十个G的速度。它也主要用什么测试啊。数据量不大的时候,所以这两个咱们简单聊一聊就行了,那比较重要的重中之重是什么?梦去吹。这个就是所谓的合并树家族。它是一个系列啊,它是一个系列,这也是click house最强大的一些引擎,也是咱们生产环境会重点用的,所以这一块大家要重点了解了,这是一个重点啊,敲黑板啊,呃,那他。
07:08
它本身是个引擎,它还有一个系列带有前缀的,你看下面。这两个是不是叫replacing magdu,还有一个叫sum medu,带一个前缀对吧?那不同的前缀它有不同的功能啊,它有很多小D,而且他们都是支持索引跟分区的,那它的地位很重要,相当于什么一弄DB,至于至于MY就很重要呗,特别重要啊。那这一块呢,咱们先不展开看,咱们先看一下官网,呃,官网这里咱们点到文进来文档了,对吧,我把这个搜口参考关掉,目录是这样,那在哪呢?是不是有个引擎,引擎你点开它分两类,有一类叫表引擎,一类叫库引擎。当然控引擎这没几个啊,这是一些提供的一些新功能,咱们先不去了解,呃,那咱们再了解一个表引擎。
08:07
你看它分为什么,这个是集成引擎集成啊,什么叫集成,集成外部系统呢?什么叫外部系统,就不是click卡号,比如说my circleq是外部系统呢,卡夫卡是不是外部系统呢?那我们在生产环境是不是有可能要结合他们一起用啊,这种就集成的使用,还这个是介绍对吧。你看这后面这个就是什么。合并数加组。你点开。是不是有这么多个?这么多种合并术引擎。对吧,这是合并数,那我们再看看之前也谈到是不是有一个日志家族啊,来点开日志家族有几个,有三个嘛,什么log log tiny log tiny log,咱们看了对吧,那还有一个什么特殊的一些引擎,它没有归类啊,就叫特殊,你看什么字典表啊,分布式啊,墨迹啊,合并表啊,文件表啊,空值表啊,什么什么什么什么什么什么什么对吧,这些。
09:09
他没有做分类的。嗯,那我们来看看呗,首先看一下这个日志,家族看一下介绍。点一下它分为这三种,呃,当然你可能这个看着不舒服怎么办,贴中文呗,中文。你看日志家族,它是什么小?数据量多少呢?小于100万行。那主要是用一些测试的对吧,不知是索引,你看这些这些都能看到啊。还有什么关于锁的不同,引擎还不一样啊等等,这个简单聊一聊就行,生产环境你不会去用的啊,呃,那你再看看这个集成引擎聊的是什么,这些应该都很熟吧,Mango DB,一个数据库,S3,亚马逊no DB。内嵌的对吧,Ruby的MQ消息队列,这也是个数据库JDBC。
10:05
还有什么HDFS卡不卡MYSQ他都可以跟他们集成,那大家注意集成的意思是什么呢?我画个图啊,比如说my circle,这是my circle,那这是house。House,那正常来讲,如果你要查询买蛇口的数据,你要么直接查对不对。那还有一种场景,你是不是先把这个数据导入到里格house?之后你再去查click house是不是?但是他就什么,那这种就比较麻烦,你还要导入呗,那他就提出了一种方案是什么,我click click house直接映射到MYSQL的表上面。这种就叫外部集成,然后呢,我在这里执行一个查询,他查询查的是谁啊,查的是MYSQL,也就是说我数据不用做导入了,这种呢,就是一种集成的引擎,说白了是不是打通了一个通道啊。
11:07
对吧,做了一个代理啊,他并不尊重拥有数据,但是他可以去查他这个,所以咱们一开始介绍特点不是有一句话吗。姚炳婷。数据的存储方式和位置。写到哪里集从哪里读,区别就在这一种是自带的,一种是外部集成的啊,所以不一样,那这边的使用很简单,咱们也没没必要单独去看了,我比如说我点个my circle。他这边就有讲了,格式怎么写就行了。可以存储在远程MYSQL服务器上的数据执行select查询,那这边其实也是我不推荐大家看中文的原因,你看他的这个案例是不是很简单,看的一脸懵逼对吧,但是你切换成英文的。
12:03
清清楚楚,明明白白呗,对吧,那这个就是什么呢?你在这是click house的建表语句,你看create table,然后名字这里是字段。然后呢,那个my circleq引擎怎么写呢?N等于my circle。然后这个里边还要用括号包裹起来,写一堆参数,你是你要连MYSQ是不是得知道它的什么主机端口啊,你得知道它在哪对吧?嗯,那是不是还得知道你这张表对应的是哪个库,哪张表啊,那你访问MYSQ是不是要用户名跟密码呀,对吧?等等等等一些参数,就这么简单啊,就这么简单,后面是一些连接的设置资源,你看这是不是连接池啊。连接重试啊,自动关闭啊等等对吧,这些东西你直接上官网需要一看一用就行了,比较简单比较基础啊,就是一个用法,那之后呢,你这张表填完之后,你就可以在click house直接查到MY里的数据,大家注意只有什么。
13:09
查询。对吧,当然还有什么插入。请求。那同样的道理,跟其他外部系统也一个道理了,你需要啥你去用就行啊,这种叫外部集成引擎叫集成引擎啊,这个咱们没有单独介绍啊,因为它也比较简单,你看卡不卡的也是一样啊,N等于卡不卡。然后呢,参数它是写在下面。这些大家应该都看得懂了。包列表对吧,哪个topic,哪个消费者组格式。对吧,分隔符等等等等等等等等,这个就比较简单了,下面也有具体的一些案例,大家去需要用到再去瞅一瞅啊。这只是它提供的一个功能啊,那咱们核心的还是了解什么呢?Multi family合并数引擎啊,在这一块也是咱们生产上会用的比较多的啊,这是咱们的对这个引擎有一个初步的认识。
14:13
这也是他的强大之处啊。
我来说两句