00:00
接下来我们看一下第四章节数据的导入和导出啊,这也是每一个框架必须要会的一个内容,对吧?就像大家都知道钱很重要。啊,幻想着有钱了怎么花怎么花,但关键是你钱怎么来啊,你是不得知道挣钱的方式啊,对吧,那就算花你也得有门道把它花出去啊对吧?数据导入导出啊,那我们先了解一下导入啊,那么数据的导入啊,在Doris里面,呃,提供的大概呢,是有六种的导入方式。每种导入方式都有它的特点和适用场景,而且呢也有,有的是同步的方式,有的是异步的方式,那什么叫同步跟异步,相信大家应该有了解,对吧?我们举一个不是很恰当的例子,就像我们去比赛赛跑,是不是有一种叫400米接力?对吧?400米接力是不是只有你第一棒跑完,把这个交接棒给下一个人,他才能开始跑第二圈呢?
01:04
对吧,像这种就属于一种同,呃类似一个同步的方式啊,同步的要等待嘛,等待它第一棒完成,第二棒才能跑,那还有一种是不是普通的400米跑。400米跑是不是所有人,呃,参赛选手各自一个跑道啊,然后发令枪一响,那是不是各跑各的,你总不会说有一个人跑的比较快哎。他停下来,我等一下你啊,等你追上我,我再继续跑啊,不用吧,就各跑各的就行啊,那就涉及到同步跟异步啊,差不多这个意思,异步就是不用等待啊。那么所有导入方式都是会支持一个CSV格式啊,CSV格式,那么其中一种方式呢,Broke的方式还支持和orc这种列式存储的格式。那么在我们导入导出啊,导入这一块六种我们分别了解一下,第一种就是broke lo,还记得我们在介绍Doris架构里面,其中有一个叫呃,无状态的独立进程是吧?是不是我们还对它进行了编译啊,是不是就是FS pro。
02:15
这个东西我们当时还编译了一下,这个就是通过broker的方式来进行导入啊。同样这个也支持导出啊,我们现在先了解它的导入,那通过broker我们就可以访问外部的数据源。就远端存储,像HDFS,像亚马逊的S3啊,那就可以将数据导入到Doris,而且它的一个特点是什么,它是异步执行的,就是你命令提交完之后啊,显示提交成功,但是这个任务是不是不一定立马就执行完了,对吧,我们只不过是让这个任务启动起来。那我们可以通过受肉的去查看它的一个导入状态啊,是否导入成功,还是一个受就可以了,那第二种方式叫stream load对吧,流导入,但其实不是说我们像实时一样的啊,不是啊,他是说什么呢?我们通过HTTP协议提交请求。
03:15
并携带原始数据创建导入对吧,说重点在哪HTTP协议,然后呢,快速的将本地文件或者数据流中的数据导入到Doris。而且它是一个什么,它的一个重要特点,它是一个同步的啊,同步返回。啊HTTP啊,本地文件或数据流里的数据导到Doris,就像我们一个文件,你想想我们是不是得读文件啊,读文件是不是得那个输入流输出流来处理啊,对吧,你可能是按行读取,一行一行读怎么样的。这种一般适用于那种小文件,或者说文件不大啊,那用string load就比较啊方便了,那insert这个就不用讲了,这个就是circle口L语法里面的所谓的insert in into这种方式,但是这个我们要注意啊,Insert into,如果你是单表导入,哎,也就是说我们前面也是也出现了对吧?啊,我数据每一条数据我执行一次insert,那这种方式我们说生产上不建议使用。
04:25
啊,可能会引起一个斜阻塞,你要么一次银色的插入很多数据,那比如说我们是不是有一种写法是法表A,然后将它insert到表B,那这个时候用insert就可以就OK嘛。对吧,因为你现在把一张表的数据批量的直接导进到目标表,还有一个叫multi load,这个其实不算是一个特殊的方式,这个是什么呢?啊跟第二个stream load是一个意思,只不过它是什么呢?它也是HTTP协议,它是提交多个导入作业。
05:03
你可以理解为这个就是多个是mode啊这种方式。还有一个node。这是一个例行导入啊的方式,它会生成一个什么常驻线程,什么叫常驻线程啊,它不会说哎,我这批数据执行完就没了,而是这个进程一直啊不会停止,有数据我就去拉,没数据我就等待,但是我不会退出,这个是不是就很有点像我们实时场景对吧,实时。就比如说我们是不是有一些CDC的工具,或者说实时采集的工具,比如说啊那个,呃,比如说Maxwell这种。当然它是支持那个CDC对吧?呃,变更数据blo,呃,监听blo的,但是像sware这种东西,它是不是不会退出啊,如果没发生异常,也没有手动停止的话,它是不是一直不间断的一个长度进程,对吧?所以我们一般实时采集啊,那肯定是用routine load这种方式长驻线程不间断的,比如说从卡夫卡读取数据到Doris啊,卡夫卡有新的数据啊,他就立马将它导入到Doris。
06:20
还有一个呃,就是适用于亚马逊S3的,通过S3协议直接导入啊。其实这个也是依赖于什么呢。依赖于ER啊,所以也不能算是单独的一种啊。所以其实呢,我们这边说六种,并不是说六个完全是独立的方式啊,其实有些是一样的,像我们stream notde跟multi load其实是一回事,对吧,只不过是用法上的区别,还有我们的broker去导HDFS跟S3去导入,其实都用的都是什么broker啊,所以严格区分没有那么多种。
07:03
好,这是我们简单了解一下Doris数据导入里边有哪几种方式。后面呢,我们再分别介绍每一种。
我来说两句