本文档简要介绍了 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 以用于下游的事件驱动型工作流。
如需控制哪些更改会生成通知,您可以配置元数据变更 Feed 来监控特定资源。为此,您需要指定范围,例如整个组织、特定项目或特定条目组。
范围用于定义要监控哪些资源,而过滤条件可用于进一步细化 Dataplex Universal Catalog 发送通知的时间。例如,您可能希望仅在更新 bigquery-table 类型的表时收到通知,而不是在创建或删除此类表时收到通知。为此,您可以根据条目类型、切面类型或更改类型(CREATE、UPDATE 或 DELETE)对元数据更改 Feed 应用一个或多个过滤条件。
例如,一家在线零售公司使用 BigQuery 在专用项目中管理产品库存。为了仅监控其库存表中的架构更改,他们创建了一个以项目为范围的元数据更改 Feed,并应用了 entry_type=bigquery-table 和 change_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。过滤条件:用于过滤哪些更改会生成通知的条件,可基于条目类型、方面类型或更改类型(
CREATE、UPDATE或DELETE)。在 API 中,您需要指定资源名称。以下示例展示了条目类型的资源名称格式:projects/PROJECT_ID/locations/global/entryTypes/ENTRY_TYPE。如果您未指定任何过滤条件,则 Feed 范围内的所有更改类型(CREATE、UPDATE和DELETE)都会生成通知。目标:Dataplex Universal Catalog 发布通知消息的 Pub/Sub 主题。在 API 中,您需要指定主题名称。以下示例展示了 Pub/Sub 主题的资源名称格式:
projects/PROJECT_ID/topics/TOPIC_ID。
以下示例展示了一个元数据更改 Feed,该 Feed 配置为监控项目 PROJECT_ID_1 和 PROJECT_ID_2 的 CREATE 事件,并将通知发送到 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:更改类型:CREATED、UPDATED或DELETED。
以下示例展示了条目创建事件的属性:
{
"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 价格。