Data Catalog 搜索语法

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

如需在 Google Cloud 控制台中启动 Data Catalog 搜索查询,请转到 Dataplex Search 页面。

转到 Dataplex Search

最简单的 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=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: ":"
    注意:此字符串搜索中的冒号表示令牌完全匹配,而不是子字符串。
  • booleanbooleanboolean 和 enum:“=”
  • double:“=”、“<”、“>”、“<=”、“>=”
  • timestamp:“:”、“=”、“<”、“>”、“<=”、“>=”
示例:
  • string:tag:data_owner:@mail.com 匹配具有 @mail.com 值的数据资源。
  • booleanboolean: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 xfully_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 除外。