FileSystem Catalog外部项目

更新时间:
复制为 MD 格式

MaxCompute推出外部项目功能,通过映射OSS上的Paimon catalog 目录,构建与标准Paimon文件系统层级一致的外部项目。访问权限基于用户RAMRoleOSS Bucket 的授权,支持对Paimon湖格式的元数据和数据进行读写。该方式实现 catalog级整体映射,需用户确保文件系统层级合规,由用户自主管理权限与湖格式文件存储,适用于权限可控、具备自主维护能力的流批一体场景。

适用范围

  • 只支持Paimon格式表。

  • 不支持写入Dynamic Bucket表。

  • 不支持写入Cross Partition表。

  • 数据类型映射

操作步骤

步骤一:为RAM用户授权

如果操作用户是RAM用户,请确保已绑定如下权限策略。添加权限参考为RAM用户授权

  • AliyunMaxComputeFullAccess:用来完成创建外部数据源和外部项目操作。

步骤二:创建Filesystem Catalog外部数据源

  1. 开通OSS,并创建bucket存储了Paimon数据,详情请参见控制台快速入门

  2. 登录MaxCompute控制台,在左上角选择地域。

  3. 在左侧导航栏,选择管理配置 > 外部数据源 。

  4. 外部数据源页面,单击创建外部数据源

  5. 在弹出的新增外部数据源对话框,根据界面提示配置相关参数。参数说明如下:

    参数

    是否必填

    说明

    外部数据源类型

    必填

    选择Filesystem Catalog

    外部数据源名称

    必填

    可自定义命名。命名规则如下:

    • 以字母开头,且只能包含小写字母、下划线和数字。

    • 不能超过128个字符。

    例如external_fs

    外部数据源描述

    选填

    根据需要填写。

    地域

    必填

    默认为当前地域。

    认证和鉴权

    必填

    默认为阿里云RAM角色。

    RoleARN

    必填

    RAM角色的ARN信息。此角色需要包含能够访问OSS服务的权限。

    1. 登录RAM控制台

    2. 在左侧导航栏选择身份管理 > 角色

    3. 基础信息区域,可以获取ARN信息。

    示例:acs:ram::124****:role/aliyunodpsdefaultrole

    存储类型

    必填

    • OSS

    • OSS-HDFS

    Endpoint

    必填

    自动生成,杭州地域为:oss-cn-hangzhou-internal.aliyuncs.com

    外部数据源补充属性

    选填

    特殊声明的外部数据源补充属性。指定后,使用此外部数据源的任务可以按照参数定义的行为访问源系统。

    说明

    支持的具体参数请关注后续官网文档更新说明,具体参数将随产品能力演进逐步放开。

  6. 单击确认,完成外部数据源的创建。

  7. 外部数据源页面,单击目标数据源对应的操作详情,可查看数据源详细信息。

步骤三:创建外部项目

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏,选择管理配置 > 项目管理

  3. 外部项目页签,单击新建项目

  4. 在弹出的新增项目对话框,根据界面提示文案配置项目信息,单击确认完成项目创建。

    参数

    是否必填

    说明

    项目类型

    必填

    默认为外部项目。

    地域

    必填

    默认为当前地域,此处无法修改。

    项目名称(全网唯一)

    必填

    字母开头,包含字母、数字及下划线(_),长度在3-28个字符。

    MaxCompute外部数据源类型

    选填

    选择Filesystem Catalog。

    MaxCompute外部数据源

    选填

    • 选择已有:会出现已经创建过的外部数据源。

    • 新建外部数据源:即可新建并使用新的外部数据源。

    MaxCompute外部数据源名称

    必填

    • 选择已有:在下拉列表中选择已经创建好的外部数据源名称。

    • 新建外部数据源:则会使用新建的外部数据源名称。

    Bucket 数据目录

    必填

    选择完整的OSS Bucket和至Catalog级别的文件系统目录。本示例中oss://paimon-fs/paimon-test/

    表格式

    必填

    默认为Paimon。

    计算资源付费类型

    必填

    包年包月按量付费

    默认Quota

    必填

    选择已有Quota.

    描述

    选填

    自定义项目描述。

步骤四:使用SQL访问数据源系统

重要

由于外部项目和数据源之间是映射关系,所以删除外部项目并不会删除任何数据;

但与普通外部表不同,如果在外部项目中执行DROP TABLE / DROP SCHEMA 操作,该请求会发送到对端服务,因此会真正删除对应表或数据库中的数据,请谨慎执行DROP操作。

  1. 选择连接工具登录外部项目。

  2. 列出外部项目中的schema,默认只会列出存储Paimon表的DB路径。

    -- 打开session级别支持schema语法开关。
    SET odps.namespace.schema=true;
    SHOW schemas;
    
    -- 返回结果如下。
    ID = 20250922********wbh2u7
    default
    
    
    OK
  3. 在外部项目中列出schema下的表。

    -- schema_name为外部项目中展示出来的Schema名称。
    USE SCHEMA <schema_name>; 
    SHOW tables;
  4. 在外部项目中新建schema。

    CREATE schema <schema_name>;
    
    -- 示例如下。
    CREATE schema schema_test;
  5. 使用新建的schema。

    use schema <schema_name>;
    
    -- 示例如下。
    use schema schema_test;
  6. 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        | 李四        | 
      +------------+------------+

数据类型映射

MaxCompute数据类型请参见1.0数据类型版本2.0数据类型版本

开源Paimon数据类型

MaxCompute 2.0数据类型

是否支持读写

说明

TINYINT

TINYINT

已开通

8位有符号整型。

SMALLINT

SMALLINT

已开通

16位有符号整型。

INT

INT

已开通

32位有符号整型。

BIGINT

BIGINT

已开通

64位有符号整型。

BINARY(MAX_LENGTH)

BINARY

已开通

二进制数据类型,目前长度限制为8 MB。

FLOAT

FLOAT

已开通

32位二进制浮点型。

DOUBLE

DOUBLE

已开通

64位二进制浮点型。

DECIMAL(precision,scale)

DECIMAL(precision,scale)

已开通

10进制精确数字类型。,默认为decimal(38,18)。允许自定义precisionscale值。

  • precision:表示最多可以表示多少位的数字。默认取值范围:1 <= precision <= 38

  • scale:表示小数部分的位数。默认取值范围: 0 <= scale <= 18

VARCHAR(n)

VARCHAR(n)

已开通

变长字符类型。n为长度,[1,65535]。

CHAR(n)

CHAR(n)

已开通

固定长度字符类型。n为长度,[1,255]。

VARCHAR(MAX_LENGTH)

STRING

已开通

字符串类型目前长度限制为8MB。

DATE

DATE

已开通

日期类型格式为yyyy-mm-dd

TIME、TIME(p)

不支持

未开通

Paimon数据类型TIME,不带时区的时间类型,由时分秒组成,精度可到纳秒。

TIME(p)表示小数位的精度,0-9之间,默认为0。

MaxCompute侧没有映射的类型。

TIMESTAMP、TIMESTAMP(p)

TIMESTAMP_NTZ

已开通

无时区时间戳类型,精确到纳秒。

读表需打开Native开关SET odps.sql.common.table.jni.disable.native=true;

TIMESTAMP WITH LOCAL TIME_ZONE(9)

TIMESTAMP

已开通

  • 时间戳类型,精确到纳秒格式为yyyy-mm-dd hh:mm:ss.xxxxxxxxx

  • 针对Paimon源表TIMESTAMP低精度类型,在写入时会截断处理。0~3按照3位截断,4~6按照6位截断,7~9按照9位截断。

TIMESTAMP WITH LOCAL TIME_ZONE(9)

DATETIME

未开通

时间戳类型,精确到纳秒

格式为yyyy-mm-dd hh:mm:ss.xxxxxxxxx

BOOLEAN

BOOLEAN

已开通

BOOLEAN类型。

ARRAY

ARRAY

已开通

复杂类型。

MAP

MAP

已开通

复杂类型。

ROW

STRUCT

已开通

复杂类型。

MULTISET<t>

不支持

未开通

MaxCompute侧没有映射的类型。

VARBINARY、VARBINARY(n)、BYTES

BINARY

已开通

可变长度二进制字符串的数据类型。