00:00
接下来我们先来了解一下什么是hodi,那whodi呢,可以简单理解为这么几个单词啊,Hard杜ER相关的upsurs,就是支持插入及更新,并且呢支持一个删除,还有增量的一个处理。那么忽底其实就是咱们经常讲的一个什么数据的一个框架,那么官方更愿意称它为一个平台,因为啊它提供了一个平台化的能力,还有很多的功能,并且呢,它是支持什么呢?流逝的啊,这一点就特别关键了,那么继继续看啊,阿帕奇屋地将核心仓库还有数据库的功能直接引入了数据库,也就是说大家使用起来还是应该是比较熟悉的,那关键是后面这里你看它提供了一个表表,怎么理解呢?那么相信大家啊,来了解忽Di的一定都了解过hi这么一个框架,咱们经常用hi来做一个离线数仓,对吧?
01:00
那其实咱们大数据比如说是基于哈的,那我们的分布式的存储都是基于HDFS,那这个时候对于这个上面的数据怎么像一张表一样来管理跟使用它呢?那就借助have这个框架,它给我们提供了表的管理,像表的一些STEM啊,那我们就可以通过一些have circle来对数据进行一个分析。那蝴底同样呢,他提供了他特有的一些表的格式啊,这一点也是一个基本功能,那后面呢,大家注意看有一个什么事物,这也可以说是解决的一个have的一个痛点,那么hi府大家知道早期版本并没有支持呃,事物这种acid的这种语义,当然呃有一个版本它是出了支持的,但是呢,它底层的实现还是insert overight还是这么来实现,那么大家可想而知,这种方式来实现的话,整个覆盖的话,那它的效率啊应该是高不了了,所以现在呢,使用它这个特性的人也很少,但是蝴体不一样,他提供的事物是比较轻亮的啊,不会这么重的操作啊,这也是它非常重要的一个特点啊,这也是大家需要去重点记住另外一个呢,就是高效的upset,那么大家在平时啊做。
02:27
那个离线数仓的时候啊,也就是说咱们常规用了一个have表,应该有一个巨大的痛点就是诶,比如说我只需要更新某几行数据。那或者说我只要更新某一个字段的值,那么其实对于have来讲,我们能做的也就是inser override,你要么整个分区覆盖,要么整张表覆盖,那这种呢,同样的很低下,但数据库不一样,它可以找到。呃,你需要的这一行将它更新掉就可以了,这也是依赖于忽迪架构上的一些设计啊,这也是它最最重要的特性之一啊。
03:09
另外呢啊,对于数据的删除,那同样也可以实现,另外呢。他也提供了一些索引的能力,那索引大家都了解对吧,那索引呢,通常是提高咱们的一个效率。另外呢,留摄取服务。也就是说咱们可以从像一些分布式文件系统,还有消息队列,卡夫卡这些地方流逝的,将数据采集进忽底这么一个数据库里边,那它提供了一个像Delta streamer啊,这么一个工具是依赖于Spark的,当然后续的版本现在也支持使用flink来做这个事儿啊,都可以。并且有数据的一个剧簇,还有压缩,那呃,怎么来理解这个压缩呢?其实咱们用它原生的说法大家就懂了,Compassion这个东西,嗯,在h base,还有一些oip数据库里面。
04:11
应该都很常见,其实就是什么呢?呃,可能是我不断的去写入啊,大家简单理解,我不断的在写入的话,那可能每次写入你多次写入的话,可能会生成多个一个文件系统上的文件,这个时候呢,它可以进行什么啊,类似于合并这么一个操作吧,啊,有的喜欢翻译为合并,有的翻译为压缩,但都是这个单词啊,大家应该都熟啊,像click house base都有这个compassion的一个操作,并且呢,支持一个并发的一个操作,那大家从这边看下来,其实它我们列出了几个重要特点,都是解决传统数据仓库,尤其是像典型的have这种一些痛点,那忽底就是专门来解决这些事儿啊,简单来讲是这样,另外呢,呃,他保持的数据的开源文件格式,也就是说他不会再使用自己特有的一种文件格式。这样的话,如果保持。
05:12
开源格式的话,那咱们跟其他地方的兼容性就会特别好了,那它主要用到了是这么两种格式啊,一个是PA这种列式存储的,行式存储呢,它是会使用一个阿芙罗,诶啊,那这个两种格式大家应该读特别常见啊,那这样的话,回头你要需要用其他框架来跟他做一个集成啊,或者去读取它的数据啊,都是特别的方便,好那么了解到这了,呃,那忽Di呢,还有一个特性啊,它可以做流式的一个处理,那同样它也可以做什么批处理,所以忽底其实我们也可以说它可以支持牛批一体,既支持牛,也支持批,另外呢,大家注意它这个P是什么增量的,而且是高效的,像比如说have,咱们做离线数仓的时候,经常是什么做T加一的分析什么是T。
06:12
加一啊,也就是昨天的数据,我可能需要一整天的数据都,嗯,累计完了,我再统一采集过来,对吧,过了晚上12点我采集过来,再统一对一整天的数据进行一个分析,那地这边批处理的时候,他可以增量,比如说我每五分钟,我可以将五分钟内新增的数据先做一个处理,做一个输出,那下一个五分钟再接着处理五分钟内的一个增量数据啊,也允许这么来用,那同样你也可以用一些流的方式来处理啊。可以说他是啊,你想怎么用都可以。另外呢,还有一些细节啊,铺地呢,可以在任何的云存储平台上使用啊,也就是说跟各大的云平台啊,它都是做了一个兼容的。
07:04
那么跟忽底我们通常结合一起使用的,有大家特别常见的一些分析引擎啊,像一个什么呢?Spark。应该特别熟,不管是离线还是实时都有很多企业会去使用,那么还有最近比较火的一个flink,还有呢,Pstal,还有have等等都可以去集成使用啊,特别的方便,那我们也可以简单搂眼这个架构图。也不算架构啊,这是官网放的一张图啊,那么大家可以看到,呃,属于数据源,就我们的数据来源可能有各种各样的,对吧?啊,可能有数据库的,像什么MYSQL啊,还有其他一些,还有我们的APP产生的,还有微服务产生的一些日志啊等等这些你的买点信息也可以,那这些呢,通过可我们可以统一采集到一个什么呢?事件流,什么叫事件流呢?那比如说我们最常用的就是一个什么卡不卡这种消息队列,还有什么rocket MQ这些都可以啊,也就是说消息队列这么一种框架,那么我们可数据到了呃,消息队列之后,我们可以把它通过采集入湖做一个etr,那这边可选的工具有特别多啊,可以用一些CDC的工具,可以用忽底提供的这个Delta streamer。
08:24
都可以啊,甚至呢,我们做的一些Spark跟flink都可以将它呃数据入湖,那么到了数据湖之后呢,这些数据进来之后啊。它会形成一个什么呢?一特定的护理表的一些管理之后呢,我们可以基于这个再做一个增量的etr,还是结合咱们熟悉的一些引擎,像Spark flink这些啊,进一步的处理,这是进入到护理之后的操作,那么我们的查询呢?要对互地表进行查询,也支持很多的东西,大家可以上面有一坨对吧?啊,像常见的什么train pstal啊,这些都可以,Have impala啊,还有阿里云的,亚马逊云的啊,一些东西,Spark,那其实flink也可以啊,那包括我们构建一个pipeline的话,Spark flink啊都特别熟,这上面呢,就是它的计算引擎,还有一些查询引擎。
09:25
那么再往底层去看呢,就是它数据存在哪里啊啊,那么大家可以看到一些分布式的存储文件系统都可以,像亚马逊的S3,我们哈杜的HDFS,还有后面的一些啊都可以。那接下来我们往下面瞅一瞅,目前呢,呃,会在使用护底的一些企业,这也是官方放出来了,当然呃。不是所有的啊,咱们只是列出了一些像比较出名的,像由于什么呢?字节跳动对吧,沃尔玛,EBay,亚马逊推特。
10:08
苹果啊等等等等啊,还有百度这些什么华为啊啊,蚂蚁就阿里系的啊,阿里云啊等等这些通通都在使用一个忽Di,并且咱们忽Di现在呢,可以说是在数据库有几个框架嘛,一个是忽底,还有一些像冰山呢,还有德尔塔lake克啊这些来讲,那忽地相对来讲它的社区会更活跃一点,并且呢,它的迭代速度也是特别快的啊。
我来说两句