上云无忧 > 文档中心 > 百度数据仓库 Palo 通过外部表同步数据
百度数据仓库 Palo Doris版
百度数据仓库 Palo 通过外部表同步数据

文档简介:
PALO 可以创建通过 ODBC 协议访问的外部表。创建完成后,可以通过 SELECT 语句直接查询外部表的数据,也可以通过 INSERT INTO SELECT 的方式导入外部表的数据。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

PALO 可以创建通过 ODBC 协议访问的外部表。创建完成后,可以通过 SELECT 语句直接查询外部表的数据,也可以通过 INSERT INTO SELECT 的方式导入外部表的数据。

本文档主要介绍如何创建通过 ODBC 协议访问的外部表,以及如何导入这些外部表的数据。目前支持的数据源包括:

  • MySQL
  • Oracle
  • PostgreSQL

创建外部表

创建 ODBC 外部表的详细介绍请参阅 CREATE ODBC TABLE 语法帮助手册。

这里仅通过示例说明使用方式。

  1. 创建 ODBC Resource

    ODBC Resource 的目的是用于统一管理外部表的连接信息。

    CREATE EXTERNAL RESOURCE `oracle_odbc` PROPERTIES ( "type" = "odbc_catalog", "host" = "192.168.0.1",

    这里我们创建了一个名为 oracle_odbc 的 Resource,其类型为 odbc_catalog,表示这是一个用于存储 ODBC 信息的 Resource。odbc_type 为 oracle,表示这个 OBDC Resource 是用于连接 Oracle 数据库的。关于其他类型的资源,具体可参阅 资源管理 文档。

  2.  "port" = "8086", "user" = "test", "password" = "test", "database" = "test", "odbc_type" = 
  3. "oracle", "driver" = "Oracle" );
  4. 创建外部表

    CREATE EXTERNAL TABLE `ext_oracle_tbl` ( `k1` decimal(9, 3) NOT NULL COMMENT "", `k2` 

    这里我们创建一个 ext_oracle_tbl 外部表,并引用了之前创建的 oracle_odbc Resource。

  5. char(10) NOT NULL COMMENT "", `k3` datetime NOT NULL COMMENT "", `k5` varchar(20) NOT NULL 
  6. COMMENT "", `k6` double NOT NULL COMMENT "" ) ENGINE=ODBC COMMENT "ODBC" PROPERTIES 
  7. ( "odbc_catalog_resource" = "oracle_odbc", "database" = "test", "table" = "baseall" );

连接百度云数据库 RDS

  1. 创建 RDS

    可以通过 RDS快速入门教程 创建一个 RDS 示例。

    注意:创建 RDS 实例时,网络类型 -> 选择网络 处,需要选择和 PALO 集群相同的网络(VPC)。可用区可以不同。

  2. 创建资源

    CREATE EXTERNAL RESOURCE `rds_odbc`
    PROPERTIES (
        "type" = "odbc_catalog",
        "host" = "mysql56.rdsxxxxx.rds.gz.baidubce.com",
        "port" = "3306",
        "user" = "rdsroot",
        "password" = "12345",
        "odbc_type" = "mysql",
        "driver" = "MySQL"
    );

    需修改其中 host,port,user,password 对应的参数。 host port 可以在 RDS 实例信息也查看。user 和 password 需要在 RDS 控制台创建账户后获取。

  3. 创建外部表

    CREATE EXTERNAL TABLE `mysql_table` ( k1 int, k2 int ) ENGINE=ODBC
    PROPERTIES ( "odbc_catalog_resource" = "rds_odbc", "database" = "mysql_db", "table" = "mysql_tbl" );

    创建之后,就可以进行查询等操作了。

导入数据

  1. 创建 PALO 表

    这里我们创建一张 PALO 的表,列信息和上一步创建的外部表 ext_oracle_tbl 一样:

    CREATE EXTERNAL TABLE `doris_tbl` ( `k1` decimal(9, 3) NOT NULL COMMENT "", `k2`

    关于创建 PALO 表的详细说明,请参阅 CREATE-TABLE 语法帮助。

  2.  char(10) NOT NULL COMMENT "", `k3` datetime NOT NULL COMMENT "", `k5` varchar(20) NOT NULL COMMENT "", 
  3. `k6` double NOT NULL COMMENT "" ) COMMENT "PALO Table" DISTRIBUTED BY HASH(k1) BUCKETS 2; PROPERTIES
  4.  ( "replication_num" = "1" );
  5. 导入数据 (从 ext_oracle_tbl表 导入到 doris_tbl 表)

    INSERT INTO doris_tbl SELECT k1,k2,k3 FROM ext_oracle_tbl limit 100;

    INSERT 命令是同步命令,返回成功,即表示导入成功。

注意事项

  • 必须保证外部数据源与 PALO 集群在同一个VPC内,并且 Compute Node 可以和外部数据源的网络是互通的。
  • ODBC 外部表本质上是通过单一 ODBC 客户端访问数据源,因此并不合适一次性导入大量的数据,建议分批多次导入。

相似文档
  • PALO 支持导入 JSON 格式的数据。本文档主要说明在进行JSON格式数据导入时的注意事项。 支持的导入方式: 目前只有以下导入方式支持 Json 格式的数据导入: 将本地 JSON 格式的文件通过 STREAM LOAD 方式导入。 通过 ROUNTINE LOAD 订阅并消费 Kafka 中的 JSON 格式消息。 暂不支持其他方式的 JSON 格式数据导入。
  • 导入原子性: PALO 中的所有导入操作都有原子性保证,即一个导入作业中的数据要么全部成功,要么全部失败。不会出现仅部分数据导入成功的情况。 在 BROKER LOAD 中我们也可以实现多多表的原子性导入。
  • PALO 支持丰富的列映射、转换和过滤操作。可以非常灵活的处理需要导入的原始数据。 本文档主要介绍如何在导入中使用这些功能。 总体介绍: PALO 在导入过程中对数据处理步骤分为以下几步: 数据按原始文件中的列的顺序读入到 PALO。 通过前置过滤条件(PRECEDING FILTER)对原始数据进行一次过滤。
  • 严格模式(strict_mode)为导入操作中的一个参数配置。该参数会影响某些数值的导入行为和最终导入的数据。 本文档主要说明如何设置严格模式,以及严格模式产生的影响。
  • PALO 中存储的数据都是以追加(Append)的方式进入系统,这意味着所有已写入的数据是不可变更的。 所以 PALO 采用标记的方式来实现数据更新的目的。即在一批更新数据中,将之前的数据标记为删除,并写入新的数据。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部