阿里云 DLF
更新时间:2025-08-21
阿里云 Data Lake Formation(DLF) 是阿里云上的统一元数据管理服务。兼容 Hive Metastore 协议。
因此我们也可以和访问 Hive Metastore 一样,连接并访问 DLF。
连接 DLF
创建 DLF Catalog
SQL
1CREATE CATALOG dlf PROPERTIES (
2 "type"="hms",
3 "hive.metastore.type" = "dlf",
4 "dlf.proxy.mode" = "DLF_ONLY",
5 "dlf.endpoint" = "datalake-vpc.cn-beijing.aliyuncs.com",
6 "dlf.region" = "cn-beijing",
7 "dlf.uid" = "uid",
8 "dlf.catalog.id" = "catalog_id", //可选
9 "dlf.access_key" = "ak",
10 "dlf.secret_key" = "sk"
11);
其中 type 固定为 hms。如果需要公网访问阿里云对象存储的数据,可以设置 "dlf.access.public"="true"
dlf.endpoint:DLF Endpointdlf.region:DLF Regiondlf.uid:阿里云账号。即阿里云控制台右上角个人信息的“云账号 ID”。dlf.catalog.id(可选):Catalog Id。用于指定数据目录,如果不填,使用默认的 Catalog ID。dlf.access_key:AccessKey。dlf.secret_key:SecretKey。
其他配置项为固定值,无需改动。
之后,可以像正常的 Hive MetaStore 一样,访问 DLF 下的元数据。
同 Hive Catalog 一样,支持访问 DLF 中的 Hive/Iceberg/Hudi 的元数据信息。
使用开启了 HDFS 服务的 OSS 存储数据
- 确认 OSS 开启了 HDFS 服务。
- 下载 SDK。如果集群上已有 SDK 目录,忽略这一步。
- 解压下载后的 jindosdk.tar.gz 或者在集群上找到 Jindo SDK 的目录,将其 lib 目录下的
jindo-core.jar、jindo-sdk.jar放到${DORIS_HOME}/fe/lib和${DORIS_HOME}/be/lib/java_extensions/preload-extensions目录下。 -
创建 DLF Catalog,并配置
oss.hdfs.enabled为true:SQL1CREATE CATALOG dlf_oss_hdfs PROPERTIES ( 2 "type"="hms", 3 "hive.metastore.type" = "dlf", 4 "dlf.proxy.mode" = "DLF_ONLY", 5 "dlf.endpoint" = "datalake-vpc.cn-beijing.aliyuncs.com", 6 "dlf.region" = "cn-beijing", 7 "dlf.uid" = "uid", 8 "dlf.catalog.id" = "catalog_id", //可选 9 "dlf.access_key" = "ak", 10 "dlf.secret_key" = "sk", 11 "oss.hdfs.enabled" = "true" 12); - 当 Jindo SDK 版本与 EMR 集群上所用的版本不一致时,会出现
Plugin not found的问题,需更换到对应版本。
访问 DLF Iceberg 表
SQL
1CREATE CATALOG dlf_iceberg PROPERTIES (
2 "type"="iceberg",
3 "iceberg.catalog.type" = "dlf",
4 "dlf.proxy.mode" = "DLF_ONLY",
5 "dlf.endpoint" = "datalake-vpc.cn-beijing.aliyuncs.com",
6 "dlf.region" = "cn-beijing",
7 "dlf.uid" = "uid",
8 "dlf.catalog.id" = "catalog_id", //可选
9 "dlf.access_key" = "ak",
10 "dlf.secret_key" = "sk"
11);
列类型映射
和 Hive Catalog 一致,可参阅 Hive Catalog 中 列类型映射 一节。
