暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Doris外部表使用文档

原创 铜牛 2024-12-18
331

(1) 技术选型背景:

历史版本有物化视图,外部表等功能均可实现,但基于odbc配置,且不同版本mysql支持情况不一致,因此选择官方建议的CATALOG ,尝试兼容性最好的方案。外部表及资源尝试失败报错,提示需要重新编译并配置开启mysql连接项,估计是官方强制废除推广新功能应用。

(外部表是通过odbc连接,需要进行服务端与客户端以及doris 服务端的修改,生产环境不太允许随意动客户服务器配置,所以放弃该方案。物化视图未测试。)

(2) 创建CATALOG 连接,包括mysql8.X及5.X版本各一个。

CREATE CATALOG mysql130 PROPERTIES (

    "type"="jdbc",

    "user"="root",

    "password"="root",

    "jdbc_url" = "jdbc:mysql://192.168.110.130:3306/phdemo?useSSL=false",

    "driver_url" = "https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar",

    "driver_class" = "com.mysql.cj.jdbc.Driver"

);

 

/phdemo数据库名可忽略,代表整个库下实例均可访问。追加指定数据库可限制访问。

CREATE CATALOG server30 PROPERTIES (

    "type"="jdbc",

    "user"="root",

    "password"="abc",

    "jdbc_url" = "jdbc:mysql://192.168.110.30:3306?useSSL=false",

    "driver_url" = "https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar",

    "driver_class" = "com.mysql.cj.jdbc.Driver"

);

注意:该创建过程较长,大约为1~3分钟,请耐心等待。

CREATE CATALOG jdbc_mysql PROPERTIES (
"type"="jdbc",
"user"="root",
"password"="123456",
"jdbc_url" = "jdbc:mysql://127.0.0.1:3306/demo",
"driver_url" = "mysql-connector-java-5.1.47.jar",
"driver_class" = "com.mysql.jdbc.Driver"
)

CREATE CATALOG jdbc PROPERTIES (

    "type"="jdbc",

    "user"="root",

    "password"="abcdefg",

    "jdbc_url" = "jdbc:mysql://192.168.0.213:3306/testdb?useSSL=false",

    "driver_url" = "file:///opt/apache-doris-2.1.3-bin-x64/mysql-connector-j-8.3.0.jar",

    "driver_class" = "com.mysql.cj.jdbc.Driver"

);

(3) 参数错误如需重建CATALOG

drop CATALOG 名称        查看所有 show catalogs

(4) 切换到指定 CATALOG ,以及查询下级数据库

switch 名称     show databases

(5) 查询数据         SELECT * from CATALOG名称.DB名称.表名

        SELECT * from mysql130.demo.way_gate

SELECT * from server30.test_dt.way_gate

注意:该查询首次执行相当慢,大约为1~2分钟,如数据较大时甚至超时。准备放弃该方案。

但是,但是,首次执行过好,再次查询秒级显示。应该是有缓存,个人怀疑首次执行时就是把数据全部拉到内存或者其它中间存储中了。个别数据表较大执行超时,可以追加limit限制语句加载;但仍有局限,需要全部载过一次才行。

(6) 关联查询一下

select nvl(dict.gate_name,'途径点') as station ,nvl(dict.gate_type,'途径点') poin_type,traf_data.*

from traffic_data as traf_data left join mysql130.demo.way_gate as dict

on traf_data.path_point =dict.road_section_id

1. 参考文档

https://doris.apache.org/zh-CN/docs/dev/sql-manual/sql-reference/Data-Definition-Statements/Create/CREATE-CATALOG?_highlight=catalogs

https://blog.csdn.net/S1124654/article/details/129545097

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论