跳到主要内容
跳到主要内容

阿里云 DLF

阿里云 DLF

阿里云 Data Lake Formation(DLF) 是阿里云上的统一元数据管理服务。兼容 Hive Metastore 协议。

什么是 Data Lake Formation

因此我们也可以和访问 Hive Metastore 一样,连接并访问 DLF。

连接 DLF

创建DLF Catalog

CREATE CATALOG dlf PROPERTIES (
"type"="hms",
"hive.metastore.type" = "dlf",
"dlf.proxy.mode" = "DLF_ONLY",
"dlf.endpoint" = "datalake-vpc.cn-beijing.aliyuncs.com",
"dlf.region" = "cn-beijing",
"dlf.uid" = "uid",
"dlf.access_key" = "ak",
"dlf.secret_key" = "sk"
);

其中 type 固定为 hms。 如果需要公网访问阿里云对象存储的数据,可以设置 "dlf.access.public"="true"

其他配置项为固定值,无需改动。

之后,可以像正常的 Hive MetaStore 一样,访问 DLF 下的元数据。

同 Hive Catalog 一样,支持访问 DLF 中的 Hive/Iceberg/Hudi 的元数据信息。

使用开启了HDFS服务的OSS存储数据

  1. 确认OSS开启了HDFS服务。开通并授权访问OSS-HDFS服务

  2. 下载SDK。JindoData SDK下载。如果集群上已有SDK目录,忽略这一步。

  3. 解压下载后的jindosdk.tar.gz或者在集群上找到Jindo SDK的目录,将其lib目录下的jindo-core.jar、jindo-sdk.jar放到${DORIS_HOME}/fe/lib${DORIS_HOME}/be/lib/java_extensions/preload-extensions目录下。

  4. 创建DLF Catalog,并配置oss.hdfs.enabledtrue

    CREATE CATALOG dlf_oss_hdfs PROPERTIES (
    "type"="hms",
    "hive.metastore.type" = "dlf",
    "dlf.proxy.mode" = "DLF_ONLY",
    "dlf.endpoint" = "datalake-vpc.cn-beijing.aliyuncs.com",
    "dlf.region" = "cn-beijing",
    "dlf.uid" = "uid",
    "dlf.access_key" = "ak",
    "dlf.secret_key" = "sk",
    "oss.hdfs.enabled" = "true"
    );
  5. 当Jindo SDK版本与EMR集群上所用的版本不一致时,会出现Plugin not found的问题,需更换到对应版本。

访问DLF Iceberg表

CREATE CATALOG dlf_iceberg PROPERTIES (
"type"="iceberg",
"iceberg.catalog.type" = "dlf",
"dlf.proxy.mode" = "DLF_ONLY",
"dlf.endpoint" = "datalake-vpc.cn-beijing.aliyuncs.com",
"dlf.region" = "cn-beijing",
"dlf.uid" = "uid",
"dlf.access_key" = "ak",
"dlf.secret_key" = "sk"
);

列类型映射

和 Hive Catalog 一致,可参阅 Hive Catalog列类型映射 一节。