00:00
接下来我们看一下HTTP的方式啊,Stream load stream load,我们知道它核心在哪,通过HTTP对吧?啊。那试用场景呢,就导入一些本地文件呢,导入数据流中的数据啊等等啊,那它支持的格式主要有两种,一个CSV,一个是杰森啊,这个我们心中有数,那我们简单看一下它的一个执行原理也比较简单啊,主要是我们提交方式,它有个特点,我可以提交给谁啊fe我同样也可以选择提交给谁执行,给be执行。就是说我们可以提交给fe,也可以提交给be,都可以的啊,那常规来讲,我们肯定是提交给fe对不对。那如果我们提交给fe,它会选择其中一个be的节点作为什么呢?协调节点。啊,协调节点,因为可能要并发执行嘛。他这个be的协调节点选出来之后啊,协调者协调器啊,它会根据那个计划将数据拆分啊,就分任务啊呃,给其他的be节点啊,分离点任务每人负责一小块啊,然后去处理,那处理完成之后呢,这些be都返回给这个协调节点的be啊,协调器协调者,然后协调者呢,就直接返回结果给用户。
01:21
啊,返回是成功还是失败,另外我们要注意是非no是一种什么方式啊,是一种同步的方式啊。也就是说你提交他就一直在执行,执行完立马啊,然后返回给你结果啊。所以你去查看是查看不到。而且也无法手动取消啊,提交之后啊。那我们看一下基本语法,基本语法其实我们可以通过CUURL这个命令,对吧,这个命令也很常见呢,就是我们经常在调接口,是不是也用这个命令对吧?那这个就固定这么写就行了,然后呢,我们要指定一些参数,第一个用户名跟密码,杠U指令,还有一个最最重要的很多很多的参数呢,通过杠H的形式去指定啊,其在请求头里面啊,杠H请求头嘛,而且参数都放在这里,然后杠T啊是指定那个文件,要导入哪个文件。
02:20
本地的文件啊,然后呢,杠。差,然后指定一个请求方式啊,一般都是put put请求之后呢,要写这个fe的。调用fe或者be的一个接口啊,API接口,那这边你就是fe的主机地址,还有fe的HTTP端口,大家注意是HTTP的端口,因为这种方式是基于HTTP的啊,所以我们调用端口肯定是HTTP端口一呢,就是什么呢?呃,8030,如果是直接提交给be呢,用的是8040。8040。
03:02
好,那它的接口格式是什么呢?后面跟上一个API固定的,后面跟上一个dori的数据库库名,再跟上一个数据表,表明在后面一个固定的下划线string_load啊这样就行了,那最核心的就是或者说我们需要自己写最多的地方可能就是杠大H这个地方要写一些参数啊参数。那英文名密码我们讲过了对吧,这边不用讲了。那。我们所谓的一些导入任务的标识啊,这些都是在哪杠大H里面指定的啊,还有我们要指定分隔符啊,也是在杠大H里面指定的。啊,这些都是在这指定。呃,这边指定分隔符大家注意啊。
04:03
不能直接写编码啊,如果你写的比如说是杠T是不是制表位啊,那正常你不能就写个杠T对吧?Have写习惯的人直接写个杠T啊,但其实杠T是不是斜杠001啊。对吧,就这种特殊字符,没法直接用户看到的这种特殊字符啊,要加一个杠X的前缀,比如说。Have的杠T,你就用斜杠X01啊,好,还可以指定行的分隔符,一般都是默认的一个换行符啊。还还可以指定前面提到过的一个最大的容忍率啊,还有过滤条件呢,还有分区信息啊啊这些一大堆东西,还有指定的列啊,呃,列的映射呀等等这些都在杠大H里面指定啊。还有跟前面一样的啊,内存严格模式这些都是一样,在杠大区,还有一个就是它可以提供两阶段提交的这种事啊。
05:06
我们只需要将它置为处就。使用两阶段事物的方式啊,两阶段大家应该都理解对吧。来保证数据的一致性嘛。两阶段就是什么意思啊,马上讲一下吧啊,数据写入完成会告诉用户,但是这个数据你不可见,也就是说你查不到的事物状态为一个预提交状态,这时候需要我们手动执行commit,这个数据才是可见的啊,就这么一个这么一回事,那默认这个是没有开启啊,没有开启。看你的需要啊,那怎么触发commit呢?对吧,因为我们是直接用curl命令去提交的,那怎么执行commit呢?也是用C,我们只需要去指定就行了,指定。
06:02
这个杠H指定一个事务操作为commit就OK了啊。也可以回滚事物啊,放弃丢弃事物也是一样杠H,然后呢,事物操作指定为啊丢弃就可以了,行,这个是一些说明啊,那我们直接来演示呗,我们来玩一个吧。呃。这个我得拷贝一下来,我们在这改一改看一下啊杠U呃,Root我是有密码的,密码我是设过了对吧?啊,我们用root用户123456,呃label呢。我们。呃,自己起名字嘛,杠杆是不是指定一些参数啊,标签名随便起啊。
07:00
比如说我叫什么呢?比如说叫。呃,Test,好吧,还有列的分隔符指定,为啥呢?如果是可见的,像什么逗号啊这些东西就直接写就行了,那我们来换一个吧,我重新创建一个文件吧,呃,叫叫叫叫叫。TSV,或者叫TST吧。我回头用竖线来试一下啊,我们试一下,我把分隔符改成竖线啊,然后put到哈杜18030没问题啊,F fe a test DB。Student result,好,这没问题,那我先重新准备一下文件,创建一个student.tst分隔符是竖线对吧,那我来个一一竖线,哈哈,竖线年龄,竖线分数对吧。啊,99再来一个,呵呵,啊19啊分数啊20啊,再来一个。
08:05
六六。啊,吴彦祖竖线20,呃,年龄20啊,分数100,好,这是我们新准备的一个文件,是student t ST,那这个路径我得指定一下啊。Home硅谷啊,就这吧,我们是不是杠替指定的目标文件了啊,你最好是写一个什么全路径啊全路径。好,其他应该没问题了啊,好,我们来执行。啊,大家注意不要在MYSQL客户端里面执行,这个是Linux命令啊,就现命令啊。回车。那大家可以看到它其实你一回车直接就返回了一个什么。结果它是同步的啊,它返回结果给你说明已经成功了啊,已经完事了啊,已经完事了,那我们可以看到你看标签名,还有状态是成功啊是OK的,导入了几行呢?总的有三行。
09:08
呃,然后成功被加载进去的有三行,对吧,过滤掉了零行啊,未选择有零行。对吧,然后它的大小啊,时间呐。呃,事物相关的时间呢?开始put的时间呢?花了多少时间?都是毫秒啊,MS毫秒。好这些时间啊,这名字很直白啊,那这个时候我们直接返回到客户端,呃,查一下这张表就行了。诶,Shorts that新from。什么来着?Student result是吧?看一下,你看我们之前新建的那个文件是不是这几条啊。对吧。啊,不应该是这三条啊,12266对吧,那我们再回忆一下啊,我这个文件用的是什么?Student t ST。
10:10
我是不是用分隔符来分隔的,那所以我在用的过程中指定分隔符为竖线就可以了啊。它也能够成功解析跟识别,然后导进去,好,这是一个是弄的比较简单啊,另外要注意是no的,一旦开始执行,它是无法手动取消的,因为它是一个同步任务。他只有在超时或者导入错误,错误才会被自动取消,或者说呃,如果客户端阻塞,你直接CTRLC啊强制终止。啊。这个是一个stra啊。
我来说两句