管理数据目录

更新时间:
复制 MD 格式

数据目录是数据湖构建(Data Lake Formation)或 Hive Metastore(HMS)等外部元数据服务的最上层实体,可以包含若干个数据库。在EMR Serverless Spark中,您可以通过该功能查看绑定的数据目录中的数据库和表,还可以添加已有的数据目录。该功能适用于需要实现元数据隔离的场景。

Catalog介绍

EMR Serverless Spark提供了灵活的Catalog管理机制,支持多种类型的Catalog(例如Paimon、Iceberg、StarRocks等),以满足不同场景的需求。除了数据目录方式外,还支持内置的Catalog以及自定义Catalog。本部分将详细介绍Serverless SparkCatalog的分类、配置方法及其使用方式。

Catalog类型

支持数据源

添加方式

特性说明

使用方式

数据目录Catalog

需在数据目录页面手动添加Catalog。

新增Catalog后,需要重启一次正在运行的会话,以使其生效。

  • 数据开发页面的SQL编辑器中,选择目标Catalog。

  • 直接在SQL编辑器中USE <catalogName>;

  • 直接在SQL编辑器中SELECT * FROM <catalogName>.db.tbl;

自定义Catalog

Paimon、Iceberg

通过编辑会话,在Spark 配置中添加相应类型的参数。

需自行配置参数,支持扩展多种数据源。详情请参见使用Iceberg使用Paimon

-- 切换到自定义Catalog
USE <catalogName>;

-- 或者直接引用表
SELECT * FROM <catalogName>.db.tbl;

添加数据目录

  1. 进入数据目录页面。

    1. 登录E-MapReduce控制台

    2. 在左侧导航栏,选择EMR Serverless > Spark

    3. Spark页面,单击目标工作空间名称。

    4. EMR Serverless Spark页面,单击左侧导航栏中的数据目录

      说明

      数据目录页面为您展示了创建集群时您选择的DLF数据目录下的数据库和表。

  2. 单击添加数据目录

  3. 添加数据目录对话框中,选择Catalog类型并配置相应参数,单击添加。支持以下Catalog类型。

DLF数据目录

DLF 数据目录是一种元数据管理服务,用于管理和查询存储在数据湖中的元数据。通过选择已有的DLF数据目录或创建新的数据目录,您可以快速接入数据湖中的元数据。

如果您想创建新的DLF数据目录,可以单击创建数据目录,跳转至数据湖构建控制台创建,详情请参见元数据管理

说明

使用DLF数据目录时,仅支持使用以下引擎版本:esr-4.3.0及以上版本、esr-3.3.0及以上版本、esr-2.7.0及以上版本。

Hive Metastore(HMS)数据目录

外部 Hive Metastore是一种独立的元数据服务,通常用于管理Hive表的元数据。通过配置该服务,您可以将外部Hive Metastore中的元数据集成到当前环境中。

使用该方式,需确保Serverless Spark与该服务所在VPC已经连通。

参数

说明

网络连接

当前环境与外部Hive Metastore所在VPC的网络连接配置。

在下拉列表中选择已创建的网络连接名称,具体请参见步骤一:新增网络连接

说明
  • 在添加数据目录时,所有数据目录必须统一使用同一网络连接(以第一个添加的数据目录为准)。

  • 该网络连接会作为默认网络,自动加载到当前工作空间后续拉起的所有计算资源,并用于该数据目录的连通性测试。

  • 如需使用其他网络连接访问某个数据目录,请在提交任务/创建会话时手动指定对应的网络连接(手动指定的网络连接优先级更高)。

Metastore 服务地址

外部Hive Metastore的服务地址,格式为thrift://<metastore-host>:<port>

其中:

  • <metastore-host>:Hive Metastore服务的主机名或IP地址。

  • <port>:Hive Metastore服务的端口号,默认为 9083

Kerberos认证

如果您的外部Hive Metastore开启Kerberos认证,您需要指定keytab文件地址,以及Principal名称。

  • Kerberos keytab 文件地址:Kerberos keytab文件路径。

  • Kerberos principal:keytab文件中包含的Principal的名称,用于与Kerberos服务进行身份验证。

    说明

    您可以使用klist -kt <keytab文件>命令查看目标keytab文件中Principal的名称。

添加外部Metastore服务,请参见连接外部Hive Metastore Service

StarRocks数据目录

StarRocks是一款高性能的分析型数据库。通过添加StarRocks数据目录,您可以在EMR Serverless Spark中注册StarRocks实例的元数据信息,添加成功后即可在任务和会话中直接读写StarRocks中的数据,无需在每个任务中单独配置连接参数。使用该方式,需确保Serverless SparkStarRocks实例所在VPC已连通。

添加成功后,您可以在SQL中通过三段式语法直接读写StarRocks中的数据,例如:SELECT * FROM <catalogName>.<dbName>.<tableName>;

说明

使用StarRocks数据目录,仅支持使用以下引擎版本:esr-4.8.0及以上版本、esr-5.2.0及以上版本。

参数

说明

数据目录名称

StarRocks数据目录的名称,用于在SQL中引用该Catalog。同一工作空间内,数据目录名称不允许重复。

网络连接

当前环境与StarRocks实例所在VPC的网络连接配置。在下拉列表中选择已创建的网络连接名称。具体操作,请参见步骤一:新增网络连接

说明
  • 在添加数据目录时,所有数据目录必须统一使用同一网络连接(以第一个添加的数据目录为准)。

  • 该网络连接会作为默认网络,自动加载到当前工作空间后续拉起的所有计算资源,并用于该数据目录的连通性测试。

  • 如需使用其他网络连接访问某个数据目录,请在提交任务/创建会话时手动指定对应的网络连接(手动指定的网络连接优先级更高)。

Endpoint

StarRocksFE访问地址,fe--internal.starrocks.aliyuncs.com

查询端口

StarRocksFE查询端口,通常是9030。

用户名

访问StarRocks的用户名。该用户名将用于Spark任务读写StarRocks数据时的身份认证。

密码

上述用户对应的密码。

读写StarRocks数据的详细操作,请参见读写StarRocks

Hologres数据目录

Hologres是一款实时数仓产品,支持海量数据的实时写入和实时分析。通过添加Hologres数据目录,您可以在EMR Serverless Spark中注册Hologres实例的元数据信息,添加成功后即可在任务和会话中直接读写Hologres中的数据,无需在每个任务中单独配置连接参数。使用该方式,需确保Serverless SparkHologres实例所在VPC已连通。

添加成功后,您可以在SQL中通过三段式语法直接读写Hologres中的数据,每个 Catalog 严格绑定一个 Hologres Database,且不可跨库访问(即无法通过同一 Catalog 访问多个 Hologres DB)。Catalog 内部的逻辑组织与 Hologres 保持一致:

Spark 概念

对应 Hologres 概念

说明

Catalog

Database

hologres_external_test_db → 映射 Hologres 中的 test_db 数据库。

Namespace

Schema

publictest_schema;默认为 public,可通过 USE 切换当前默认 Namespace。

Table

Table

必须显式指定 namespace.table_name(如 public.test),或先 USE namespace 后直接引用表名。

说明

使用Hologres数据目录,仅支持使用以下引擎版本:esr-4.9.0及以上版本。

参数

说明

数据目录名称

Hologres数据目录的名称,用于在SQL中引用该Catalog。同一工作空间内,数据目录名称不允许重复。

网络连接

当前环境与Hologres实例所在VPC的网络连接配置。在下拉列表中选择已创建的网络连接名称。具体操作,请参见步骤一:新增网络连接

说明
  • 在添加数据目录时,所有数据目录必须统一使用同一网络连接(以第一个添加的数据目录为准)。

  • 该网络连接会作为默认网络,自动加载到当前工作空间后续拉起的所有计算资源,并用于该数据目录的连通性测试。

  • 如需使用其他网络连接访问某个数据目录,请在提交任务/创建会话时手动指定对应的网络连接(手动指定的网络连接优先级更高)。

Endpoint

Hologres实例访问地址,可在Hologres控制台的实例详情页获取。

查询端口

Hologres实例的端口号,通常是80。

用户名

访问Hologres的用户名。该用户名将用于Spark任务读写Hologres数据时的身份认证。

  • 自定义账号的用户名,格式为BASIC$<user_name>

  • 阿里云账号或RAM用户的AccessKey ID。

密码

上述用户对应的密码。

  • 自定义账号的密码。

  • 阿里云账号或RAM用户的AccessKey Secret。

读写Hologres数据的详细操作,请参见读写Hologres

查看数据库和表

  1. 数据目录页面,单击数据目录ID。

    展示当前数据目录下的所有数据库信息。

  2. 单击操作列的

    展示当前数据库下的所有数据表信息。

  3. 单击操作列的字段

    展示当前数据表的表信息和列信息。