Doris配置外表以及多个Hive外表的配置

img

1.场景分析

以Clickhouse、Doris、Starrocks等为代表的mpp分析数据库正在快速的兴起,以其高效查询、跨库整合能力收到广大技术人员的喜爱。本文主要浅显介绍下作者在使用Doris时,通过建立catlog进行跨库查询。
废话不多少,直接上代码

2.相关配置

#Tidb外表,jdbc方式连接,如果没有服务器权限可以直接在driver_url上填写jar包的maven地址
#如果报connect timeout,建议直接找运维将jar包手动放在服务器本地
CREATE CATALOG TiDB_catalog PROPERTIES (
    "type"="jdbc",
    "user"="xxxx",
    "password"="xxx",
    "jdbc_url" = "jdbc:mysql://xxx:4000",
    "driver_url" = "https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
);
#mysql外表,jdbc方式连接,如果有服务器权限包的maven地址
#需将 Jar 包预先存放在 FE 和 BE 部署目录的 jdbc_
### 配置达梦数据库外部表于 Apache Doris 中 在 Apache Doris配置达梦数据库的外部表是一项常见的需求,尤其是在需要跨数据库进行联合查询或数据分析的情况下。以下是关于如何在 Apache Doris配置达梦数据库外部表的最佳实践和详细步骤。 #### 1. 外部表的概念与功能 Apache Doris 支持多种外部数据源接入方式,其中包括 MySQL、PostgreSQL、Hive 等。虽然官方文档未直接提及达梦数据库的支持情况,但由于达梦数据库兼容 MySQL 协议[^2],因此可以通过 MySQL 数据源的方式间接对接达梦数据库。这种设计允许用户利用 Doris 的强大分析能力来处理来自达梦数据库中的数据。 #### 2. 准备工作 为了成功创建达梦数据库的外部表,需完成以下准备工作: - **安装并启动达梦数据库实例**:确保目标达梦数据库正常运行,并开放必要的端口供远程访问。 - **确认网络连通性**:验证 Apache Doris 节点能够通过 IP 地址或域名访问到达梦数据库服务器。 - **授权权限设置**:为目标用户提供足够的 SELECT 权限以便后续操作顺利进行。 #### 3. 创建外部表的具体步骤 按照如下流程逐步实施: ##### (1)加载 JDBC 驱动程序 由于达梦数据库支持标准 SQL 接口以及部分扩展特性,理论上可以直接采用其自带的 JDBC Driver 文件作为桥梁。将下载好的 dmjdbc驱动包放置至 FE(Frontend)节点指定目录下(通常位于 lib/plugin/mysql_connector 下),随后重启服务使更改生效[^4]。 ##### (2)定义 External Catalog 进入 Beeline 客户端或其他管理界面后执行命令新建 catalog: ```sql CREATE EXTERNAL CATALOG ext_dm_catalog PROPERTIES ( "type"="mysql", "host"="your_dameng_host", "port"="5236", "user"="username_for_accessing_db", "password"="password_of_the_user" ); ``` 此处需要注意的是,“type”参数应设为 “mysql”,因为我们将借助 MySQL 兼容模式连接到 DM8;而其他字段则依据实际环境填写相应值即可。 ##### (3)建立映射关系 接着声明一张指向远端真实物理表的新虚拟视图或者逻辑层面上存在的对象形式存在于此处——即所谓的“外表”。假设我们希望获取名为 `test_table` 表的信息,则可按下面模板书写语句: ```sql USE default_cluster:ext_dm_catalog; CREATE TABLE IF NOT EXISTS test_ext_table( id BIGINT, name STRING, age INT ) ENGINE=MYSQL LOCATION='dm://database_name/test_table'; ``` 以上代码片段中包含了几个重要组成部分解释如下: - 使用默认集群关联之前创建好的 external catalog; - 明确指出待引入的目标实体结构特征及其属性描述; - 指定引擎类型为 MYSQL 并附加具体定位路径说明。 至此便完成了整个过程概述! #### 4. 测试查询性能优化建议 当一切就绪之后就可以尝试发起简单的 select 请求测试一下效果啦~ 如果发现速度较慢的话可以从以下几个方面入手改善体验感哦~ - 尽可能减少不必要的列投影; - 合理运用分区裁剪机制降低扫描范围; - 借助物化视图缓存热点结果集提升效率等等[^3]. ```python # 示例 Python 查询脚本 import pymysql connection = pymysql.connect(host='your_dameng_host', port=int('5236'), user='username_for_accessing_db', password='password_of_the_user') try: with connection.cursor() as cursor: sql = 'SELECT * FROM database_name.test_table LIMIT 10;' cursor.execute(sql) result = cursor.fetchall() finally: connection.close() print(result) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值