Spark 数据沿袭

概览

数据沿袭是 Dataplex 的一项功能,可让您跟踪数据在系统中的移动方式:数据来自何处、传递到何处以及对其应用了哪些转换。

启用数据沿袭后, Dataproc Serverless for Spark 工作负载可捕获沿袭事件并将其发布到 Dataplex Data Lineage API。Dataproc Serverless for Spark 使用 OpenLineage Spark 插件,通过 OpenLineage 与 Data Lineage API 集成。

您可以使用 沿袭可视化图Data Lineage API。 如需了解详情,请参阅在 Dataplex 中查看沿袭图

可用性、功能和限制

Spark 数据沿袭,包括 BigQuery。和 Cloud Storage 适用于使用 支持的 Dataproc Serverless for Spark 运行时版本 但存在以下例外情况和限制:

  • Spark 数据沿袭不适用于:
    • Dataproc Serverless Spark 运行时版本 1.2 工作负载
    • Spark 流式工作负载
    • BigQuery 连接器版本 2(Spark 数据源 API 版本 2)

准备工作

  1. 在 Google Cloud 控制台中的项目选择器页面上,选择要用于 Dataproc Serverless for Spark 工作负载的项目。

    转到“项目选择器”

  2. 启用 Data Lineage API 和 Data Catalog API。

    启用 API

所需的角色

为了获得在 Dataproc Serverless for Spark 中使用数据沿袭所需的权限, 请让管理员授予您 Dataproc 集群虚拟机服务账号的以下 IAM 角色:

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

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

为 Spark 批处理工作负载启用数据沿袭

您可以为批量工作负载启用 Spark 数据沿袭 将 spark.dataproc.lineage.enabled 属性设置为 true 时, 提交工作负载

Google Cloud CLI 示例:

gcloud dataproc batches submit pyspark FILENAME.py
    --region=REGION \
    --version=1.1 \
    --properties=spark.dataproc.lineage.enabled=true \
    other args ...

在 Dataplex 中查看沿袭图

沿袭可视化图显示项目之间的关系 资源以及创建它们的进程。您可以在 Google Cloud 控制台中的图表可视化中查看数据传承信息,也可以将信息从 Data Lineage API 检索为 JSON 数据。

如需了解详情,请参阅在 Google Cloud 系统中使用数据谱系

示例

以下 Spark 工作负载会从 BigQuery 中读取数据 表,然后将输出内容写入其他 BigQuery 表。

#!/usr/bin/env python

from pyspark.sql import SparkSession
import sys

spark = SparkSession \
  .builder \
  .appName('LINEAGE_BQ_TO_BQ') \
  .getOrCreate()

bucket = lineage-ol-test
spark.conf.set('temporaryGcsBucket', bucket)

source = sample.source
words = spark.read.format('bigquery') \
  .option('table', source) \
  .load()
words.createOrReplaceTempView('words')

word_count = spark.sql('SELECT word, SUM(word_count) AS word_count FROM words GROUP BY word')

destination = sample.destination
word_count.write.format('bigquery') \
  .option('table', destination) \
  .save()

此 Spark 工作负载会在 Dataplex 界面中创建以下谱系图:

示例沿袭图

后续步骤