在 Dataproc 中启用 Hive 数据沿袭

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

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

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

直观呈现沿袭信息

数据沿袭图显示了项目资源与创建这些资源的进程之间的关系。您可以使用 Google Cloud 控制台中的 Dataplex Universal CatalogBigQuery StudioVertex AI 访问沿袭图。

价格

在预览版期间,Dataproc Hive 数据沿袭可免费提供。您需要按标准 Dataproc 价格付费。

准备工作

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

    转到“项目选择器”

  2. 启用 Data Lineage API 和 Dataplex API。

    启用 API

所需的角色

如需获得在 Dataproc 中使用数据沿袭所需的权限,请让您的管理员为您授予 Dataproc 集群虚拟机服务账号的以下 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 连接器。请参阅将 Hive 数据沿袭与 BigQuery 结合使用示例,该示例运行连接器初始化操作,以在集群上安装 Hive-BigQuery 连接器。

提交 Hive 作业

向已创建的 Dataproc 集群提交 Hive 作业启用了 Hive 数据沿袭后,Dataproc 会捕获数据沿袭信息并将其报告给 Dataplex Universal 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 标志来指定包含查询的文件的位置。

在 Dataplex Universal Catalog 中查看沿袭

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

将 Hive 数据沿袭与 BigQuery 结合使用示例

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

  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 中查看沿袭。如需了解如何理解图,请参阅数据沿袭信息模型

后续步骤