面向阿里云 MaxCompute 的配置方法
阿里云 MaxCompute(旧称 ODPS)具备兼容 Hive 的语法,ProtonBase 可以通过外部表方式与 MaxCompute 存储的表互通,实现查询加速和数据导入。当前仅支持数据保存在 OSS,元数据在 MaxCompute 的场景。
安装扩展
安装 extension,仅需要安装一次,如果已经安装过,可以忽略。
注意:安装扩展(extension)通常需要超级用户权限。只有超级用户可以执行
CREATE EXTENSION,除非扩展被标记为 trusted,此时拥有数据库CREATE权限的用户也可安装。创建外部表时如依赖扩展提供的数据类型或函数,需确保已正确安装相关扩展且具备相应权限。
CREATE EXTENSION odps_fdw; 创建 MaxCompute 外部服务器及授权
使用 MaxCompute,存储在 OSS 上时:
-- odps_server for oss foreign tables
CREATE SERVER odps_server FOREIGN DATA WRAPPER odps_fdw
OPTIONS (
ODPS_ENDPOINT 'http://service.cn-hangzhou.maxcompute.aliyun.com/api',
OSS_ENDPOINT 'https://oss-cn-hangzhou-internal.aliyuncs.com/'
);
-- create user mapping
CREATE USER MAPPING FOR public SERVER odps_server
OPTIONS (
ODPS_ACCESS_ID 'LTAIxxxxxxxxxwEWq',
ODPS_ACCESS_KEY 'HhVIxxxxxxxxxwMLNH4',
OSS_ACCESS_ID 'LTAIxxxxxxxxxwEWq',
OSS_ACCESS_KEY 'HhVZ8IxxxxxxxxxwMLNH4'
);ODPS_ENDPOINT参考上文 ODPS_ENDPOINT 的配置。OSS_ENDPOINT参考file_fdw章节的配置。
创建外表
-- 将 mc_project 下的 user_oss, orders_oss 两个表创建为外表,元数据保存在 public schema 下。
IMPORT FOREIGN SCHEMA mc_project LIMIT TO
(
users_oss, orders_oss
)
FROM SERVER odps_server INTO public;