Hologres自V3.0.38版本开始,支持MaxCompute加速链路全新升级,该链路称为Common Table链路。本文为您介绍如何通过Common Table链路访问MaxCompute。
功能介绍
Common Table链路通过C++ Native读取 MaxCompute中的数据,相比现在的SQE/HQE链路具备如下优势:
表示支持,
表示不支持。
对比项 | SQE/HQE链路 | Common Table链路 |
性能 | 强 | 非常强,相比SQE/HQE性能提升33%,相较于基于开放存储StorageAPI读性能提升200%以上。 |
动态脱敏表 | 需要二次设置规则。 | 可以继承MaxCompute中设置的脱敏规则,查询到的数据和使用MaxCompute查询结果一致。 |
Schema Evolution | 不支持直读文件,性能稍差。 | 支持直读文件,性能强。 |
落盘加密表 |
|
|
ACID 1.0 表 | ||
Delta Table | ||
Append 2.0 Table |
权限说明
通过Common Table链路访问基于Foreign Table或External Database方式创建的MaxCompute外部表,需要具备以下权限。为用户授予访问MaxCompute项目和表的权限,详情请参见通过命令管理用户权限。
MaxCompute外部表创建方式
操作
需具备的MaxCompute权限
Foreign Table方式
IMPORT FOREIGN SCHEMA批量创建MaxCompute外部表
Describe、List
查询数据
Describe、Select
External Database方式
查看External Table的元数据
Describe
查询数据
Describe、Select
Hologres当前仅支持读取MaxCompute Delta Table的最新快照。
当前暂不支持从Hologres侧回写数据至MaxCompute Delta Table。
开启方式
您可以根据具体的使用场景选择合适的开启方式。
SESSION级别
-- SESSION级别开启,需要和查询/DML一起执行 SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
数据库级别
-- 数据库级别开启 ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
实例级别
-- 实例级别开启 ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
关闭方式
SESSION级别
-- SESSION级别关闭,需要和查询/DML一起执行 SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
数据库级别
-- 数据库级别关闭 ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
实例级别
-- 实例级别关闭 ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
查看当前的使用链路
您可使用如下SQL查看,若返回结果显示
odps:common_table,dlf:hqe
,则表示当前使用的Common Table链路。SHOW hg_experimental_external_catalog_routing;
对于历史查询可通过慢Query日志查看query_extinfo字段,若出现
driver:CommonTable
,则表示使用的Commen Table链路。