00:01
接下来我们实际操作演示一下啊,那么首先呢,我们在Doris里面创建一张目标表,那么看只有ID name age3个字段啊。啊,是一个明细模型没了,不做其他复杂的事儿啊,那我们将这一张表建一下,那现在我是在右test DB下面创建好了啊。S select from student。卡夫卡好,现在呢,是个空的,那接下来我们在创建routine road任务之前,先在卡夫卡创建一个topic。那我先启动我的卡夫卡,先启动一下主K吧。好,启动完之后,我启动一下我的卡不卡。启动好之后,我们先创建一个topic啊。那你看我们用杠杠。
01:00
然后这边你们根据需要自己改啊。那我这边叫DORIS1吧,因为这个topic我之前也有了,那我这边还得改一下。卡不卡?嗯,我想想。啊,我这边是什么呢。这个路径不对,对吧。但是我环境变量有,那我就不要加一个并目录了。那我直接创建吧。好,那现在我就有一个topic test doris1了,那接下来我通过控制台的消费者。
02:00
呃,生产者杠杠。List阿豆一啊9092看看topic,然后呢是test doris1,好,那接下来我就是要往这个topic发送数据的啊,然后再来看效果。那现在呢,我们就来创建一个导入任务,那么大家看看我执行呃,做了什么?第一个作业名称,我随便起了一个叫卡普卡test。那目标表是student的卡夫卡要对应起来,那属性呢,这边我指定的是什么呢。这是一个。并发度吧,还有一个严格模式为false,那其次呢,就是卡夫卡的一个数据源配置,那数据源配置我们怎么写一个broke list。尽量多个节点写上对吧,失败会自己炒其他的节点,Topic呢,就是test do1啊。
03:01
消费者主ID无所谓啊,那这是一个默认的offset消费策略,那我就从头消费,手动提交呢,呃,False啊这些等等都可以去设置。那还有一个,比如说我们要指定分隔符。怎么指定呢?那就是currents terminated by对吧?比如说我要改成逗号,那么大家不要忘了,如果不改的话,它是怎么样?直接在这里properties前面加就行了。不加的话,默认是不是杠T呀,那杠T不雅观嘛,对吧,那还有列的映射,列的映射呢,我们可以怎么写。比如说这么写对吧,拷贝过来,我把这个事例尽量填充完整一点啊。好,那直接在换行再指定一个列的映射,那比如说我现在是不是三列啊。
04:05
对不对,呃,那就是。ID。Name。然后呢,那个是H。是吧,没记没记错吧,ID name age,那这边写的列名是Doris的列名,然后呢,它会根据这个位置跟顺序去跟卡夫卡中间按分隔符切割之后去做匹配。是这个样子啊,那。你也可以做一些转换嘛,对吧,那我这边就不做转换了,好那这个应该就OK了,并发指令为三啊,并发指令为三,其实它底层真正并发是一,为什么?因为我这个topic建立的分区数只有一个啊。好吧,那其他的应该没问题,好,那我现在就可以去创建一个导入任务在Doris里面。
05:00
嗯,我看一下应该有地方有语法写错了。啊,少了个逗号啊,就这个地方啊,指定分隔符指定完要来个逗号,指定完列的映射要来个逗号。好,这样应该就没问题。来拷贝粘贴。也不是不是又少了一个。第四。第四行1234PROPERTIES。我试一下嘛,是不是这里多了个空格啊。Is pretty。确实是逗号的原因啊,就是说properties前面不用跟逗号,我们只需要在多个cover指定之间加一个逗号就行了啊,Properties前面这一行不要逗号,其他都要啊,好,那现在就创建成功了,对不对?我们看一下这张表。
06:05
或者叫瘦。Routine road。看一眼。啊,我斜杠大计啊。那我们可以看到这个是作业名称。啊,就售routine no的就可以了啊,然后这个是作业名称。然后呢?对应的表明还有当前状态是running,数据源类型卡不卡?那下面是什么作业属性,那如果你想知道有哪一些,你看这边都有像什么时区,甚至可以指定卡夫卡哪个分区。对吧。然后这是列到列的映射表表达式的,那就这边都通通都是我们前面讲到的一些参数,你也可以通过这个方式去查看啊。那现在废话少说了,我们是不是耐心?From student。嗯,卡夫卡。
07:01
现在是空的对吧?好,接下来我往卡夫卡发送数据。这个导入任务一启动就一直在运行,对不对,比如说一逗号张三18,那么大家注意现在是不是用逗号啊,因为我创建的任务指定分隔符是逗号,不指定默认是杠T,你就得按table键了啊。回车。接下来我们再来查一遍。现在是不是同步过来了,对吧,一张三18,那再来呢,呃,比如说我来一个二。李四,99岁好。那这边同样应该也是什么,现在还没同步进来啊。再等一会儿,他没那么快。这也太慢了吧。有了啊,现在有了啊,二李四九九进来了。
08:02
所以这个routine routine road的这种方式,其实大家选择性的看吧,它是相当于说周期性的执行一个什么dream road。它其实并不是一个无限流这种概念啊。那么消费卡不卡,我们其实如果你项目里面用了flink,我觉得用flink结合起来用效果会更好一点。当然这个都可以啊,都可以。好,这是我们给大家介绍的。那我们这个root road的命令是可以去控制的,它可以什么暂停,也可以恢复,甚至呢可以直接取消,那我们先看一下一个。暂停。就是通过座位控制这里啊,座位控制,座位控制这里,比如说我看一个暂停。我们先看这个查语法帮助啊。The stop routine not for。
09:00
这个是作业名称对吧,那我就来呗,是。Stop,诶,这是停止是吧,呃,我不要停止,我要暂停,我要暂停,停止就相当于取消了这个作业啊,我们看一下这个暂停。呃,那我就。拷贝吧,你看拷贝这个名称。然后呢,我们的作业名称叫什么呢。叫叫这个,我们在这找呗,作业名称叫卡夫卡test。对不对?好,那这就是一个暂停,接下来我们再售一个routine road。然后呢,杠大气回车,那么看一下作业的状态,现在是什么停止,但是这个作业还是在的啊,那比如说我再插入一条数据三管520C。当然一会儿它会同步过来对吧。这个时候你再去查这张表,不管你等多久这个数据都不会同步过来,因为啊,这个导入例行导入已经被我们停啊暂停了,大家注意是暂停不是取消,那既然能暂停了就能恢复啊,那我们再看一下这个语法。
10:11
作业控制,这里有一个resume。这个命令也很简单啊,你看这个就恢复一个导入作业,恢复的是暂停中的作业啊。那比如说我们把它恢复一下。叫什么呢?叫叫叫啥呀。啊,卡夫卡test。这个导入作业的名称叫卡普卡test,好,现在恢复了,对吧?我来show一个routine o的杠大G现在的状态又变成了running,那接下来我们查这张表,它应该是数据会继续被同步过来,现在还没有啊,你看,有了你看。这条数据它也同步到了,这个是暂停跟恢复,那么取消呢,那就是stop。
11:06
对吧。那就是stop routine road four。我们那个叫什么。又忘了名字了啊,叫卡夫卡test啊。那这个就stop,真正把它停掉了,就不是暂停了,好,Stop完我们再来售的话,你会发现现在变成什么空的,这个就是对例行导入作业的一个控制啊。好,那其他一些说明例行导入作业跟al table的关系,第一个例行导入不会阻塞我们的表结构变更,还有roll up这些操作啊。但是如果表结构变化完了,映射关系无法匹配,可能会导致错误的数据,对吧,这个你要考虑到。而且如果我们删除表的分区,可能导致导入的数据找不到分区,那作业就会变成什么暂停。不是失败退出,而是暂停。
12:03
那例行导入跟其他的导入像什么broke broke啊啊。那些还有insert这种是没有冲突的啊。那如果导入中的分区是不能执行删除操作的。还有什么呢?我们看,当例行导入对应的数据库或表被删除后,作业会自动取消,也就是stop。那么其他的就没有什么了啊。那接下来是卡夫卡参数的一些说明,像比如说卡夫卡的分区啊,卡夫卡的offset啊,还有默认offset策略。呃,这个是不同组合产生不同的效果,那么大家根据需要看一下表格就行了。一个是指定分区消费的分区列表,一个是指定每个分区的起始off set。
13:02
一个是指定默认的起始set对吧。
我来说两句