更新时间:2025-08-25 GMT+08:00

访问第三方引擎创建的Iceberg表

对于Spark产生的Iceberg表,DataArtsFabric SQL通过外表方式访问OBS上的Iceberg数据。

  1. 获得对应OBS路径的访问权限。

    登录华为云LakeFormation控制台,左侧选择“数据权限 > 数据授权”,单击“授权”,将文件所在路径的READ/WRITE授权给当前IAM用户。

  2. 创建EXTERNAL TABLE。

    1
    CREATE EXTERNAL TABLE table_name [column_name type_name,...] location 'fullLocation' store as iceberg;
    

    其中fullLocation是obs上Iceberg表所在路径的完整路径,如果指定列名与列类型,则需要列名与列类型与文件层面的元数据相同,如果不指定,则使用文件层面Iceberg元数据列名与列类型建表,ICEBERG文件层面数据类型与DataArtsFabric数据类型对应关系与需要指定的建表类型如下表所示。

    表1 DataArtsFabric数据类型与ICEBERG数据类型匹配关系

    类型名称

    ICEBERG对应数据类型

    DataArtsFabric对应建表类型

    2字节整数

    INTEGER

    INTEGER

    4字节整数

    INTEGER

    INTEGER

    8字节整数

    LONG

    BIGINT

    单精度浮点数

    FLOAT

    FLOAT4

    双精度浮点数

    DOUBLE

    FLOAT8

    科学数据类型

    DECIMAL

    DECIMAL[p,s]

    日期类型

    DATE

    DATE

    时间类型

    TIMESTAMP

    TIMESTAMP

    BOOLEAN类型

    BOOLEAN

    BOOLEAN

    Char类型

    STRING

    TEXT

    VARCHAR类型

    STRING

    TEXT

    字符串(文本大对象)

    STRING

    TEXT