00:00
那我们来通过一个实际案例感受一下啊。我们首先在Doris里边建一张表啊,接一张表,那这是一张student result,字段就是ID name age,还有分数,这么简单啊,然后是一个明细模型。没了。然后文件表。我之前应该有吧,Show啊,Tables看一下,对,现在我们是在test DB对吧?好诶,啊,别错了,我先建立一张Doris的表,那回头我们将HDFS的数据导进来,好,那再其次呢,我们去准备一下HDFS。我这边还没启动呢,启动HDFS,你不启动怎么去同步对吧,然后我们还要准备一个数据文件啊。
01:03
啊,稍等一会儿让它启动起来,顺便呢,我们在。先准备个文件吧,就到这吧,创建一个。Student c,我用逗号分格对吧,我们看一下那个列有一个什么什么字段来着。啊,T very int DEC啊。那比如说一呃逗号张三,然后是什么来着。年龄哎18再来啊,分数比如说60。好,2:49啊80啊九九。王五,20啊,15分啊,我们给几条数据好了。
02:03
看一下启动完了没有。好,启动完我看一下我的HDFS啊。好,还处于安全模式啊,再等一会儿,因为刚启动啊。好已经可以了,那然后呢,我上传一下啊。我顺便上传到根目录好了,为了方便啊。好,那我这里是没有什么东西的啊,我们直接。哎,我是在哪创建的那个文件啊,在这是吧。Out do FS-put,嗯,student.csv放到HDFS跟目录就好了。
03:12
这么慢呢?好,瞅一眼啊,刷新。好,这个文件已经上来了啊,我们从看一下。你看是这个数据对吧?好,那接下来我们要开始创建一个导入任务了,现在已都已经都准备好了,那这个任务来看一下是不是road,然后label这个名字是自己起啊,当然为了规范我是不是库名点表明啊,你不这么起也行,你愿意叫他A也可以啊,这仅仅是一个标签名,并不是说一定要携带那个表名。只是我们习惯上啊,为了区分啊,这么来提,然后再看一下语法,Data in fire是不是指定它的一个路径啊,对吧,那我这边就是指定HDFS的路径,Into table。
04:09
哎,哪张表对吧,刚才建的这张Doris表,哎,然后呢,我可以指定一个什么列的格式。Current。Termin是不是指定一个CSV格式啊,也就是说以逗号分隔的,这是列的分隔符对吧?就第一列跟第二列中间是用什么来区分的啊,用逗号,然后呢,有呃,如果是CSV格式,你直接写一个format X csv就行了啊。然后这里写的是啥呢。啊,就是列名列的映射啊,但我这么写相当于说没有做任何的映射啊。然后呢,With broker要看写一个broker的名称,有哪些broker来执行,后面可以写一些参数,我只写了一个什么超时时间啊,超时时间默认是不是一个四小时啊,我这边随便改改了一个,呃,一小时。
05:04
那这个其实是特定格式的写法啊。那如果是通用写法怎么写,我们先一起瞅一眼啊,前面这几个都一样,如果是通用格式应该是这样,括号里面指定的是原来这个数据的字段名称,这是我们自个儿起的,它是根据这个分隔符去匹配,比如说这个文件分隔符,它根据逗号分隔符切分,能切分出四列,对吧?那第一列就叫C1,你要怎么取怎么取这个都行啊,第二列叫C2,第三列叫C3,第四列叫C4,那为什么要给它起个名字呢?因为回头我们去做列映射的时候,去set的时候才能直接来用嘛,不然你用什么名字啊,对吧?那你看我这边列映射怎么写啊?是不是that,然后左边的字段名是谁的,这个是Doris的字段名啊,那右边这个呢,就是原数据原始数据啊的临时列明,也就是括号里面咱们写的这个临时列名啊,临时列名。
06:08
啊,像这种就是一个通用写法啊CSV因为是特例呢,我们就可以简单写一下就可以了啊,那后面呢。我在broker的参数里面写什么东西呢?你可以写一个HDFS的配置,你想想谁为什么写在这里,大家可以思考一下这个问题。就是说我们去同步HDFS的是谁啊?是不是broker来啊,不是dori是吧,就是说不是be,也不是f fe对吧?那broker要连接人家DFS是不是得知道HDFS的配置,那要知道配置,我们常规有几种做法,是不是第一种是什么?拷贝配置文件,是不是直接将HDFS、杠、C这几个文件同步到broke的配置路径,这是第一种方式,第二种方式我不想去拷贝集群的配置文件,那你是不是就要明确指定一些需要的参数啊?
07:08
像连接HDFS,你如果做了ha,那你是不是得有把ha相关的配置项啊指定一下,那在这里指定之后,你就不用去拷贝它的一个配置文件了,包括你的HDFS,比如说开了一个cover,一个认证,那你是不是,呃,这些认证信息可能在配置文件你也可以写在哪里啊,Broke的属性里面。所以大家理解这个属性要写什么东西啊。就像什么呢?比如说我们写代码去连接MYQL,不管你是自己代码还是应用工具,你是不是一定会填my circleql的连接地址,对吧?JDBCMYSQL,你是不是还会一定会填你个用户名,还会填你个密码,你才能去连接MYSQL嘛,啊,对吧?啊,像类似的这种外部系统的属性配置就写在这就行了。那这样的话,我们就没必要去同步那个它的配置文件了啊好,那这个我拷过来。
08:09
但是这个我得改一下啊。为什么呢?因为我的集群没有ha,我这边只是写出来让大家看一下啊,这几个是在哈豆配置文件里面ha的相关配置,对吧?它的命名空间啊,在命名空间有哪些节点,每个节点的地址跟端口是什么啊这样子,那所以对我来讲,我这个就不用写了,如果你有ha啊,配置放在这就行了,好吧,给大家做个参考,Cover也一样啊。好,那这是全局属性超时时间啊,就是一个60秒没了。那这个路径跟文件名我看一下啊,都是OK的,标签名我也不改了,就其他好。进入到我们的MYSQL客户端,把这条命令敲进去,回车。
09:06
我看一下啊。那格式有问题。是不是多了一个看一下啊,啊,多了一个空格吧,啊,应该不用空格,或者说直接括号也不用,我试一下。哎呀。Two,然后呢,We broke name。被试了一下,因为我这个broker没有配置属性对吧,那个括号也去掉就行了啊,你没有配置项就把这个括号去掉就行了,好那为那这个broke那不是固定固定啊,这个是我们自己起的名字啊,你是不是可以受TROC去看呢,对吧?啊然后那个斜杠focus,但是我当前是test账号没有权限的啊,看不了的,你看你必须用root用户登录才能去看这种。
10:02
系统的一些原数据啊,那。你懒得退出,重新登录,你也可以去页面看啊,来,我们进入到fe的前端页面,8030。8030进来之后你呃应该要登录对吧,我之前登过了啊,我用root账号登录的,然后点system,点一下brokers,看一下我们之前注册的时候这个名字是什么,我当时全部起的就叫broker name对吧?不要引起歧义啊,这个不是关键词啊,这是自己起的名字啊。好,那刚才可以看到我们这个肉的任务是提交成功了,但我们说它是什么异步的,提交之后他开始执行,执行的怎么样,我们还要去查看,怎么查看呢。看这里瘦肉就行了,那后面我是加了一个排序,根据创建时间排序,因为你刚创建再去查看,这样就比较明显了嘛,对吧,然后只显示最最新的一条就好了。
11:06
然后斜杠大G不是以这种一行一行的格式展示嘛,对吧。啊,我们直接拷过来。在这里我们看一下啊,你看它的level是多少。Ne就是我们前面起的名字啊,我起的跟表明一样,那看可以看到它目前的状态是什么,Finish,那它的处理进展是什么呢?呃,返换做完了,加载也做完了,都做完了啊,类型呢,是通过broker来处理的。对吧,啊。这边是etr过滤信息啊,不要的列是零啊。然后这个是关于那个正确数嘛,啊DPP的那个啊是零啊,这个是三条,这表示正确导入了几条嘛,D PP normal or。啊。这个表示抛弃了几条错误的数据啊,这边表示正正常导入了几条好集群信息,你看任入信息啊,啊超时时间还有容忍错误容忍率,我们说默认是零零容忍啊,你要看得懂啊,那这个是报错信息。
12:17
下面是一些时间啊,开始时间,结束时间,创建时间,这个不啰嗦啊,还有任务的详细信息啊,文件的这边包含的呃,数据的数,文件的大小。对吧。这几个对大家那个呃,有帮助的啊,还有呢。未完成的状态后端啊,不是状态后端未完成的back是哪一个对吧,是空的,你看都完成了吗?呃,Task number。他这个数量一啊。好了,那是由哪一个be去同步的数据啊,是11003这个编号的,那beon你是不是可以受去查看呢?但我们说需要root对吧,你也可以前端页面看。
13:06
啊,这个back的页面还记得端口号吗?啊哈杜,随便找个节点啊,8040。你看这个就是这个是be的。一个页面,如果你忘了,我们回头瞅页啊,往上翻,我们在最早安装的时候讲过啊,默认端口你看呃,Be是不是也有一个什么页面端口啊。对吧。8040,好了,这个就不再啰嗦了,那我们接着往下看啊。查看导入,我们这边也有详细介绍啊,如果你忘了在这看啊好呃,还有一个就是因为我现在导入啊,数据量小,一下就完成了,如果我这个导入数据量比较大,需要一定时间,那他这个我去售的时候,他的状态就不是finish了。可能是正在导入,比如说这个时候你想把任务取消,也可以用这个语法cancel。
14:06
然后呢,可以指定一下库名啊,指定一下库名,因为其实我们标签名是跟那个库名绑定的啊,另外呢,你要过滤出标签名对吧,我们说了标签名是漏的任务的标识啊,你要把哪一个任务给停掉取消掉啊就可以了,好。那我们看一下效果呗,呃,So tables那个表明叫什么来着?Student result,我们查一下数据是不是正常的。对吧,三条数据都进来了。那我们再执行一次通用写法吧。刚才是用特殊写法对吧?Form mys csv,那下面这个是通用写法啊,先给原数据分割完的字段起个临时列名,然后set里面做映射,对吧,这种方式。
15:01
嗯,拷贝。我们相当于说再导入一遍啊,然后再去查看一下,我得改一下,我没有ha对吧。把这个broker配置项全删了啊。好。喂,啊,行。啊,Label重复了,啊,Label重复了。那我改一下吧,一。好,然后我瘦一下。啊,应该倒完了,来不及了,哎呀,太长了,我直接从文档考再搜一下看一眼。对吧,还是已经finished,但标签名带了个一对吧,这是另一个啊,一样的啊。
16:07
行。
我来说两句