00:00
同样的,Toris也可以基于ES创建一个外表啊,那这种就不是通过odbc的方式了,这是专用的。那他呢?我们就可以用Doris操作ES了,那这样就可以很特别特别方便,因为我们正常去使用ES的时候,是不是得用它专门的DSL语言去写,对吧,可能有些人呢,并没有那么熟悉。啊,那借助Doris就可以很方便的去操作和查询分析啊,那我们来看一下啊呃,而且可以实现我们的什么蚯蚓操作对吧,很方便实现啊,联合查询都可以啊,还有一些全文的检索过滤,那么看简单看一下原理啊。搂眼这张图如果我们建了一个外表啊,我们是不是提交给f fe,那f fe就会根据我们配置参数指定的。呃,ES。地址跟端口啊,去获取他们的。呃,具体的信息啊,比如说像他们分片信息啊,分布情况,那fe获得这些信息之后啊,会将它会生成一个查询计划,查询计划就会交给be去执行。
01:11
那be呢,会就近选择离它最近的ES节点,以scar sc的方式去呃,访问。然后呢,并计算结果返回数据。那原理也是特别简单啊,那我们接下来呢,来实际操作一下,首先呢,先在ES里面创建一个索引。ES的索引啊,那我用的版本ES,大家知道不同的版本系列差异还是比较大的,那我是基于6.6啊,我的环境是6.6的。啊,那你如果比较现在像七的那些啊,对吧,也有那特别是老版本像五系列的或者更早的。啊,那可能就不是这个写法。那关于yes这边我们不多啊,不过多介绍啊,既然你要用到,你肯定对它有一定基础的了解,好,那我们通过put这个方式去创建一一个test,所以那它的字段呢,有K1到K5个字段,分别是long类型,Date kor test。
02:20
Float类型,好吧。那这边我已经用key班啊连接上了,那这边我们要的操作我都已经放上来了,那看这里是不是更顺眼一点啊。好,那我先执行这个put创建。那看这个返回信息呢,我们可以看见这个index是创建成功了啊,一共五个字段啊。接下来我们往里面去插入一点数据啊,插入数据。好插入成功了对吧。那我们尝试着来查一下吧,嗯,通过get,嗯,索引名是什么来着?嗯,Test。
03:07
然后呢,Do?下划线,Search。查一下他的一个数据,那么瞅一眼啊。你看这是可以理解为一条数据吧,啊,然后有五个字段。那这边也是一条数据有五个字段啊。那这边有好多条啊,对吧。呃,一共有五条啊,一共五条,好,那么接下来呢,我们就来尝试创建一个外表。这是Doris那窗帘外表,我们看一下它的一个语法啊。首先呢,还是跟上一个电表时eternal啊,那其他正常定义字段啊,定义类型啊,这个关键的地方,引擎必须是ES的全称对吧。
04:02
Elastic search啊,一个都不能少,那接下来是它的一些配置项,什么配置项呢?啊,它的ES的。地址跟端口,那我这边是通过HTTP的方式。呃,这是索引名,也就是所谓的表明啊,啊type呢,在六系列它是固定只有每张表,每个索引只有一个啊,所以这个基本上啊,看版本差异。我反正我建的时候是用doc对吧,那我这边没有做一个登录验证,没有放一些权限验证的插件啊,那这边我是没有用户名也没有密码的。来,那比如说这个列表我写全了,我有三个节点啊。啊,9200好,那我来见表。这个还得改一下啊,有个有一行注释吧。
05:00
这个注释给去掉。再拿,拿过来。Are,哦,表明壮了是吧?那我改个名字呗,我ES test这样子。好,那现在就在创建就OK了,对吧?那为了防止名字重复,我也啊文档也给大家改一下啊,Yes test,好,那接下来外表创建成功,我们尝试着来查询一下select新from yes test。你看这是不是五条数据啊。对吧,那也就是说ES如果你对他的DSL语言不熟,那你完全可以通过Doris来操作,那比如说你你现在映射了一张外表,那如果还有ES的其他,呃,索引另一张。啊,你也把它映射成外表,那就变成了一个Doris的操作了,那这个时候你就熟悉了,对吧,Do瑞S的语法跟MYS口又基本一致。
06:05
啊,那就特别好,简单上手了。嗯。好,这是我们的一个ES外表。啊,那几个参数说明这个咱们已经讲过了啊。呃,那我们看看一些注意事项啊,啊,一个是注意版本差异,就是有一个type,它有一个版本差异。认证方式,目前只支持这种HTTP的basic认证,就是输入用户名密码这种啊。另外呢,我们在建表中啊,Doris的列名跟ES里面的字段名必须完全匹配,你不能说,呃,你想换个名字啊,不好意思,不行不行,还有一个引擎不能改啊。还有一个就是也算是它自动帮我们做的一个优化啊,就简单介绍一下。
07:00
在Doris的ES外表里面,它会自动帮我们实现一个过滤条件的下推,会下推给ES。那这样的话就可以显著的提高它的效率,在我查之前,我先根据呃下推的条件啊,将数据过滤掉,那下面是具体的一些规则啊,那我们在Doris的circle语法里边过滤,我们比如说我们写了一个where。为什么?比如说啊,某个字段啊,你写等于什么,或者in什么大于等于end or not not in这种啊。判断条件,那它会自动优化对应的ES里边的查询。那这个是针对五以上的系列啊。那比如说等于就变成temp类的查询啊,那这个表大家可以看一下,In呢也是一个time。那范围大于小于大于等于,这种它会变成呃,也是对应的就变成range这种方式end呢,就是不fear,不过滤啊,Or呢就是呃。
08:08
Not呢,就must not,其实这些是它底层帮我们翻译的事啊,大家明白它其中的道理就可以了,Not in,那就是must not加temp啊。啊。那这些就没什么好讲的啊,另外就是一个数据类型的映射啊。那这边呢,是Doris的数据类型,这边是ES的数据类型。那么大家以此呢来判断它自动转换的话,我们得用什么类型去,或者说我们建表的时候应该用什么样的do数据类型去跟它对应啊,我们前面也讲了字段名,名字是不是必须一样对吧?那还有一个设计类型,那你就看这个表就行了呗。啊,你就知道该建什么样的Doris这段类型了,好。这是我们的一个基本使用。
我来说两句