本文为您介绍通过Hologres如何访问MaxCompute Delta Table。
功能介绍
从Hologres v3.0.22版本开始,支持读取MaxCompute Delta Table。Delta Table是MaxCompute推出的增量数据表格式,支持分钟级数据导入,底层使用AliORC作为文件格式,支持UPSERT语义,并能够提供按照CDC(Change Data Capture)格式读写增量数据,详情请参见Delta Table概述。
前提条件
已开通Hologres实例,详情请参见购买Hologres。
已开通MaxCompute并创建项目,详情请参见开通MaxCompute。
已为用户授予访问MaxCompute项目和表的权限,详情请参见通过命令管理用户权限。
注意事项
Hologres当前仅支持读取MaxCompute Delta Table的最新快照。
暂不支持从Hologres侧回写MaxCompute Delta Table。
访问MaxCompute Delta Table需要添加GUC ,建议Session级别开启,在查询MaxCompute Delta Table的SQL前一起执行:
SET hg_experimental_external_catalog_routing = 'odps:common_table';
使用说明
MaxCompute侧创建Delta Table
您可以通过以下方式完成表的创建:
通过使用DataWorks平台,绑定MaxCompute数据源后,再执行表的创建。
通过本地客户端使用MaxCompute执行表的创建。
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目前支持使用以下两种方式进行数据写入:
使用INSERT INTO或INSERT OVERWRITE方式批式写入数据,详见插入或覆写数据(INSERT INTO | INSERT OVERWRITE)。
使用Flink近实时写入,详见使用Flink写入数据到Delta Table。
本文以批式写入数据为例,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支持两种方式创建外部数据源映射:
基于External Database整库映射MaxCompute指定Project下的所有表,详见CREATE EXTERNAL DATABASE。
通过Foreign Table的方式自定义需要映射的指定Schema和表,详见IMPORT FOREIGN SCHEMA和CREATE FOREIGN TABLE。
本文以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