MaxCompute推出外部项目功能,通过映射OSS上的Paimon catalog 目录,构建与标准Paimon文件系统层级一致的外部项目。访问权限基于用户RAMRole对OSS Bucket 的授权,支持对Paimon湖格式的元数据和数据进行读写。该方式实现 catalog级整体映射,需用户确保文件系统层析合规,由用户自主管理权限与湖格式文件存储,适用于权限可控、具备自主维护能力的流批一体场景。目前Paimon_DLF 外部项目处于beta测试阶段。
目前FileSystem Catalog外部项目属于beta测试阶段,可通过搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群与我们沟通交流。
适用范围
只支持Paimon格式表。
不支持写入Dynamic Bucket表。
不支持写入Cross Partition表。
操作步骤
步骤一:为RAM用户授权
如果操作用户是RAM用户,请确保已绑定如下权限策略。添加权限参考为为RAM用户授权。
AliyunMaxComputeFullAccess:用来完成创建外部数据源和外部项目操作。
步骤二:创建Filesystem Catalog外部数据源
开通OSS,并创建bucket存储了Paimon数据,详情请参见控制台快速入门。
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择管理配置 > 外部数据源。
在外部数据源页面,单击创建外部数据源。
在新增外部数据源对话框,根据界面提示配置相关参数。参数说明如下:
参数
是否必填
说明
外部数据源类型
必填
选择Filesystem Catalog。
外部数据源名称
必填
可自定义命名。命名规则如下:
以字母开头,且只能包含小写字母、下划线和数字。
不能超过128个字符。
外部数据源描述
选填
根据需要填写。
地域
必填
默认为当前地域。
认证和鉴权
必填
默认为阿里云RAM角色。
RoleARN
必填
acs:ram::<uid>:role/aliyunodpsdefaultrole
存储类型
必填
OSS或OSS-HDFS
Endpoint
必填
系统默认生成。
单击确认,完成外部数据源的创建。
在外部数据源页面,单击数据源操作列的详情可查看数据源详细信息。
步骤三:MaxCompute创建外部项目
登录MaxCompute控制台,在左上角选择地域。
在左侧导航栏,选择管理配置 > 项目管理。
在项目管理页面,单击外部项目页签,然后单击新建项目。
在新增项目对话框,根据界面提示配置参数。参数说明如下:
参数
是否必填
说明
项目类型
必填
默认为外部项目,不可更改。
地域
必填
默认为当前地域,此处无法修改。
项目名称(全网唯一)
必填
字母开头,包含字母、数字及下划线(_),长度在3-28个字符。
MaxCompute外部数据源类型
选填
选择Filesystem Catalog。
MaxCompute外部数据源
选填
选择已有:会出现已经创建过的外部数据源。
新建外部数据源:即可新建并使用新的外部数据源。详情可参考步骤二创建Filesystem Catalog外部数据源。
MaxCompute外部数据源名称
必填
选择已有:在下拉列表中选择已经创建好的外部数据源名称。
新建外部数据源:则会使用新建的外部数据源名称。
认证和鉴权
必填
阿里云RAM角色。
RoleARN
必填
任务执行者使用RAM Role身份和权限,操作对端数据。
可以使用:
默认角色:acs:ram::<uid>:role/aliyunodpsdefaultrole。
自定义角色:参考OSS的STS模式普通角色授权。
存储类型
必填
OSS或OSS-HDFS。
Endpoint
必填
默认生成。
Bucket数据目录
必填
当前地域下,数据存储在OSS的数据目录名称,路径选到db的上一层级。
oss-hdfs模式暂不支持下拉选择数据目录,请填写完整的oss bucket和catalog级别的文件系统目录,比如
oss://bucket_name/path_to_table
。表格式
必填
默认为Paimon。
计算资源付费类型
必填
包年包月或按量付费。
默认Quota
必填
选择已有Quota.
描述
选填
自定义项目描述。
单击确认,完成项目创建。
步骤四:使用SQL访问数据源系统
选择连接工具登录外部项目。
MaxCompute控制台SQL分析
模块
说明
环境要求
推荐使用最新版谷歌浏览器。
操作入口
登录MaxCompute控制台,在左侧导航栏选择 。
操作指引
DataWorks数据开发方式
模块
说明
环境要求
推荐使用最新版谷歌浏览器。
操作指引
列出外部项目中的schema,默认只会列出存储Paimon表的DB路径。
-- 打开session级别支持schema语法开关。 SET odps.namespace.schema=true; SHOW schemas; -- 返回结果如下。 ID = 20250922********wbh2u7 default OK
在外部项目中列出schema下的表。
-- schema_name为外部项目中展示出来的Schema名称。 USE SCHEMA <schema_name>; SHOW tables;
在外部项目中新建schema。
CREATE schema <schema_name>; -- 示例如下。 CREATE schema schema_test;
使用新建的schema。
use schema <schema_name>; -- 示例如下。 use schema schema_test;
在schema中新建表并插入数据。
命令格式:
-- 新建表。 CREATE TABLE [IF NOT EXISTS] <table_name> ( <col_name> <data_type>, ... ) [COMMENT <table_comment>] [PARTITIONED BY (<col_name> <data_type>, ...)] ; -- 插入数据。 INSERT {INTO|OVERWRITE} TABLE <table_name> [PARTITION (<pt_spec>)] [(<col_name> [,<col_name> ...)]] <select_statement> FROM <from_statement>
使用示例:
CREATE TABLE new_table(id INT,name STRING); INSERT INTO new_table VALUES (101,'张三'),(102,'李四'); -- 查询表new_table。 SELECT * FROM new_table; -- 返回结果如下。 +------------+------------+ | id | name | +------------+------------+ | 101 | 张三 | | 102 | 李四 | +------------+------------+