tencent cloud

文档反馈

通过外部表同步数据

最后更新时间:2024-06-27 11:04:20
    说明:
    本文档所示内容仅适用1.1及之前版本,1.2版本后不推荐使用外部表同步数据。
    Doris 可以创建通过 ODBC 协议访问的外部表。创建完成后,可通过 SELECT 语句直接查询外部表的数据,也可以通过 INSERT INTO SELECT 的方式导入外部表的数据。
    本文档主要介绍如何创建通过 ODBC 协议访问的外部表,以及如何导入这些外部表的数据。目前支持的数据源包括:
    MySQL
    Oracle
    PostgreSQL
    SQLServer
    Hive(1.0版本支持)

    创建外部表

    1. 创建 ODBC Resource ODBC Resource 的作用是用于统一管理外部表的连接信息。
    CREATE EXTERNAL RESOURCE `oracle_test_odbc`
    PROPERTIES (
    "type" = "odbc_catalog",
    "host" = "192.168.0.10",
    "port" = "8086",
    "user" = "oracle",
    "password" = "oracle",
    "database" = "oracle",
    "odbc_type" = "oracle",
    "driver" = "Oracle"
    );
    这里我们创建了一个名为 oracle_test_odbc 的 Resource,其类型为 odbc_catalog,表示这是一个用于存储 ODBC 信息的 Resource。odbc_typeoracle,表示这个 ODBC Resource 是用于连接 Oracle 数据库的。
    2. 创建外部表
    CREATE EXTERNAL TABLE `ext_oracle_demo` (
    `k1` decimal(9, 3) NOT NULL COMMENT "",
    `k2` char(10) NOT NULL COMMENT "",
    `k3` datetime NOT NULL COMMENT "",
    `k5` varchar(20) NOT NULL COMMENT "",
    `k6` double NOT NULL COMMENT ""
    ) ENGINE=ODBC
    COMMENT "ODBC"
    PROPERTIES (
    "odbc_catalog_resource" = "oracle_test_odbc",
    "database" = "oracle",
    "table" = "baseall"
    );
    这里我们创建一个 ext_oracle_demo 外部表,并引用了之前创建的 oracle_test_odbc Resource。

    导入数据

    1. 创建 Doris 表 这里我们创建一张 Doris 的表,列信息和上一步创建的外部表 ext_oracle_demo 一样:
    CREATE TABLE `doris_oralce_tbl` (
    `k1` decimal(9, 3) NOT NULL COMMENT "",
    `k2` char(10) NOT NULL COMMENT "",
    `k3` datetime NOT NULL COMMENT "",
    `k5` varchar(20) NOT NULL COMMENT "",
    `k6` double NOT NULL COMMENT ""
    )
    COMMENT "Doris Table"
    DISTRIBUTED BY HASH(k1) BUCKETS 2;
    PROPERTIES (
    "replication_num" = "1"
    );
    关于创建 Doris 表的详细说明,请参阅 CREATE-TABLE 语法帮助。
    2. 导入数据 (从 ext_oracle_demo表 导入到 doris_oracle_tbl 表)
    INSERT INTO doris_oracle_tbl SELECT k1,k2,k3 FROM ext_oracle_demo limit 100;
    INSERT 命令是同步命令,返回成功,即表示导入成功。

    注意事项

    必须保证外部数据源与 Doris 集群是可以互通,包括BE节点和外部数据源的网络是互通的。
    ODBC 外部表本质上是通过单一 ODBC 客户端访问数据源,因此并不合适一次性导入大量的数据,建议分批多次导入。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持