配置DLF Catalog后,您可以在实时计算开发控制台直接访问DLF实例中的表,无需再手动注册DLF表,提高作业开发的效率且保证数据的正确性。本文为您介绍如何创建、查看、使用及删除DLF Catalog。
背景信息
阿里云数据湖构建(Data Lake Formation,简称DLF)是阿里云官方提供的一款统一元数据管理的产品。您可以方便地借助DLF产品来管理创建的表格,这些表格的格式可以是开源格式,例如Iceberg、Hudi、Delta、Parquet、ORC或Avro等。
本文将从以下方面为您介绍如何管理DLF Catalog:
前提条件
已开通阿里云数据湖构建服务
使用限制
仅Flink计算引擎vvr-4.0.12-flink-1.13及以上版本支持配置DLF Catalog。
Flink在DLF Catalog下仅支持管理Iceberg和Hudi两种数据湖格式。
创建DLF Catalog
支持UI与SQL命令两种方式配置DLF Catalog,推荐使用UI方式配置DLF Catalog。
UI方式
进入元数据管理页面。
登录实时计算控制台。
单击目标工作空间操作列下的控制台。
单击元数据管理。
在元数据管理页面,单击创建Catalog。
单击DLF后,单击下一步。
创建DLF Catalog。
配置Catalog信息。
配置项
说明
是否必填
备注
catalogname
DLF Catalog名称。
是
请填写为自定义的英文名。
access.key.id
访问OSS服务所需的阿里云Access Key。
是
获取方法请参见获取AccessKey。
access.key.secret
访问OSS服务所需的阿里云Access Secret。
是
获取方法请参见获取AccessKey。
warehouse
DLF Catalog中表默认的OSS存放路径,OSS服务中所指定的数仓目录。
是
支持OSS和OSS-HDFS两种服务。
OSS路径格式为
oss://<bucket>/<object>
。OSS-HDFS路径格式为
oss://<bucket>.<oss-hdfs-endpoint>/<object>
。
其中:
bucket:表示您创建的OSS Bucket名称。您可以在OSS管理控制台上查看。
object:表示您存放数据的路径。您可以在OSS管理控制台上查看。
oss-hdfs-endpoint:表示OSS-HDFS服务Endpoint。您可以在OSS管理控制台Bucket的概览页面的访问端口中查看HDFS服务的Endpoint信息。
说明仅Flink计算引擎VVR 8.0.3及以上版本支持该参数配置为OSS-HDFS路径。
oss.endpoint
阿里云对象存储服务OSS的Endpoint。OSS的 endpoint 地址,例如
oss-cn-hangzhou-internal.aliyuncs.com
是
支持OSS和OSS-HDFS两种服务。
OSS服务Endpoint,详情参见访问域名和数据中心。
OSS-HDFS服务Endpoint,您可以在OSSBucket概览页面的访问端口中查看HDFS服务的Endpoint信息。
说明推荐您为oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。
如果您需要跨VPC访问OSS,则请参见如何访问跨VPC的其他服务?
dlf.endpoint
表示阿里云DLF服务的Endpoint。
是
说明推荐您为dlf.endpoint参数配置DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。
如果您需要跨VPC访问DLF,则请参见如何访问跨VPC的其他服务?。
dlf.region-id
阿里云DLF服务的地域名,DLF所在区域。
是
说明请和dlf.endpoint选择的地域保持一致。
更多配置
设置其他DLF配置,例如指定多个DLF Catalog,配置多个DLF Catalog请换行分隔。
否
例如:
dlf.catalog.id:my_catalog
。单击确定。
创建完成后,元数据区域下即可查看新建Catalog。
SQL方式
在查询脚本文本编辑区域,输入配置DLF Catalog的命令。
CREATE CATALOG <yourcatalogname> WITH ( 'type' = 'dlf', 'access.key.id' = '<YourAliyunAccessKeyId>', 'access.key.secret' = '<YourAliyunAccessKeySecret>', 'warehouse' = '<YourAliyunOSSLocation>', 'oss.endpoint' = '<YourAliyunOSSEndpoint>', 'dlf.region-id' = '<YourAliyunDLFRegionId>', 'dlf.endpoint' = '<YourAliyunDLFEndpoint>' );
参数
说明
是否必填
备注
yourcatalogname
自定义DLF Catalog名称。
是
请填写为自定义的英文名。
重要参数替换为您的Catalog名称后,需要去掉尖括号(<>),否则语法检查会报错。
type
类型。
是
固定值为dlf。
access.key.id
阿里云账号的AccessKey ID。
是
获取方法请参见获取AccessKey。
access.key.secret
阿里云账号的AccessKey Secret。
是
获取方法请参见获取AccessKey。
warehouse
DLF Catalog中表默认的OSS存放路径。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
说明请在OSS管理控制台上查看您的bucket和object名称。
oss.endpoint
阿里云对象存储服务OSS的Endpoint。
是
请详情参见访问域名和数据中心。
说明推荐您为oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。
如果您需要跨VPC访问OSS,则请参见如何访问跨VPC的其他服务?
dlf.endpoint
阿里云DLF服务的Endpoint。
是
说明推荐您为dlf.endpoint参数配置DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。
如果您需要跨VPC访问DLF,则请参见如何访问跨VPC的其他服务?。
dlf.region-id
阿里云DLF服务的地域名。
是
说明请和dlf.endpoint选择的地域保持一致。
选中创建Catalog的代码后,单击左侧代码行数上的运行。
在左侧元数据区域,查看创建的Catalog。
查看DLF Catalog
DLF Catalog创建成功后,您可以通过以下步骤查看DLF元数据。
进入元数据管理页面。
登录实时计算控制台。
单击目标工作空间操作列下的控制台。
单击元数据管理。
在Catalog列表页面,查看Catalog名称和类型。
说明如果您需要查看目标Catalog下的数据库和表,请单击查看。
使用DLF Catalog
管理DLF数据库
在查询脚本文本编辑区域,输入如下语句,选中代码后单击运行。创建或者删除完成后,你可以在SQL开发页面左侧,单击元数据进行确认。
创建数据库
CREATE DATABASE dlf.dlf_testdb;
删除数据库
DROP DATABASE dlf.dlf_testdb;
管理DLF表
创建表
通过连接器创建
SQL方式
在查询脚本文本编辑区域,输入如下语句,选中代码后单击运行。创建完成后,你可以在SQL开发页面左侧,单击元数据,就可以查看到您创建的表。
CREATE TABLE dlf.dlf_testdb.iceberg ( id BIGINT, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'iceberg' ); CREATE TABLE dlf.dlf_testdb.hudi ( id BIGINT PRIMARY KEY NOT ENFORCED, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'hudi' );
UI方式
进入元数据管理页面。
登录实时计算控制台。
单击目标工作空间操作列下的控制台。
单击元数据管理。
单击目标Catalog名称对应操作列的查看。
单击目标数据库名称对应操作列的查看。
单击创建表。
在使用内置连接器连接页签,单击连接方式,选择表类型。
单击下一步。
填写建表语句并配置相关参数信息。代码示例如下。
CREATE TABLE dlf.dlf_testdb.iceberg ( id BIGINT, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'iceberg' ); CREATE TABLE dlf.dlf_testdb.hudi ( id BIGINT PRIMARY KEY NOT ENFORCED, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'hudi' );
单击确定。
快速创建相同表结构的表(该方式仅Iceberg表支持)
在查询脚本文本编辑区域,输入如下语句,选中代码后单击运行。
CREATE TABLE iceberg_table_like LIKE iceberg_table;
删除表
DROP TABLE iceberg_table;
修改Iceberg表结构
在查询脚本文本编辑区域输入如下命令,选中代码后单击运行。
操作 | 代码示例 |
更改表属性 |
|
重命名 |
|
更改列名字 |
说明 仅实时计算引擎VVR 8.0.7及以上版本支持。 |
更改数据类型 |
更改列的类型需要符合以下规则:
说明 仅实时计算引擎VVR 8.0.7及以上版本支持。 |
写入数据
INSERT INTO dlf.dlf_testdb.iceberg VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
INSERT INTO dlf.dlf_testdb.hudi VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
读取数据
SELECT * FROM dlf.dlf_testdb.iceberg LIMIT 2;
SELECT * FROM dlf.dlf_testdb.hudi LIMIT 2;
删除DLF Catalog
删除DLF Catalog不会影响已运行的作业,但会导致使用该Catalog下表的作业,在上线或重启时报无法找到该表的错误,请您谨慎操作。
支持UI与SQL命令两种方式删除DLF Catalog,推荐使用UI方式删除DLF Catalog。
UI方式
进入元数据管理页面。
登录实时计算控制台。
单击目标工作空间操作列下的控制台。
单击元数据管理。
在Catalog列表页面,单击目标Catalog名称对应操作列的删除。
在弹出的提示页面中,单击删除。
在左侧元数据下,查看目标Catalog是否已被删除。
SQL方式
在查询脚本文本编辑区域,输入以下命令。
DROP CATALOG ${catalog_name}
其中,catalog_name为您要删除的在实时计算开发控制台上显示的DLF Catalog名称。
选中删除Catalog的命令,鼠标右键选择运行。
在左侧元数据区域,查看目标Catalog是否已删除。
相关文档
Iceberg连接器的使用方法,详情请参见Iceberg。
Hudi连接器的使用方法,详情请参见Hudi。
如果内置的Catalog无法满足您的业务需求,您可以使用自定义Catalog,详情请参见管理自定义Catalog。