基于Common Table链路访问MaxCompute

HologresV3.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

不支持直读文件,性能稍差。

支持直读文件,性能强。

落盘加密表

  • 支持使用KMS KEY加密的表。

  • 不支持使用Default KEY加密的表。

  • 支持使用KMS KEY加密的表。

  • 支持使用Default KEY加密的表。

ACID 1.0 表

未开通

已开通

Delta Table

未开通

已开通

Append 2.0 Table

未开通

已开通

权限说明

  • 通过Common Table链路访问基于Foreign TableExternal 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链路。