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中查询数据的权限,自Hologres V4.0开始权限校验做了如下变更。
MaxCompute外部表创建方式
操作
需具备的MaxCompute权限(V3.0、V3.1和V3.2版本)
需具备的MaxCompute权限(V4.0及以上版本)
Foreign Table方式
IMPORT FOREIGN SCHEMA批量创建MaxCompute外部表
Describe、List
Describe、List
查询数据
Describe、Select
Select
External Database方式
查看External Table的元数据
Describe
Describe
查询数据
Describe、Select
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链路。