在 Dataproc 中启用 Hive 数据沿袭

本文档介绍了如何为 Dataproc Hive 作业启用和使用数据谱系

创建集群时,您可以使用初始化操作为 Dataproc Hive 作业启用数据传承。

在集群上启用 Hive 数据谱系后,您提交到集群的 Hive 作业会捕获数据谱系事件并将其发布到 Dataplex

直观呈现数据沿袭信息

数据沿袭图会显示项目资源与创建这些资源的过程之间的关系。您可以在 Google Cloud 控制台中使用 DataplexBigQuery StudioVertex AI 访问谱系图。

价格

在预览期间,Dataproc Hive 数据谱系免费提供。系统会按标准 Dataproc 价格收费。

准备工作

  1. 在 Google Cloud 控制台的项目选择器页面上,选择包含您要跟踪其沿袭的 Dataproc 集群的项目。

    转到“项目选择器”

  2. 启用 Data Lineage API 和 Dataplex API。

    启用 API

所需的角色

如需获得在 Dataproc 中使用数据源流水线所需的权限,请让您的管理员为您授予 Dataproc 集群 VM 服务账号的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

启用 Hive 数据沿袭

如需在集群上启用 Hive 数据谱系,请在创建 Dataproc 集群时指定 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 连接器。请参阅“使用 BigQuery 的 Hive 数据谱系”示例,其中运行了连接器初始化操作,以便在集群上安装 Hive-BigQuery 连接器。

提交 Hive 作业

当您向启用了 Hive 数据沿袭功能创建的 Dataproc 集群提交 Hive 作业时,Dataproc 会捕获数据沿袭信息并将其报告给 Dataplex。

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 标志,以指定包含查询的文件的位置,而不是指定查询。

查看 Dataplex 中的沿袭

沿袭图表会显示项目资源与创建这些资源的流程之间的关系。您可以在 Google Cloud 控制台中查看数据谱系信息,也可以以 JSON 数据的形式从 Data Lineage API 检索数据谱系信息。

使用 BigQuery 的 Hive 数据谱系示例

本部分中的示例包含以下步骤:

  1. 创建一个已启用 Hive 数据谱系且在集群上安装了 Hive-BigQuery 连接器的 Dataproc 集群。
  2. 在集群上运行 Hive 查询,以便在 Hive 表之间复制数据。
  3. 在 BigQuery Studio 中查看生成的数据沿袭图。

创建 Dataproc 集群

在本地终端窗口或 Cloud Shell 中运行以下命令,以创建 Dataproc 集群

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

注意:

运行 Hive 查询

运行 Hive 查询以执行以下操作:

  • 使用从 gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout 输入的示例数据创建 us_states 外部表。
  • 在指定的 BigQuery 数据集中创建 us_states_copy 管理的表。
  • 将整个数据从 us_states 复制到 us_states_copy

要运行查询,请执行以下操作:

  1. 在本地终端窗口或 Cloud Shell 中,使用文本编辑器(如 vinano)将以下 Hive 查询语句复制到 hive-example.sql 文件中,然后将该文件保存在当前目录中。
  2. hive-example.sql 文件提交之前创建的 Dataproc 集群,将 --execute HIVE_QUERY 标志替换为 --file SQL_FILE 标志,以指定已保存 hive-example.sql 文件的位置。请注意,必须填充 PROJECTBQ_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 中查看数据谱系:

Hive 沿袭图

如需了解如何在 BigQuery Studio 中显示图表,请参阅在 BigQuery 中查看沿袭。如需了解如何理解图表,请参阅数据沿袭信息模型

后续步骤