如何在 Doris 中通过外表访问 OceanBase 的表

2024年 6月 17日 63.3k 0

折腾了一番,记录如下:

在OceanBase 中建立了一张表 test.t1:

CREATE TABLE `t1` (
  `apply_id` varchar(500) DEFAULT NULL,
  `apply_dt` date DEFAULT NULL,
  `mobile_prov_nm` varchar(500) DEFAULT NULL,
  `mobile_city_nm` varchar(500) DEFAULT NULL
);

-- 插入 10000 行数据到 t1 表
 insert /*+parallel(48) enable_parallel_dml append */ into t1
   select abs(random()),
   case abs(random()%3)
      when 0 then '2022-10-10'
      when 1 then '2021-10-10' 
      when 2 then '2023-10-10'
   end,
   abs(random()%10000),
   10000000 * abs(random()%25)
from table(generator(10000));

我的 OceanBase 的账号信息如下:

host: 127.0.0.1
port: 44035
database: test
user: root@mysql_tenant
pass: 空

然后在 Doris 中通过外表 et1 可以访问 OceanBase 中的 t1 表。Doris 中建外表的流程如下:

drop resource jdbc_resource;
drop table et1;

CREATE EXTERNAL RESOURCE jdbc_resource
properties (
    "type"="jdbc",
    "user"="root@mysql_tenant",
    "password"="",
    "jdbc_url"="jdbc:oceanbase://127.0.0.1:44035/test",
    "driver_url"="file:///home/admin/ob.z1.obs0/oceanbase-client-2.4.1.jar",
    "driver_class"="com.oceanbase.jdbc.Driver"
);

CREATE TABLE `et1` (
  `apply_id` varchar(500) DEFAULT NULL,
  `apply_dt` date DEFAULT NULL,
  `mobile_prov_nm` varchar(500) DEFAULT NULL,
  `mobile_city_nm` varchar(500) DEFAULT NULL
)ENGINE=JDBC
PROPERTIES (
"resource" = "jdbc_resource",   -- 在Doris中建立外表时依赖的资源名
"table" = "t1",   -- 在Doris中建立外表时,与外部数据库相映射的表名。
"table_type"="oceanbase"   -- 外表对应的数据库 mysql,postgresql,sqlserver,oracle, 和 jdbc_url 中的数据库名保持一致
);

-- 测试访问外表
select * from et1;

其中:

driver_url 中的 jar 文件oceanbase-client-2.4.1.jar 文件来自 OceanBase 官网:资源与服务-》软件下载-》企业版-》[驱动和中间件](https://www.oceanbase.com/softwarecenter-enterprise)

jdbc_url 中 的 url 前缀是 jdbc:oceanbase ,不是 jdbc:mysql

driver_class 是 com.oceanbase.jdbc.Driver,而不是 com.mysql.jdbc.Driver

创建外表的属性中,"table_type"="oceanbase" 不要写成 "table_type"="mysql"

总之,所有 mysql 的痕迹,都变成 oceanbase,就对了。其余和 MySQL jdbc 一模一样。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论