Data Catalog 搜索语法

本文档介绍了 Data Catalog 搜索查询的语法。

简单谓词

形式最简单的搜索查询由单个谓词组成。这些谓词可以匹配多个元数据:

  • 数据资源的名称、显示名和说明
  • 数据资源的确切类型
  • 数据资源架构中的列名称(或嵌套列名称)的子字符串
  • 项目 ID 的子字符串

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

  • 名为“foo.bar”的数据资源
  • 名称为 Foo Bar 的数据资源
  • 使用 This is the foo script. 说明的数据资源
  • 使用确切 foo 类型的数据资源
  • 数据资源架构中的 foo_bar
  • 数据资源架构中的嵌套列 foo_bar
  • 项目 prod-foo-bar

限定谓词

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

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

例如:

  • name=foo 选择具有确切 foo 名称的实体。
  • name:foo 选择名称中包含 foo 子字符串的实体:foo1barfoo
  • description:foo 选择说明中包含 foo 词法单元的实体:bar and foo

Data Catalog 支持以下限定符:

限定符 说明
name:x x 作为子字符串与数据资源 ID 匹配。
displayname:x x 作为子字符串与数据资源显示名称匹配。
column:x x 作为子字符串与数据资源架构中的列名称(或嵌套列名称)匹配。
目前,您可以使用 AND 逻辑运算符按路径搜索嵌套列。
例如,column:(foo bar) 将嵌套列与 foo.bar 路径匹配。
description:x x 作为令牌与数据资源说明匹配。
labels:bar 匹配具有标签(带有某个值)且标签键中含有 bar 这个子字符串的 BigQuery 数据资源。
label:bar:x x 作为令牌与附加到 BigQuery 数据资源的标签 bar 的值匹配。
type=<type> 匹配特定对象类型或子类型的数据资源。可使用 <type>.<sub-type>. 格式来添加子类型
类型和子类型包括:
  • type=table 匹配所有表。
  • type=dataset 匹配所有 BigQuery 数据集。
  • type=table.viewtype=view 匹配所有视图。
  • type=tag_template 匹配所有标记模板。
  • type=entry_group 匹配所有条目组。
  • type=data_stream 匹配所有 Pub/Sub 主题。
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_pubsub 匹配来自 Pub/Sub 的所有数据资源。
  • system=dataproc_metastore 匹配来自 Dataproc Metastore 的所有数据资源。
  • system=data_catalog 匹配 Data Catalog 中创建的所有数据资源。
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 或 Cloud 项目 ID 的任意子字符串匹配。然后,根据标记字段类型,将 valkey 的标记值匹配。
标记值允许的依赖于类型的 <operator> 集为:
  • string:“:”
    注意:此字符串搜索中的冒号表示完全匹配词法单元,而不是子字符串。
  • 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 匹配。查找使用匹配政策标记或其后代的所有资产。

逻辑运算符

查询可以由若干谓词和逻辑运算符组成。如果您未指定运算符,则意味着使用隐含的逻辑 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)

此缩写语法适用于上面列出的所有限定谓词