00:00
那么接下来啊,咱们继续对吧,再往下走,呃,那么再往下走呢,咱们现在啊,来看我们整个这个功能对吧?功能呢,我这有这么几个功能点对吧?如果说你要想完成这个操作的话,咱们现在呢,应该第一个数据准备完了,刷流合并完了,然后实付分单实现完事了,对吧?但注意啊,同学们,你目前呢,你把这个植物分摊给处理完了,你是不是仅仅是在咱们这个控制台把咱们结果给打印出来了呀,对吧?那你说我现在要统计的话,你在这里肯定是没办法统计的,对吧?那所以说怎么办呢?对吧,你应该把这个数据呢,给它保存到一些我这OAP对吧,这样的一些我这个分析系统里面去,对吧?那大家可能马上想到的谁呢?ES是不是可以啊,对吧,那咱们现在呢,给大家今天啊,大家进到另外一个对吧,叫什么呢?叫咱们这个clean令house啊,就是我现在接下来要做的事是我要把它订单以及订单明细,他俩做完之后形成的宽表数据保存到哪呢?保存到我们这令。
01:00
House就去,所以说呢,在这里咱们得穿插一个东西了,什么呢,就像穿插ES一样,把咱们的clean house呢给穿插进来啊,在这里到第六个快接近尾声了是不是,其实咱们如果要是把那都放到一个这里面,这个这这还挺多的是不是,但拆分完之后一个一学感觉没多少东西。呃,那么咱们的clean house呢,同学们对吧,那这块呢,其实咱们的这个你知道,就是说咱们到时候我真正在做项目的时候,同学们你们肯定呢,是选一个,那就是咱们现在真正以后在做项目的时候,对吧,那你肯定哎,我现在把这个数据啊,比如说我实物分摊,实物分摊完之后,你把这数据保存哪了对吧,要不然保存可定号,要不然保存到我们一来search对吧,就是很少啊,当然有些公司它也会这样,对,就是我现在我可能做不同的统计,有的时候呢,我可能按关键词搜索,对有的有的时候呢,我可能需要做什么再做一个什么照对吧,那这个时候呢,他可能把这数据都保存到不同地方,对吧?因为你想一想同学们,其实对于我们大数据成员来讲,同学们我现在把这数据达到了,然后接下来我做分析的时候,对吧,我现在保存ES1份,然后保存到我们这个clean令耗一份啊,我在clean林耗一份,其实对于我们这来讲,这程序里边它不会有太大的一个什么性能损耗啊,没有这个对吧,就看一看你们公司现在要用什么来进行分析,短来技手进行分析。
02:22
对吧,那么咱们现在呢,这个clean house呀,它是什么?对吧?Clean house它是什么?那么咱们现在呢,来带着大家呢,来看一看啊来带着大家来看一看对吧?呃,那么这克林house呢,它本身啊,在这里是俄罗斯的的这样的一个网站的,在2016年开源的一个劣势存储数据库,对吧?这个网站相当于谁呢?相当于咱们这俄罗斯的百度啊,就是它也是做咱们这个搜索引擎的,对吧,然后现在俄罗斯百度对吧,然后在多长时间呢?在2016年大家想一想对吧,一六年到现在,然后咱们就可能借绍的,那说明这个技术发展应该是比较快的吧,对吧,你想想咱们现在的一六年到现在才几年时间啊,咱现在就能用到,而且注意啊,现在有好多公司呢啊,都在对这个研究,可令house对比如在研究的对都在摸索着,对吧,他不像它不像我现在一些技术这么成熟对吧,比如说我现在对一说渣对你渣。
03:22
他的书籍多少对吧,然后扎上配套的一些工具有多少对吧,然后比如说我现在ES他资料也很多对吧,你比如说我现在想去咱们买一本克林浩的书对吧,来咱们这里,比如说来到这里我们呢去买本克林浩资料,对你没得选,同学们对就一本。还是今年出的,对就就比较就就稍微说得过去的,就这书对就一本,所以说呢,那么最好的我们像clean house对吧,大家都什么呢?有的是在线论坛里边,对有的呢,去看官网对吧,比如说你看我在这里啊。
04:13
对吧,大家看一看就这本这你你你这个没没办法选同学们对吧,没办法选对吧,这东西这这就不是了,你看咱们现在优现在选书的话,就这本对吧,就这个对吧,就这个对吧,所以说假如说同学们你们现在聊的时候的吧,哎,我可能没用课林house对吧,然后接下来我现在的ES,然后呢,后来你可以跟聊啊对吧,说你们现在用什么对吧,用可令house哦可令house我也研究一段时间,但这个可令house这个资料书比较少,我去那京东一看,好像就一本比较成熟的书是不是对吧?你想一想,假如说你要跟我聊的时候能聊到这,我觉得诶这个你对基础敏感都还是可以的是不是对吧?咱们呢,现在不光对基础敏感,对吧,能知道我现在未来怎么用啊同学们,那么它本身呢,对吧,也是对吧,开源的劣势存储数据库对吧,然后接下来使用我们这个C啊,这个C加加语言编写,对主要用于什么呢?用于我们这个在线分析处理对吧,然后呢,能够使用我们这SQL查询,然后实时生成我们这个分析的一。
05:14
对吧,对吧,这个数据报告,那这里呢,之所以发展这么火,对吧,那么和他对这两份有很大的关系,一个是这个。使用搜狗查询。对吧,你想想咱们本身大家都说,诶我这H贝斯的存数大数据很好,但大家想一想,如果说要是没有菲尼克斯的话,对吧,如果不用菲尼克斯,那你去写的H贝相关语法的话,你操作起来是不是还比比较麻烦的,对吧?你想想你们学过贝这么长时间,然后呢,诶表组创建你们得想半天怎么去查询,你们得想半天对吧,但是使用菲尼克斯之后,对吧,咱们是不是在操作起来是不是就方便多了呀?对,所以说它本身呢,你看就是能够使用咱们circleco来进行查询,那么第二个什么呀,对吧,实时生成咱们这个分析的一个数据对吧,也就说我现在这里,我现在如果要是作为我一个对吧,这个在线分析处理查询的话,Oapp系统的话,那么这个时候呢,它可以这个很快的对吧,把这数据呢,给你响应回来对吧,这个呢,就有大数据处理,这是很重要一点对吧,很重要一点对那你想说你现在我们在存储的时候ES呀,对,它不能是什么也可以,对吧,咱们HP加菲利克斯这个东西,对不能是什么也行,对然后咱现在S这个东西行不。
06:25
等也可以到他们三个对比起来,同学们,那你想一想,首先第一个他们如果说我现在的海量数据处处理,他们三个应该都支持对吧,但如果说你要真正说存储能力更强的话,那肯定变。对,海量数据存储,就是说这个东西啊,如果从大数量来讲,那他们其实都可以支持对吧,但如果说你要再去说入真正真比如第一了对吧,那肯定他是状元对吧,然后接下来,那咱们现在呢,在哪使用的时候,那么这里它是主要干什么,是不是全文检索呀,就比如说我在分析的时候,诶我让你干什么,我让你从我们某个文章里面查出某个词来,来进行统计分析,这个事你不好做了啊,这个你不这这这两个你不太好做了,对吧,但是呢,我也来search对吧它对吧,这个这个特征比较明显对吧?那么如果h base的话,它适合干什么呢?它适合存储。
07:14
注意啊,它是个存储对吧,它和h base它俩有这个非常这个这个和以来斯尔福的有一个这个它俩啊有一个非常大的一个区别,大家想一想咱们这个ES本身它的一个特点,我们给大家说过天然集群,然后天然我们这个分片吧,对,然后天然索引,对天然索引,天然索引什么意思,是不是我默认情况下,咱们现在每一个字段那都是见索引的呀,但是我的这个A它是吧,它不是对吧,你要见索引的话,比如说我现在做个这做查询的话,你存没问题对吧,但是我如果做查询的话,同学们对吧,你是不是得对,就要查询,你只能按照什么,要不然按照时间,要不然按照咱们这个R来查询快对吧,但我现在想查询某一个东西的话,那这块都要注意对吧,比如说查询的某一个词对吧,那这个时候你和ES比,那你肯定不如ES啊,你肯定不如ES对吧,你出去建立索引啊,出建索引对吧,然后接下来,那咱们现在这个clean house它干什么的对吧?它本身注意啊,那么在咱们这里边对吧。
08:14
那它也可以存着大数据,对,那么这里它其实主要和谁呢?ES比较一下ES呀,那么如果说保存这里边的话,它其实呢,不支持我join啊,它不是join,但是我这clean令号呢,它对吧,可以支持我可可以join操作对吧,可以支持我join操作对吧?哎,其实这只是一个对吧,其实这只是一个对吧,那么咱们这两个端也没有一个什么好不好对吧,那咱现在呢,其实这里都有用用的,对目前的这个啊,现在发展势头比较好,对很大一个原因,除了支持照之外,其实好多公司用它的时候,他并不是说什么,诶这个东西这是照纹到好多公司用它觉得是这个东西写字比较方便。啊就就果写思个东,尤其是让如如如果让程序员去选技术选型的话,他肯定觉得这个东西更亲切一点,对觉这个东更亲切一点,对吧?好,那咱现在呢,在这里你呢,对它的特点先有了解什么呢?劣势存储这个东西劣势存储大家这个概念对吧,肯定不陌生对吧?这个东西咱们肯定在前面就接触过了,而且呢,我们这个行数存储和列式存储它们之间的一关系对比你也应该知道,比如说我现在这样一张表,那如果要是行数存储的话,那这会呢,那应该是把这种形式,这种形式这种形式大行短链存储对吧?那么这个行数存储大家想想它有不好的地方吗?短注意啊,劣和行数存储这个东西你也不要去比较谁优谁劣对吧,谁优谁劣,你是不是得看你的需求啊,比如说我现在如果是行数存储的话,那我现在想查某个人所有属性的话,那你现在是不是用我行数存储会更合适一点,对吧?但如果说我现在呢,我想统计所有人的名字,所有的年龄,那这个时候是不是劣这种更合适一点,对吧?所以说你要看谁有谁列啊,就由谁列,对吧。
09:50
啊,就是我这个东西我要去比较的,看你的实实际需求啊,看你实际需求,然后接下来那么它呢,在咱们这里除了我这个电子存储之外呢,那还有一个DBMS,它的一个功能,DBMS其实就是关于数据库呗,对吧,那么咱们现在呢,它几乎包含了标准所有大部分语法,对吧?那就是说我如果circle对要是没问题的话,那你学这块其实呢,应该也是比较呃容易的啊,比较容易的,然后还有一个什么呢?多样化的一个引擎,同学们。
10:20
你们买circle学习的时候听过引擎的概念吗?有说听过的,有说没听过的,你们不是一个老师吗?听过也,那就是可能是在在外扩展是吧,听过的,那咱们现在本身呢,在我们这买so之前的事,它其实有一个引擎的概念,对吧,那一个什么呢?啊,比较出名的啊,比较出名的两个对吧,一个呢是inner DB。对吧,然后还有一个呢,叫my sum对吧?那咱们现在一般默认使用什么呀?是我们的in DB对吧,它可以支持我们的事物处理,对,可以支持事务处理对吧?那么咱们现在呢,在我们这里边对吧,那么它呢也有提供了很多样的一个引擎,对吧?那么这个引擎呢,它可以根据不同表的一个需求来设置不同的一个存储引擎,对吧,那目前呢,对吧,大概有20多种对吧,咱们当然给大家对这个讲景常用的来介绍一下啊,常来介绍一下对吧,然后接下来还有什么呢?高温吞吐的写入能力,注意啊这块呢啊,其实和我们一般我们接触的这个数据库,它的思路差不多,注意下同学们说完我现在呢,这个h base呀,它的写入的过程,同学们,写入原理什么样的,你们现在能够说出来吗?
11:36
A base它的一个写数据的一个过程什么样子,我数据过了,首先呢,我要去请求咱们组keepper到组keep就拿谁是拿原数据对不对?拿原数据之后呢?那我现在呢,这知道了在哪,我是不是把原数据信息做一个缓存呀,对吧?在客户端做一个缓存,然后接下来根据原数据信息到某一个region serve上面,对吧,去取数据吧,对吧?那么咱们取数据的时候,或者在写数据的时候,同学们,那么咱们现在呢,在我这里,比如说写数据啊,那我是直接往咱们这个词板上写吗?不是吧,那是不是先写一个咱们这个预写日志啊,对吧,那咱们先有个日志,那同时呢,咱们这里是不是还有一个这个缓存呀,对吧?在咱们这里是不是有个缓存,然后现在当达到一定程度的时候,咱们再从缓存里边是把这个数据给化写刷写到我们现在的磁盘上呀,对吧,整个这个过程其实呢,我们这个click house也是一样啊,其实click号也一样,对吧,那么它采用什么呢?类S啊,这个lsm的这样的一个trade的一个结构,其实就和我们预许这个。
12:36
是其实一样的啊,说的一个意思啊吧,这个说什么结构化的一个咱们这个这个数对吧?结构化数其实呢,就是我们的个预写日志对吧,那什么意思呢?说本身在咱们写入后期对吧,那他呢,在定期在后台去执行我们这个合并操作对吧?合并操作对吧?那咱们现在其实也是这样的什么呢?咱们这里也是有一个WL的预写日志,然后这块呢,它也有一个我们这个memory缓存的memory,然后这块呢,是我们磁盘,那么在写数据的时候呢,它首先对吧,那么咱们往这里来写,然后同时呢,对吧,把它放到我们这缓存里边,这个缓存里边这个座文干什么呀?为什么我现在有一个缓存在这里头干什么,是不是要做排序操作,同学们对吧,它是要做排序对顺序写嘛,对要顺序,然后接下来那么咱们现在呢,在后台他不停的呢,去往我们的磁盘去做我们这个刷新啊,去做刷新对吧,这个呢,是他的一个我们这个写过程,其实和我们这base呀,这。
13:36
比较像啊,其实比较像的对吧?啊,然后接下来那么咱们这里呢,它的一个数据分区与线程级,它的一个并行对吧?那你看这个东西它呢,也是可以将那数据啊划分为多个partition啊,换多个分区,然后每个分区呢,它可以再进一步划分,划成多个我们这个index grand Li啊跟liity对吧,那这个东西呢,叫什么叫力度,同学们对吧,这个东叫力度啊,就是说我现在除了分区之外,在分区下面有什么呢?有一个索引力度啊,有个索引力度,然后接下来那么通过咱们多个CPU盒啊来对我其中的一部分数据来实现一个并行的处理,对吧?那这样的话,大家想一想他这个这这样的处理机制什么呢?说假如说啊,我现在这里边有一条circle口,一条思口,要查询多大数据呢?比如说我像要查询对吧,这个1000万条数据对吧,比如说我现在要查1000万条数据,那1000万数据呢,那咱们现在在咱们里边,那它有个分区的概念,对吧?都有分区对比零二分区,一二分区,二分区。
14:36
然后接下来,那我现在可以干什么呢?我可以每一个分区可能可以返回或者处理咱们三百三百到400这样就OK了,对吧,这样的话其实就分摊它的一个我们这个对吧,这个压力对吧,增它它的一个变形度对吧,这是分区,但是呢,它不太适合哪种情况呢?对吧?注意啊,它不太适合什么呢?它有个弊端,就是说对于单条查询来使用咱们多CPU,那么这个呢,就不利于我们现在同时并发的就就不利于什么同时并发多条查询了,什么意思呢?同学们,比如说刚才啊,咱们说假如说你一定查询有大量数据的话,这个时候呢,它会充分的利用到CPU的并行,对这个行啊,这个咱们这个执行的时候效率很高的,但假如说啊,我现在呢,我就查询一条数据,这个数据呢,其实没多少,可能就查询一个记录,就一行,对吧,但是呢,那我要给你一个CPU来处理的,然后呢,你又来一个数据,然后呢,我也要给你CU来处理的,你又来一个数据。
15:36
我也会给你推CPU处理的,对吧,那这个时候呢,咱们现在这个clean house他是不太擅长的,他是不太上的,那么什么时候会有这种情场景呢?同学们,就是咱们这个高并发的时候会有这种场景,对吧?就是我现在假如说我现在有个网站,然后网站呢,这用户特别大,然后都想去从咱们这个clean house来查询出去,那么这个时候他不太师傅,所以说clean house它适合什么呀?适合分析人员来用它不适合把它放在前边,就像比如说我现在在咱们这里面一访问京东,然后后来看京东里边好多数据给我展示出来了,这些数据存可令house里边,这不适合对吧,它不适合咱们这个大呃并发的一个访问,对吧?但是假如说我现在分析的时候,我一条S口我要执行,对成千上万的对吧,或者说上千万的,这这这样查询的话,这个没问题对吧,他会充分的去把咱们这个CPU的性能给我发挥出来,对吧,那这块呢,要知道一下啊,这个要知道一下,然后接下来那么这里呢,这个是一个网站的吧,对于我们的计划数据库都要做一。
16:36
我们对比对吧,那么这块简单看一下,其实一般我们在对比的时候,那主要对比的是ES,然后呢,以及呢,咱们那个clickhouse他仨和放一块对比的多一点,对吧?然后接下来那咱现在来看一看,它这里面对比怎么说呢?它的对比怎么说呢。呃,那么这个对比呢,它主要看这么几个对吧,就是我现在呢,要直接搜语句对吧,这些呢是我的circle对吧,然后现在查询的什么呢?单表对吧,那么这里呢,不同的我题库对吧呀对吧,In呀对吧,SPA circle啊,然后clean house呀,然后进来,然后这些对吧,他们have对吧,大家可以看到,就如果做单表查询的话,那么咱们现在它所花费的一个时间,同学们大家看一看整体比这些整体比咱这些是不是优不少啊对吧,就单表查询其实性能都是很高,那么接在如果关联查询呢,在咱们这里,同学们如果关联查询的话,你可以看到咱们现在这些这些这些这些对吧,这些这些对吧,这个这个have对吧,这个一下子就看得出来了,是不是对吧,然后呢,咱们现在这个东西,它和咱们其他人比,是不是也没有太大的优势了,对吧,而且注意啊这个东西对吧,那咱们通过这张图可以看得出来,说我clean house呢,那它单秒查询这个速度很快对吧,单单秒呢,就是多关联呢,它不太适合。
17:52
那它本身支持join对吧,可以连接查询对吧?但是呢,其实你看这个性能的差距是不是还比较大的呀,对你家别人可能原来我现在200多,然后现在呢,我这里边100多,他们两不有太大的跨度,但你看咱们现在原来是80多,现在呢是500多,它跨度是比较大呀,对吧?所以说一般情况下咱们呢,在这里我虽然说能够进关联查询,但是尽量避免,因为它的性能呢是很低的,那你想一想,如果你想在咱们clean house里边来避免的关联差询的话,咱们怎么避免啊同学们。
18:27
啊,你给他的时候是不是就是大宽表啊,对吧,你在咱们这里边,你你现在不是往可以号保存数据吗?对吧?你在往里边放数据的时候,你是不是把该查的都给查出来,对吧?你给他就是大款表,那这个时候他以后再做关联查询的时候,这个是不是就少了呀,对吧?诶所以说呢,这块呢要注意一下,这是关于什么呢?这是关于我们的clean house对吧?这是关于咱们的house,它的一些技术介绍,我来听一下。
我来说两句