Data Catalog 搜索语法

本文档介绍了 Data Catalog 搜索查询的语法。在阅读本文档之前,请务必先了解 Data Catalog 的相关概念,例如数据条目、标记和标记模板以及其他类型的元数据。请参阅什么是 Data Catalog?

如需在 Google Cloud 控制台中启动 Data Catalog 搜索查询,请前往 Data Catalog 的搜索页面,然后选择 Data Catalog 作为搜索模式。

转到搜索

形式最简单的 Data Catalog 搜索查询包含一个谓词。这些谓词可以匹配多个元数据:

  • 数据资源的名称、显示名或说明
  • 数据资源的确切类型
  • 数据资源架构中的列名称(或嵌套列名称)的子字符串
  • 项目 ID 的子字符串
  • 公开标记的值、公开标记模板的名称,或 附加到数据条目的公开标记模板中的字段名称。
  • (预览版)数据管家的电子邮件地址或名称的字符串
  • (预览版)概览说明中的字符串

简单搜索不支持 datetime 类型的标记模板字段。

例如,谓词 foo 与以下实体匹配:

  • 名为“foo.bar”的数据资源
  • 名称为 Foo Bar 的数据资源
  • 使用 This is the foo script. 说明的数据资源
  • 使用确切 foo 类型的数据资源
  • 数据资源架构中的 foo_bar
  • 数据资源架构中的嵌套列 foo_bar
  • 项目 prod-foo-bar
  • 名为“foo”的公开标记模板、使用 foo 标记模板进行标记的数据条目、标记模板显示名称为 foo、标记模板字段名称为 foo,以及标记字段值为字符串、枚举或富文本格式的 foo
  • (预览版)使用名为 foo 的数据管家的数据资源。
  • (预览版)具有包含字词 foo 的概述的数据资产。

要详细了解查看公开标记和私有标记的角色和权限,请参阅查看公开标记和私有标记的角色

限定谓词

您可以通过在谓词前面添加一个键来限定谓词,该键将匹配限制为特定的一部分元数据。

等号 (=) 将搜索限制为完全匹配。

键后面的冒号 (:) 将谓词与搜索结果中的值中的子字符串或词法单元匹配。

词法单元化将文本流分解为一系列词法单元,每个词法单元通常对应一个字词。

例如:

  • name:foo 选择名称中包含 foo 子字符串的实体:foo1barfoo
  • description:foo 选择说明中包含 foo 词法单元的实体:bar and foo
  • location=foo 匹配指定位置中具有 foo 作为位置名称的所有数据资源。

Data Catalog 支持以下限定符:

限定符 说明
name:x x 作为子字符串与数据资源 ID 匹配。
displayname:x x 作为子字符串与数据资源显示名称匹配。
column:x x 作为子字符串与数据资源架构中的列名称(或嵌套列名称)匹配。
您可以使用 AND 逻辑运算符按路径搜索嵌套列。
例如,column:(foo bar) 将嵌套列与 foo.bar 路径匹配。
description:x x 作为令牌与数据资源说明匹配。
label:bar 匹配具有标签(带有某个值)且标签键中含有 bar 这个子字符串的 BigQuery 数据资源。
label=bar 匹配具有标签(具有某个值)且标签键等于字符串 bar 的 BigQuery 数据资源。
label:bar:x x 作为子字符串与附加到 BigQuery 数据资源的键为 bar 标签值匹配。
label=foo:bar 匹配键为 foo 且键值为 bar 的 BigQuery 数据资源。
label.foo=bar 匹配键为 foo 且键值为 bar 的 BigQuery 数据资源。
label.foo 以字符串形式匹配具有键为 foo 的标签的 BigQuery 数据资源。
type=<type> 匹配特定对象类型或子类型的数据资源。可使用 <type>.<sub-type>. 格式来添加子类型
类型和子类型包括:
  • type=table 匹配所有表、视图和具体化视图。
  • type=dataset 匹配所有数据集。
  • type=table.viewtype=view 会匹配所有视图,但不匹配具体化视图。
  • type=materialized_view 匹配所有具体化视图。
  • type=lake 匹配所有数据湖。
  • type=zone 匹配所有区域。
  • type=tag_template 匹配所有标记模板。
  • type=entry_group 匹配所有条目组。
  • type=data_stream 匹配所有 Pub/Sub 主题。
  • (预览版)type=dataset.linked 用于匹配所有 Analytics Hub 关联数据集。
projectid:bar 匹配 Cloud 项目中的数据资源,这些 Cloud 项目的 ID 中有 bar 这一子字符串。
parent:x x 作为 BigQuery 数据资源分层路径的子字符串匹配。路径的格式为 <project_id>.<dataset_name>
例如,parent:foo.bar 会匹配路径为 project-foo.bar-dataset 的数据集的所有表和视图。
orgid=number 匹配确切 ID 值为 number 的 Cloud 组织内的数据资源。
system=<system> 匹配来自指定系统的所有数据资源。
系统包括:
  • system=bigquery 匹配来自 BigQuery 的所有数据资源。
  • system=cloud_bigtable 匹配来自 Bigtable 的所有数据资源。
  • system=cloud_pubsub 匹配来自 Pub/Sub 的所有数据资源。
  • system=cloud_spanner 匹配来自 Spanner 的所有数据资源。
  • system=dataproc_metastore 匹配来自 Dataproc Metastore 的所有数据资源。
  • system=data_catalog 匹配 Data Catalog 中创建的所有数据资源。
  • system=dataplex 匹配 Dataplex 中创建的所有数据资源。
location=<location> 匹配指定位置中具有确切名称的所有数据资源。例如,location=us-central1 与爱荷华州托管的所有资源相匹配。
如需查看受支持位置的完整列表,请参阅 Data Catalog 区域
cluster_location=<location> 匹配指定位置中具有确切名称的所有 Bigtable 数据资产。
例如,cluster_location=us-central1 与爱荷华州托管的所有资源相匹配。
如需查看受支持位置的完整列表,请参阅 Bigtable 区域
tag:x 匹配数据资源,其中 x 匹配不公开或公开标记的 <tag_template_project_id>.<tag_template_id>.<tag_field_id> 中的任何字符串。
示例:
  • tag:data_owner 匹配带有 data_owner 标记的数据资源。
  • tag:data_gov_template 匹配已使用 data_gov_template 标记模板标记的数据资源。
  • tag:mycloudproject.data_gov_template 匹配 mycloudproject 项目中使用 data_gov_template 模板标记的数据资源。
tag:key<operator>val 首先,将 key 与标记模板的标记字段 ID、标记模板 ID 或 Google Cloud 项目 ID 的任意子字符串匹配。然后,根据标记字段类型,将 valkey 的标记值匹配。
标记值允许的依赖于类型的 <operator> 集为:
  • string/richtext:“:”
    注意:此字符串搜索中的冒号表示完全匹配词法单元,而不是子字符串。
  • boolean 和 enum:“=”
  • double:“=”、“<”、“>”、“<=”、“>=”
  • timestamp:“:”、“=”、“<”、“>”、“<=”、“>=”
示例:
  • string:tag:data_owner:@mail.com 匹配具有 @mail.com 值的数据资源。
  • boolean:tag:data_gov_template.hasPII=true 匹配 data_gov_template 中为 truehasPII 布尔型标记。
  • enum:tag:certification_level_1=HIGHEST
  • double:tag:datascore=9 匹配具有值为 9datascore 双精度型标记的数据资源。
  • timestamp:tag:expiredDate:2019-01-01 匹配 expiredDate 标记为 2019-01-01 的数据资源。
  • timestamp:tag:expiredDate<2019-02 匹配 expiredDate 标记早于 2019-02-01T00:00:00 的数据资源。
createtime 查找在指定日期或时间之内、之前或之后创建的数据资源。
示例:
  • createtime:2019-01-01 匹配在 2019-01-01 创建的数据资源。
  • createtime<2019-02 匹配在 2019-02-01T00:00:00 之前创建的数据资源。
  • createtime>2019-02 匹配在 2019-02-01T00:00:00 之后创建的数据资源。
updatetime 查找在指定日期或时间之内、之前或之后更新的数据资源。
示例:
  • updatetime:2019-01-01 匹配在 2019-01-01 更新的数据资源。
  • updatetime<2019-02 匹配在 2019-02-01T00:00:00 之前更新的数据资源。
  • updatetime>2019-02 匹配在 2019-02-01T00:00:00 之后更新的数据资源。
policytag:x x 作为子字符串与政策标记显示名匹配。 查找使用匹配政策标记或其后代的所有资产。
policytagid=x x 作为政策标记或分类 ID 匹配。查找使用匹配政策标记或其后代的所有资产。
term:x 匹配与业务术语表术语相关联的数据资源,其中名称、说明或数据管家的子字符串与 x 匹配。
fully_qualified_name:x x 作为子字符串与 fully_qualified_name 匹配。
fully_qualified_name=x x 匹配为 fully_qualified_name

逻辑运算符

查询可以由若干谓词和逻辑运算符组成。如果您未指定运算符,则意味着使用隐含的逻辑 AND。例如,foo bar 返回同时匹配谓词 foo 和谓词 bar 的实体。

支持逻辑 AND 和逻辑 OR,例如 foo OR bar

您可以使用 -NOT 前缀来排除谓词。例如,-name:foo 返回名称与谓词 foo 不匹配的所有实体。

缩写语法

您还可以使用缩写搜索语法,用 | 代替 OR 运算符,用 , 代替 AND 运算符。

例如,要使用 OR 运算符搜索众多项目中的某一个项目中的条目,您可以使用:

projectid:(pid1|pid2|pid3|pid4)

来替代:

projectid:pid1 OR projectid:pid2 OR projectid:pid3 OR projectid:pid4

要搜索具有匹配列名称的条目,可以使用:

  • 和:column:(name1, name2, name3)
  • 或:column:(name1|name2|name3)

此缩写语法适用于前面列出的限定谓词,但 tagtermpolicytagpolicytagidlabel 除外。