管理数据目录
数据目录是数据湖构建(Data Lake Formation)或 Hive Metastore(HMS)等外部元数据服务的最上层实体,可以包含若干个数据库。在EMR Serverless Spark中,您可以通过该功能查看绑定的数据目录中的数据库和表,还可以添加已有的数据目录。该功能适用于需要实现元数据隔离的场景。
Catalog介绍
EMR Serverless Spark提供了灵活的Catalog管理机制,支持多种类型的Catalog(例如Paimon、Iceberg、StarRocks等),以满足不同场景的需求。除了数据目录方式外,还支持内置的Catalog以及自定义Catalog。本部分将详细介绍Serverless Spark中Catalog的分类、配置方法及其使用方式。
Catalog类型 | 支持数据源 | 添加方式 | 特性说明 | 使用方式 |
数据目录Catalog |
| 需在数据目录页面手动添加Catalog。 | 新增Catalog后,需要重启一次正在运行的会话,以使其生效。 |
|
自定义Catalog | Paimon、Iceberg等 | 通过编辑会话,在Spark 配置中添加相应类型的参数。 | |
添加数据目录
进入数据目录页面。
在左侧导航栏,选择EMR Serverless > Spark。
在Spark页面,单击目标工作空间名称。
在EMR Serverless Spark页面,单击左侧导航栏中的数据目录。
说明数据目录页面为您展示了创建集群时您选择的DLF数据目录下的数据库和表。
单击添加数据目录。
在添加数据目录对话框中,选择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的服务地址,格式为 其中:
|
Kerberos认证 | 如果您的外部Hive Metastore开启Kerberos认证,您需要指定keytab文件地址,以及Principal名称。
|
添加外部Metastore服务,请参见连接外部Hive Metastore Service。
StarRocks数据目录
StarRocks是一款高性能的分析型数据库。通过添加StarRocks数据目录,您可以在EMR Serverless Spark中注册StarRocks实例的元数据信息,添加成功后即可在任务和会话中直接读写StarRocks中的数据,无需在每个任务中单独配置连接参数。使用该方式,需确保Serverless Spark与StarRocks实例所在VPC已连通。
添加成功后,您可以在SQL中通过三段式语法直接读写StarRocks中的数据,例如:SELECT * FROM <catalogName>.<dbName>.<tableName>;
使用StarRocks数据目录,仅支持使用以下引擎版本:esr-4.8.0及以上版本、esr-5.2.0及以上版本。
参数 | 说明 |
数据目录名称 | StarRocks数据目录的名称,用于在SQL中引用该Catalog。同一工作空间内,数据目录名称不允许重复。 |
网络连接 | 当前环境与StarRocks实例所在VPC的网络连接配置。在下拉列表中选择已创建的网络连接名称。具体操作,请参见步骤一:新增网络连接。 说明
|
Endpoint | StarRocks的FE访问地址, |
查询端口 | StarRocks的FE查询端口,通常是9030。 |
用户名 | 访问StarRocks的用户名。该用户名将用于Spark任务读写StarRocks数据时的身份认证。 |
密码 | 上述用户对应的密码。 |
读写StarRocks数据的详细操作,请参见读写StarRocks。
Hologres数据目录
Hologres是一款实时数仓产品,支持海量数据的实时写入和实时分析。通过添加Hologres数据目录,您可以在EMR Serverless Spark中注册Hologres实例的元数据信息,添加成功后即可在任务和会话中直接读写Hologres中的数据,无需在每个任务中单独配置连接参数。使用该方式,需确保Serverless Spark与Hologres实例所在VPC已连通。
添加成功后,您可以在SQL中通过三段式语法直接读写Hologres中的数据,每个 Catalog 严格绑定一个 Hologres Database,且不可跨库访问(即无法通过同一 Catalog 访问多个 Hologres DB)。Catalog 内部的逻辑组织与 Hologres 保持一致:
Spark 概念 | 对应 Hologres 概念 | 说明 |
Catalog | Database | 如 |
Namespace | Schema | 如 |
Table | Table | 必须显式指定 |
使用Hologres数据目录,仅支持使用以下引擎版本:esr-4.9.0及以上版本。
参数 | 说明 |
数据目录名称 | Hologres数据目录的名称,用于在SQL中引用该Catalog。同一工作空间内,数据目录名称不允许重复。 |
网络连接 | 当前环境与Hologres实例所在VPC的网络连接配置。在下拉列表中选择已创建的网络连接名称。具体操作,请参见步骤一:新增网络连接。 说明
|
Endpoint | Hologres实例访问地址,可在Hologres控制台的实例详情页获取。 |
查询端口 | Hologres实例的端口号,通常是80。 |
用户名 | 访问Hologres的用户名。该用户名将用于Spark任务读写Hologres数据时的身份认证。
|
密码 | 上述用户对应的密码。
|
读写Hologres数据的详细操作,请参见读写Hologres。
查看数据库和表
在数据目录页面,单击数据目录ID。
展示当前数据目录下的所有数据库信息。
单击操作列的表。
展示当前数据库下的所有数据表信息。
单击操作列的字段。
展示当前数据表的表信息和列信息。