本文档介绍了如何为 Managed Service for Apache Spark Hive 作业启用和使用数据沿袭。
在创建集群时,您可以使用初始化操作为 Managed Service for Apache Spark Hive 作业启用数据沿袭。
在集群上启用 Hive 数据沿袭后,您提交到集群的 Hive 作业会捕获数据沿袭事件并将其发布到 Knowledge Catalog。
直观呈现沿袭信息
数据沿袭图显示了项目资源与创建这些资源的进程之间的关系。您可以使用 Google Cloud 控制台中的 Knowledge Catalog、BigQuery Studio 和 Vertex AI 访问沿袭图。
价格
在预览版期间,Managed Service for Apache Spark Hive 数据沿袭可免费提供。标准 Managed Service for Apache Spark 定价适用。
准备工作
在 Google Cloud 控制台中的项目选择器页面上,选择包含您要跟踪其沿袭的 Managed Service for Apache Spark 集群的项目。
启用 Data Lineage API 和 Dataplex API。
所需的角色
如需获得在 Managed Service for Apache Spark 中使用数据沿袭所需的权限,请让您的管理员为您授予 Managed Service for Apache Spark 集群虚拟机服务账号的以下 IAM 角色:
-
在 Knowledge Catalog 中查看数据沿袭或使用 Data Lineage API:Data Lineage Viewer (
roles/datalineage.viewer) -
使用 API 手动生成数据沿袭:Data Lineage Events Producer (
roles/datalineage.producer) -
使用 API 修改数据沿袭:Data Lineage Editor (
roles/datalineage.editor) -
对数据沿袭执行所有操作:Data Lineage Administrator (
roles/datalineage.admin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
启用 Hive 数据沿袭
如需在集群上启用 Hive 数据沿袭,请在创建 Managed Service for Apache Spark 集群时指定 hive-lineage.sh
初始化操作。此初始化操作存储在 Cloud Storage 的区域级存储桶中。
gcloud CLI 集群创建示例:
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--image-version IMAGE_VERSION \
--initialization-actions gs://goog-dataproc-initialization-actions-REGION/hive-lineage/hive-lineage.sh替换以下内容:
- CLUSTER_NAME:集群的名称。
- PROJECT_ID:您的 Google Cloud 项目 ID。 项目 ID 列在 Google Cloud 控制台信息中心的项目信息部分中。
- REGION:要将集群放置在其中的 Compute Engine 区域。
- IMAGE_VERSION:集群的预期映像版本。
--initialization-actions:指定位于 Cloud Storage 区域位置的安装操作,以启用 Hive 数据沿袭。- (可选)添加 Hive-BigQuery 连接器初始化操作。如果您要将 BigQuery 表与 Hive 工作负载集成,则必须在集群上安装 Hive-BigQuery 连接器。请参阅将 Hive 数据沿袭与 BigQuery 结合使用示例,该示例运行连接器初始化操作,以在集群上安装 Hive-BigQuery 连接器。
提交 Hive 作业
向已创建的 Managed Service for Apache Spark 集群提交 Hive 作业且启用了 Hive 数据沿袭后,Managed Service for Apache Spark 会捕获数据沿袭信息并将其报告给 Knowledge Catalog。
gcloud CLI Hive 作业提交示例:
gcloud dataproc jobs submit hive \
--cluster=CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--properties=hive.openlineage.namespace=CUSTOM_NAMESPACE \
--execute HIVE_QUERY替换以下内容:
- CLUSTER_NAME:集群的名称。
- PROJECT_ID:您的 Google Cloud 项目 ID。 项目 ID 列在 Google Cloud 控制台信息中心的项目信息部分中。
- REGION:集群所在的 Compute Engine 区域。
- CUSTOM_NAMESPACE:可选自定义 Hive 命名空间,您可以指定用来标识 Hive 作业。
- HIVE_QUERY:要提交给集群的 Hive 查询。
您无需指定查询,而是可以将
--execute HIVE_QUERY标志替换为--file SQL_FILE标志来指定包含查询的文件的位置。
在 Knowledge Catalog 中查看沿袭
沿袭图显示了项目资源与创建这些资源的进程之间的关系。您可以在 Google Cloud 控制台中查看数据沿袭信息,也可以从 Data Lineage API 中以 JSON 数据的形式检索该信息。
将 Hive 数据沿袭与 BigQuery 结合使用示例
本部分中的示例包含以下步骤:
- 创建一个启用了 Hive 数据沿袭且在集群上安装了 Hive-BigQuery 连接器的 Managed Service for Apache Spark 集群。
- 在集群上运行 Hive 查询,以在 Hive 表之间复制数据。
- 在 BigQuery Studio 中查看生成的数据沿袭图。
创建 Managed Service for Apache Spark 集群
在本地终端窗口或 Cloud Shell 中运行以下命令,以创建 Managed Service for Apache Spark 集群。
gcloud dataproc clusters create CLUSTER_NAME \ --project PROJECT_ID \ --region REGION \ --image-version IMAGE_VERSION \ --initialization-actions gs://goog-dataproc-initialization-actions-REGION/connectors/connectors.sh, gs://goog-dataproc-initialization-actions-REGION/hive-lineage/hive-lineage.sh \ --metadata hive-bigquery-connector-version=HIVE_BQ_VERSION
注意:
- CLUSTER_NAME:集群的名称。
- PROJECT_ID:您的 Google Cloud 项目 ID。 项目 ID 列在 Google Cloud 控制台信息中心的项目信息部分中。
- REGION:要将集群放置在其中的 Compute Engine 区域。
- IMAGE_VERSION:集群的预期映像版本。
--initialization-actions:这些安装操作位于 Cloud Storage 中,可安装 Hive-BigQuery 连接器并启用 Hive 数据沿袭。- HIVE_BQ_VERSION:指定 Hive-BigQuery 连接器版本。
--metadata标志会将版本传递给connectors.sh初始化操作,以在集群上安装 Hive-BigQuery 连接器。
运行 Hive 查询
运行 Hive 查询以执行以下操作:
- 使用来自
gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout的示例数据输入创建us_states外部表。 - 在指定的 BigQuery 数据集中创建
us_states_copy托管式表。 - 将整个数据从
us_states复制到us_states_copy。
要运行查询,请执行以下操作:
- 在本地终端窗口或 Cloud Shell 中,使用文本编辑器(如
vi或nano)将以下 Hive 查询语句复制到hive-example.sql文件中,然后将该文件保存在当前目录中。 - 将
hive-example.sql文件提交到之前创建的 Managed Service for Apache Spark 集群,并将--execute HIVE_QUERY标志替换为--file SQL_FILE标志,以指定已保存hive-example.sql文件的位置。请注意,PROJECT 和 BQ_DATASET 变量必须已填充。
Hive BigQueryStorageHandler
CREATE EXTERNAL TABLE us_states ( name STRING, post_abbr STRING ) STORED AS PARQUET LOCATION 'gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout'; CREATE TABLE us_states_copy ( name STRING, post_abbr STRING ) STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler' TBLPROPERTIES ( 'bq.table'='PROJECT.BQ_DATASET.us_states_copy' ); INSERT INTO us_states_copy SELECT * FROM us_states;
查看数据沿袭图
Hive 作业成功完成后,在 Google Cloud 控制台的 BigQuery Studio 中查看数据沿袭:
如需了解如何在 BigQuery Studio 中显示图,请参阅在 BigQuery 中查看沿袭。如需了解如何理解图,请参阅数据沿袭信息模型。
后续步骤
- 详细了解数据沿袭。