00:01
Doris在1.0提供了一个hi外表的使用方式,那外表我们在前面也都介绍过了,像前面提到的像odbc的外表啊,是不是还有ES外表,我们都做了演示讲解。那现在呢,我们就要。对,Have可以做一个外表啊。那这样我们可以得到什么好处,我就不用说。先将hi的数据导入到Doris呗,就类似于我直接在Doris创建一张,它有张A表,我建一张映射表A片啊。那这张表的数据我在Doris直接就能查。他有变化,我这边也能获取到。那这样的话,我们中间这边就不用再去做一个数据同步工作了,数据导入。可以说啊,非常实用,这个功能当然呢,Hi外表目前呢,也是初期阶段,也是标记为实验性,标记为实验性。来,我们来看一下啊。
01:06
还同时还支持Doris与hi数据源中的表联合查询,进行更加复习的复杂的分析操作,也就是说你可以用Doris自己的表跟hi的映射表,两张表也可以做交易呢,也没问题。然后我们看一下语法啊,还是一样,Create要加一个external,然后其他的去定义列名列的类型啊。还有呢,最关键是这个引擎要指定为have。那后面就是一堆属性了啊。就比如说hi的库明,Have的表明,那在这中间使用过程中有一些注意事项,一个是D,也就是这一块。我们在定义列的时候,列名有要求,第一,要与have表一一对应啊,你不能乱来,第二,一个列的顺序要与have表什么完全一致。列的顺序要完全一致啊。
02:00
另外呢,必须包含全部列,你不能说have表有。五个列,我只写两个列啊,不行。另外呢,就是have,我们是不是有分区列,那分区列在我们映射表中无需指定,无需单独去指定,就把它定义成一个普通的列就可以了啊。那属性里面可以写什么呢?第一个have,原数据服务的地址。第二,一个have数据库库名,还有表的表名啊,就这么几个东西。那我们再来了解一个类型的对应关系,那其实我们从上往下看下来基本都一样啊。基本都一样。那唯一不一样的是在这个地方时间类型。那dori里面是data time支持到秒对吧?那have里面我们没有data time,那用于用的是time step。Time time,但这个要注意,我们说Doris data time只支持到秒。
03:03
那这个是不是可以到毫秒,那这个时候可能会什么损失精度啊损失精度。而且使用过程中有这么几个事儿啊,第一个。Have表的表结构变更不会自动同步,也就是说我这张have表,呃,我原先是ABC3个字段,我Doris建了一张映射表也是ABC,对吧?那比如说我把。我新增了一个字段D,那这边Doris是识别不到的,它不会自动同步,那这个时候我们只能怎么样?重建have外表啊,我们把它删了,再重新建一张啊,Abcd这么四个字段的外表。那have的一些存储格式,就是test orc,应该来讲也是够用的,对吧,行存跟列存都有了,另外就是对hi版本的支持,那如果你是1.1.0的have,或者更早的。
04:03
嗯。不保证没有一些兼容性的问题,目前官方呢,只是对2.3.7,还有3.1.2进行了一个验证。当然后续会支持更多的版本啊。
我来说两句