Hologres访问MaxCompute Delta Table

更新时间:2025-03-05 06:31:36

本文为您介绍通过Hologres如何访问MaxCompute Delta Table。

功能介绍

Hologres v3.0.22版本开始,支持读取MaxCompute Delta Table。Delta TableMaxCompute推出的增量数据表格式,支持分钟级数据导入,底层使用AliORC作为文件格式,支持UPSERT语义,并能够提供按照CDC(Change Data Capture)格式读写增量数据,详情请参见Delta Table概述

前提条件

注意事项

  • Hologres当前仅支持读取MaxCompute Delta Table的最新快照。

  • 暂不支持从Hologres侧回写MaxCompute Delta Table。

  • 访问MaxCompute Delta Table需要添加GUC ,建议Session级别开启,在查询MaxCompute Delta TableSQL前一起执行:

    SET hg_experimental_external_catalog_routing = 'odps:common_table';

使用说明

MaxCompute侧创建Delta Table

您可以通过以下方式完成表的创建:

SQL命令如下。

CREATE TABLE IF NOT EXISTS mf_dt (pk BIGINT NOT NULL PRIMARY KEY, 
                  val BIGINT NOT NULL) 
                  PARTITIONED BY (dd STRING, hh STRING) 
                  tblproperties ("transactional"="true");

MaxCompute侧写入数据

MaxCompute目前支持使用以下两种方式进行数据写入:

本文以批式写入数据为例,SQL命令如下。

-- 使用insert into向mf_dt表目标分区中追加数据
INSERT INTO TABLE mf_dt PARTITION(dd='01', hh='01') 
            VALUES (3, 30), (4, 4), (5, 5);

-- 向mf_dt表dd='01'和hh='01'的分区中插入测试数据
INSERT OVERWRITE TABLE mf_dt PARTITION (dd='01', hh='01') 
                 VALUES (1, 1), (2, 2), (3, 3);

Hologres侧创建外部数据源映射

Hologres支持两种方式创建外部数据源映射:

本文以CREATE EXTERNAL DATABASE为例,SQL命令如下。

CREATE EXTERNAL DATABASE ext_database_mc WITH 
  metastore_type 'maxcompute'
  mc_project 'mc_3_layer_project' 
  comment 'mc three layer project';
  • 查询外部数据库中的所有Schema。

    SELECT * FROM hologres.hg_external_schemas('ext_database_mc');
  • 查询外部数据库中default模式下的所有表。

    SELECT * FROM hologres.hg_external_tables('ext_database_mc', 'default');

Hologres侧查询Delta Table

查询MaxCompute中的Delta Table数据,SQL命令如下。

SET hg_experimental_external_catalog_routing = 'odps:common_table';
SELECT * FROM ext_database_mc.mc_schema_name.mf_dt;
  • 本页导读 (1)
  • 功能介绍
  • 前提条件
  • 注意事项
  • 使用说明
  • MaxCompute侧创建Delta Table
  • MaxCompute侧写入数据
  • Hologres侧创建外部数据源映射
  • Hologres侧查询Delta Table
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等