在doris1.2版本开始,新提供了一种Multi-Catalog 功能,他的主要含义就是无缝对接外部异构的数据源,用户无需把数据导入到doris中,即可使用doris来创建一个Catalog,然后通过Catalog来查询对应异构数据源的底层数据。同时对于Catalog来说,对于外部表,无需创建表与表之间的映射关系,直接可以实现元数据层的对家查询,进一步加强联邦数据分析能力。
简单的介绍就是,这个Catalog就像一个连接器,外部数据源的数据还是放在外部存储上,在doris上直接创建一个doris与外部数据源的连接器,无需做表映射,就可以直接在doris中使用外部数据源的语法查询数据。
综合总结,doris这两年发展较快,从1.2版本开始已经开始迈入数据湖的领域了。下面我们演示下使用mysql查询。
一、准备一个mysql
准备一个mysql,并且mysql里面有数据的,这里我们准备的数据库是:
数据库地址:192.168.31.30 数据库端口:3306 数据库账号:school_add_field 数据库密码:EajXtFEjhcKfaMcP 数据库:school_add_field
二、创建一个jdbc的catalog
在doris上执行如下的sql语句
CREATE CATALOG jdbc_schooladdfileds PROPERTIES ( "type"="jdbc", "jdbc.user"="school_add_field", "jdbc.password"="EajXtFEjhcKfaMcP", "jdbc.jdbc_url" = "jdbc:mysql://192.168.31.30:3306/school_add_field", "jdbc.driver_url" = "file:/home/doris/lib/mysql-connector-java-5.1.49.jar", "jdbc.driver_class" = "com.mysql.jdbc.Driver" );
备注:
1、这里的driver我们是需要下载一个mysql-connector的java依赖包,把他放到服务器上,地址填写的是服务器上的路径。
2、在大型的集群里面我们很少会在每台服务器上都放一个mysql-connector的java依赖包,因此这里我们可以把mysql-connector的jar包放到nginx下,使其可以访问即可,然后我们这里的sql语句就可以这么写
CREATE CATALOG jdbc_schooladdfileds PROPERTIES ( "type"="jdbc", "jdbc.user"="school_add_field", "jdbc.password"="EajXtFEjhcKfaMcP", "jdbc.jdbc_url" = "jdbc:mysql://192.168.31.30:3306/school_add_field", "jdbc.driver_url" = "https://xxx.xxx.com/lib/mysql-connector-java-5.1.49.jar", "jdbc.driver_class" = "com.mysql.jdbc.Driver" );
以上我们的连接器就创建好了。
二、查看所有的catalog
在doris集群中可能存在很多的catalog,所以这里我们可以查询所有的catalog
show catalogs;
三、进入catalog连接器
这里进入catalog的连接器和选择数据库是一样的,使用下面的语法:
switch jdbc_schooladdfileds;
四、查询mysql的数据
我们进入到自己选择的catalog之后,就可以直接使用对应数据源的语法了,这里我们的数据源是mysql,因此可以使用mysql的语法:
#选择mysql的数据库 use school_add_field; #查看mysql数据库下面的所有表 show tables;
在这个库里面,student表有数据,我们来查一下:
可以看到直接查询到了数据。
备注:
1、对于catalog,我个人把他看作是一个连接器。
2、从1.2开始doris启动这个catalog,代表doris正式进入数据湖的领域,使用起来简直太方便了。
还没有评论,来说两句吧...