关于元数据更改 Feed

本文档简要介绍了 Dataplex Universal Catalog 元数据更改 Feed。借助这些元数据变更 Feed,您可以近乎实时地跟踪 Dataplex Universal Catalog 实例中的元数据变更,并根据这些变更构建事件驱动型工作流。

自动监控元数据更改

在 Dataplex Universal Catalog 中,条目表示数据资产(例如 BigQuery 表),而切面是附加到条目的一组相关元数据字段,用于描述该条目。当条目或切面被创建、更新或删除时,Dataplex Universal Catalog 会向您指定的 Pub/Sub 主题发布通知消息。这些通知也称为元数据更改 Feed,其中包含有关更改的信息。这包括更改发生的时间、更改的资源以及更改的类型。如需详细了解条目和切面,请参阅 Dataplex Universal Catalog 中的元数据管理简介

以下架构图展示了 Dataplex Universal Catalog 如何捕获元数据更改(创建、更新、删除)并将其推送到 Pub/Sub 以用于下游的事件驱动型工作流。

图表:显示了 Dataplex 元数据更改如何发布到 Pub/Sub 并由订阅者使用。
图 1. 元数据更改 Feed 概览

如需控制哪些更改会生成通知,您可以配置元数据变更 Feed 来监控特定资源。为此,您需要指定范围,例如整个组织、特定项目或特定条目组。 范围用于定义要监控哪些资源,而过滤条件可用于进一步细化 Dataplex Universal Catalog 发送通知的时间。例如,您可能希望仅在更新 bigquery-table 类型的表时收到通知,而不是在创建或删除此类表时收到通知。为此,您可以根据条目类型、切面类型或更改类型(CREATEUPDATEDELETE)对元数据更改 Feed 应用一个或多个过滤条件。

例如,一家在线零售公司使用 BigQuery 在专用项目中管理产品库存。为了仅监控其库存表中的架构更改,他们创建了一个以项目为范围的元数据更改 Feed,并应用了 entry_type=bigquery-tablechange_type=UPDATE 的过滤条件。如果关键表(例如 product_stock)的架构更新,此更改会生成与元数据更改 Feed 的过滤条件匹配的 UPDATE 通知。然后,元数据更改 Feed 会向 Pub/Sub 主题发送通知。订阅此 Pub/Sub 主题的自动化工作流可以立即暂停下游报告流水线,并提醒库存管理团队,以防止基于不一致的数据做出决策。

使用场景

您可以使用元数据更改 Feed 实现各种目的,包括:

  • 元数据同步:持续将 Dataplex Universal Catalog 元数据更改同步到外部或第三方数据目录或搜索索引。
  • 政策执行:当条目的数据分类方面发生变化时,自动应用或更新安全政策。
  • 数据质量自动化:在表的架构发生变化时触发数据质量扫描或向数据所有者发送提醒。
  • ETL/ELT 触发:在新表条目创建或更新时启动数据转换作业。
  • 审核:将所有元数据更改记录到审核表中,以实现合规性。

术语

元数据更改 Feed 是一种 Dataplex Universal Catalog 资源,用于监控条目和切面的元数据更改(创建、更新、删除),并将通知发送到 Pub/Sub 主题。在 API 中,此资源称为 metadataFeeds (projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID)。

您可以通过定义元数据更改 Feed 的范围、过滤条件和目标来对其进行配置。当发生的元数据更改与元数据更改 Feed 的范围和过滤条件相匹配时,Dataplex Universal Catalog 会向目标 Pub/Sub 主题发布通知消息。

元数据更改 Feed 配置

您可以通过定义以下内容来配置元数据更改 Feed:

  • 范围:要监控哪些资源的变化,例如整个组织、特定项目或特定条目组。在 API 中,您需要指定资源名称。以下示例展示了条目组的资源名称格式:projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID

  • 过滤条件:用于过滤哪些更改会生成通知的条件,可基于条目类型、方面类型或更改类型(CREATEUPDATEDELETE)。在 API 中,您需要指定资源名称。以下示例展示了条目类型的资源名称格式:projects/PROJECT_ID/locations/global/entryTypes/ENTRY_TYPE。如果您未指定任何过滤条件,则 Feed 范围内的所有更改类型(CREATEUPDATEDELETE)都会生成通知。

  • 目标:Dataplex Universal Catalog 发布通知消息的 Pub/Sub 主题。在 API 中,您需要指定主题名称。以下示例展示了 Pub/Sub 主题的资源名称格式:projects/PROJECT_ID/topics/TOPIC_ID

以下示例展示了一个元数据更改 Feed,该 Feed 配置为监控项目 PROJECT_ID_1PROJECT_ID_2CREATE 事件,并将通知发送到 TOPIC_ID

{
  "scope": {
    "projects": [
      "projects/PROJECT_ID_1",
      "projects/PROJECT_ID_2"
    ]
  },
  "filter": {
    "changeTypes": [
      "CREATE"
    ]
  },
  "pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}

如需了解如何创建和管理元数据更改 Feed,请参阅通过元数据更改 Feed 接收通知

通知消息格式

当元数据更改触发通知时,Dataplex Universal Catalog 会将消息发布到指定的 Pub/Sub 主题。更改事件详情会捕获到 Pub/Sub 消息中。消息包含用于过滤的属性,以及包含更改详细信息的数据载荷。

如需详细了解如何使用这些消息,请参阅使用通知消息

属性

这些属性可用于过滤主题内的消息。您可以使用 Pub/Sub 订阅过滤条件过滤订阅中的消息。

属性中提供了以下字段:

  • timestamp:发生更改时的时间戳。
  • entry_name:条目的资源名称,格式为 projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID/entries/ENTRY_ID
  • entry_fqn:条目的完全限定名称
  • feed_name:元数据更改 Feed 的资源名称,格式为 projects/PROJECT_ID/locations/LOCATION/metadataChangeFeeds/FEED_ID
  • entry_type:条目类型的资源名称,格式为 projects/PROJECT_NUMBER/locations/LOCATION/entryTypes/ENTRY_TYPE_ID。如需了解详情,请参阅条目类型
  • entry_change_type:更改类型:CREATEDUPDATEDDELETED

以下示例展示了条目创建事件的属性:

{
  "feed_name": "projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID",
  "entry_change_type": "CREATE",
  "timestamp": "2026-02-03T23:12:03.054469Z",
  "entry_type": "projects/PROJECT_NUMBER/locations/global/entryTypes/ENTRY_TYPE_ID"
}

数据载荷

Pub/Sub 消息的数据载荷是一个 JSON 字符串,其中包含有关更改的详细信息。

以下是数据载荷的示例:

{
  "entryName": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID/entries/ENTRY_ID",
  "full_qualified_name": "bigquery:PROJECT_ID.DATASET_ID.TABLE_ID",
  "updatedAspects": [
    "projects/PROJECT_NUMBER/locations/global/aspectTypes/updated-aspect-type"
  ],
  "createdAspects": [
    "projects/PROJECT_NUMBER/locations/global/aspectTypes/created-aspect-type"
  ],
  "deletedAspects": [
    "projects/PROJECT_NUMBER/locations/global/aspectTypes/deleted-aspect-type"
  ]
}

VPC Service Controls 注意事项

元数据更改 Feed 符合 VPC Service Controls (VPC-SC) 标准。

  • 如果元数据更改 Feed 的范围是组织级,则只有位于元数据更改 Feed 的 VPC Service Controls 边界内的项目才会生成通知。

  • 如果元数据更改 Feed 的范围限定为项目或条目组,则所有指定的项目或条目组都必须与元数据更改 Feed 位于同一 VPC Service Controls 边界内;否则,元数据更改 Feed 创建会失败。

配额和限制

如需了解与元数据更改 Feed 相关的配额,请参阅配额

请查看以下有关元数据更改 Feed 的限制:

  • 传送:元数据更改 Feed 会以“至少一次”的方式传送通知。您必须在订阅者中处理可能重复的消息。

  • 排序:Dataplex Universal Catalog 不保证消息传送顺序。

  • 延迟时间:虽然是近乎实时,但通知的延迟时间目标值为 3 到 10 分钟。

  • 激活延迟时间:由于后端存在缓存,新创建或更新的元数据更改 Feed 配置最多可能需要 10 分钟才能变为有效状态。

  • 载荷:初始通知消息仅包含更改签名。例如,条目名称、条目类型、更改类型以及更改的方面类型或键的列表,但不包含实际更改的数据(方面载荷)。您必须调用 Dataplex Universal Catalog API (GetEntry) 才能检索条目或切面的当前状态(如果需要)。

价格

Dataplex Universal Catalog 元数据更改 Feed 不会直接产生费用。不过,您需要为使用的资源付费,例如 Pub/Sub 消息传送、存储和数据出站流量。请参阅 Pub/Sub 价格

后续步骤