更新时间:2025-07-23 GMT+08:00
分享

配置LakeFormation对接DLI集群

用户可通过管理控制台或SQL语句创建数据库和表:

使用SQL语句创建数据库和表的操作方法请参见创建数据库创建OBS表创建DLI表等。

本章节介绍在管理控制台创建数据目录、数据库和表的操作步骤。

注意事项

创建数据目录、数据库和表时,默认具备权限控制,需要对其他用户授权后,其他用户才可查看该用户新建的数据目录、数据库和表。

创建数据目录

DLI管理控制台默认提供DLI数据目录,您还可以按照本节操作在DLI管理控制台创建到LakeFormation Catalog的连接,创建完成后即可在DLI管理控制台的数据目录下显示LakeFormation Catalog。

  1. 在DLI创建到LakeFormation Catalog的连接前,请先确保在LakeFormation管理控制台已创建数据目录
    1. 登录LakeFormation管理控制台。
    2. 选择“元数据 > Catalog”。
    3. 单击“创建Catalog”。

      按需配置Catalog实例参数。

      更多参数配置及说明,请参考创建Catalog

    4. 创建完成后,即可在“Catalog”页面查看Catalog相关信息。

      DLI仅支持对接LakeFormation默认实例,请在LakeFormation设置实例为默认实例。

  2. 在DLI管理控制台创建数据目录

    在DLI管理控制台需要创建到LakeFormation Catalog的连接,才可以在DLI提交作业时访问LakeFormation实例中存储的Catalog。

    DLI管理控制台有三个页面支持创建数据目录连接,创建后的数据目录连接均可在SQL编辑器的数据目录页签下可见。

    • 在SQL编辑器的“数据目录”页签单击,即可创建到LakeFormation Catalog的连接。
    • Flink作业的编辑页面,在“数据目录名称”后单击,即可创建到LakeFormation Catalog的连接。(仅Flink 1.17及以上版本支持配置数据目录。)
    • Spark作业的编辑页面,在“数据目录名称”后单击,即可创建到LakeFormation Catalog的连接。(仅Spark 3.3.1版本支持配置数据目录。)

    LakeFormation中每一个数据目录只能创建一个映射,不能创建多个。

    例如用户在DLI创建了映射名catalogMapping1对应LakeFormation数据目录catalogA。创建成功后,在同一个项目空间下,不能再创建到catalogA的映射。

    以在SQL编辑器的“数据目录”创建数据目录连接为例:
    1. 登录DLI管理控制台。
    2. 选择“SQL编辑器 ”。
    3. 在SQL编辑器页面,选择“数据目录”。
    4. 单击创建数据目录。
    5. 配置数据目录相关信息。
      表1 数据目录配置信息

      参数名称

      是否必填

      说明

      外部数据目录名称

      LakeFormation默认实例下的Catalog名称。

      类型

      当前只支持LakeFormation。

      该选项已固定,无需填写。

      数据目录映射名称

      在DLI使用的Catalog映射名,用户在执行SQL语句的时候需要指定Catalog映射,以此来标识访问的外部的元数据。建议与外部数据目录名称保持一致。

      当前仅支持连接LakeFormation默认实例的数据目录。

      描述

      自定义数据目录的描述信息。

    6. 单击“确定”创建数据目录。
    7. 创建完成后,数据目录列表会显示数据目录的连接状态:
      • 闪烁的代表创建中
      • 代表已创建完成,数据目录连接已激活
      • 创建失败。建议删除当前数据连接后重新添加数据目录。

创建数据库

  1. 创建数据库的入口有两个,分别在“数据管理”“SQL编辑器”页面。

    • “数据管理”页面创建数据库。
      1. 在管理控制台左侧,单击“数据管理”>“库表管理”
      2. 在库表管理页面右上角,单击“创建数据库”可创建数据库。
    • “SQL编辑器”页面创建数据库。
      1. 在管理控制台左侧,单击“SQL编辑器”
      2. 在左侧导航栏单击“数据库”页签右侧可创建数据库。

  2. “创建数据库”页面,参见表2输入数据库名称和描述信息。

    图1 库表管理-创建数据库
    表2 参数说明

    参数名称

    描述

    数据库名称

    • 数据库名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。
    • 数据库名称大小写不敏感且不能为空。
    • 输入长度不能超过128个字符。
    说明:

    “default”为内置数据库,不能创建名为“default”的数据库。

    企业项目

    如果所建队列属于企业项目,可选择对应的企业项目。

    企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。

    关于如何设置企业项目请参考《企业管理用户指南》。

    说明:

    只有开通了企业管理服务的用户才显示该参数。

    描述

    该数据库的描述。

    标签

    使用标签标识云资源。包括标签键和标签值。如果您需要使用同一标签标识多种云资源,即所有服务均可在标签输入框下拉选择同一标签,建议在标签管理服务(TMS)中创建预定义标签。

    如您的组织已经设定DLI的相关标签策略,则需按照标签策略规则为资源添加标签。标签如果不符合标签策略的规则,则可能会导致资源创建失败,请联系组织管理员了解标签策略详情。

    具体请参考《标签管理服务用户指南》。

    说明:
    • 最多支持20个标签。
    • 一个“键”只能添加一个“值”。
    • 每个资源中的键名不能重复。
    • 标签键:在输入框中输入标签键名称。
      说明:

      标签的键的最大长度为128个字符,标签的键可以包含任意语种字母、数字、空格和_ . : +-@ ,但首尾不能含有空格,不能以_sys_开头。

    • 标签值:在输入框中输入标签值。
      说明:

      标签值的最大长度为255个字符,标签的值可以包含任意语种字母、数字、空格和_ . : +-@ 。

  3. 单击“确定”,完成数据库创建。

    数据库创建成功后,您可以在“库表管理”页面或者“SQL编辑器”页面查看和选择使用对应的数据库。

创建表

创建表前,请确保已创建数据库。

  1. 创建表的入口有两个,分别在“数据管理”“SQL编辑器”页面。

    此处创建表的方式不支持创建View,HBase(CloudTable/MRS)表、OpenTSDB(CloudTable/MRS)表、DWS表、RDS表和CSS表等跨源连接表。可通过SQL方式创建View和跨源连接表,具体请参考《数据湖探索SQL语法参考》。

    • “数据管理”页面创建表。
      1. 在管理控制台左侧,单击“数据管理”>“库表管理”
      2. 在库表管理页面中,选择需要建表的数据库。在其“操作”栏中,单击“更多”>“创建表”,可创建当前数据库下的表。
    • “SQL编辑器”页面创建表。
      1. 在管理控制台左侧,单击“SQL编辑器”
      2. “SQL编辑器”页面的左侧导航栏单击“数据库”页签。有两种方式创建表。
        • 鼠标左键单击数据库名,进入“表”区域,单击右侧,创建当前数据库下的表。
        • 鼠标左键单击对应数据库右侧的,在列表菜单中选择“创建表”,创建当前数据库下的表。

  2. “创建表”页面,填写参数。

    • 当数据位置为DLI时,请参见表3填写相关参数;
      图2 创建表-DLI
    • 当数据位置为OBS时,请参见表3表4填写相关参数。

      当OBS的目录下有同名文件夹和文件时,创建OBS表指向该路径会优先指向文件而非文件夹。

      图3 创建表-OBS
      表3 通用参数说明

      参数名称

      描述

      示例

      表名称

      • 表名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。
      • 表名称大小写不敏感且不能为空。
      • 表名称支持包含“$”符号。例如:$test。
      • 输入长度不能超过128个字符。

      table01

      数据位置

      数据存储位置,当前支持DLI和OBS。

      DLI

      描述

      该表的描述。

      -

      列类型

      选择为“普通列”或“分区列”。

      普通列

      列名称

      表的列名。列名应至少包含一个字母,并允许下划线(_),但不支持纯数字。

      可选择“普通列”或“分区列”。“分区列”是分区表专用的,对用户数据进行分区,可提高查询效率。

      说明:

      列名不区分大小写,不能相同。

      name

      数据类型

      “列名”对应,表示该列的数据类型。

      • 字符串(string):字符串类型。
      • 有符号整数(int):存储空间为4字节。
      • 日期类型(date):所表示日期的范围为0000-01-01 to 9999-12-31。
      • 双精度浮点型(double):存储空间为8字节。
      • 布尔类型(boolean):存储空间为1字节。
      • 固定有效位数和小数位数的数据类型(decimal):有效位数为1~38之间的正整数,包含1和38;小数位数为小于10的整数。
      • 有符号整数(smallint/short):存储空间为2字节。
      • 有符号整数(bigint/long):存储空间为8字节。
      • 时间戳(timestamp):表示日期和时间,可达到小数点后6位。
      • 单精度浮点型(float):存储空间为4字节。
      • 有符号整数(tinyint):存储空间为1字节。仅OBS表支持。

      string

      列描述

      该列的描述。

      -

      操作

      • 增加列
      • 删除列
        说明:

        当列数较多时,建议您使用SQL语句创建表,或直接从本地Excel导入列信息。

      -

      表4 数据位置为OBS的参数说明

      参数名称

      描述

      示例

      数据格式

      支持以下数据格式。

      • Parquet:DLI支持读取不压缩、snappy压缩、gzip压缩的parquet数据。
      • CSV:DLI支持读取不压缩、gzip压缩的csv数据。
      • ORC:DLI支持读取不压缩、snappy压缩的orc数据。
      • JSON:DLI支持读取不压缩、gzip压缩的json数据。
      • Avro:DLI支持读取不压缩的avro数据。

      CSV

      存储路径

      输入或选择OBS路径。路径同时支持文件和文件夹:

      • 创建OBS表时指定的路径必须是文件夹,如果建表路径是文件,后续将不支持导入数据。
      • 当OBS的目录下有同名文件夹和文件时,数据导入指向该路径会优先指向文件而非文件夹。

      obs://obs1/sampledata.csv

      表头:无/有

      “数据格式”“CSV”时,该参数有效。设置导入数据源是否含表头。

      选中“高级选项”,勾选“表头:无”前的方框,“表头:无”显示为“表头:有”,表示有表头;取消勾选即为“表头:无”,表示无表头。

      -

      自定义分隔符

      “数据格式”“CSV”,并在自定义分隔符前的方框打勾时,该参数有效。

      选中高级选项,支持选择如下分隔符。

      • 逗号(,)
      • 竖线(|)
      • 制表符(\t)
      • 其他:输入自定义分隔符

      逗号(,)

      自定义引用字符

      “数据格式”“CSV”,并在自定义引用字符前的方框打勾时,该参数有效。

      选中高级选项,支持选择如下引用字符。

      • 单引号(')
      • 双引号(")
      • 其他:输入自定义引用字符

      单引号(')

      自定义转义字符

      “数据格式”“CSV”,并在自定义转义字符前的方框打勾时,该参数有效。

      选中高级选项,支持选择如下转义字符。

      • 反斜杠(\)
      • 其他:输入自定义转义字符

      反斜杠(\)

      日期格式

      “数据格式”“CSV”“JSON”时此参数有效。

      选中“高级选项”,该参数表示表中日期的格式,默认格式为“yyyy-MM-dd”。日期格式字符定义详见加载数据中的“表3 日期及时间模式字符定义”。

      2000-01-01

      时间戳格式

      “数据格式”“CSV”“JSON”时此参数有效。

      选中“高级选项”,该参数表示表中时间戳的格式,默认格式为“yyyy-MM-dd HH:mm:ss”。时间戳格式字符定义详见加载数据中的“表3 日期及时间模式字符定义”。

      2000-01-01 09:00:00

  3. 单击“确定”,完成表创建。

    表创建成功后,您可以在“表管理”页面或者“SQL编辑器”页面查看和选择使用对应的表。

相关操作

表创建完成后,您可以选择向该表导入其他OBS桶中的数据。

导入数据请参考将OBS数据导入至DLI的表

相关文档