Data Catalog 搜索语法

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

简单谓词

形式最简单的搜索查询由单个谓词组成。例如,谓词 foo 与以下 Data Catalog 实体匹配:

  • 说明为 This is the foo script. 的实体
  • 名称为 foo.bar 的实体。

限定谓词

您可以通过在谓词前面添加一个键来限定谓词,该键将匹配限制为特定的一部分元数据。例如,name:foo 将选择名称与谓词 foo 匹配的实体。

Data Catalog 支持以下限定符:

限定符 说明
name:x x 作为子字符串与数据资源 ID 匹配。
displayname:x x 作为子字符串与数据资源显示名称匹配。
column:x x 作为子字符串与数据资源架构中的列名称匹配。
description:x x 作为令牌与数据资源说明匹配。
labels:bar 匹配具有标签(带有某个值)且标签键中含有 bar 这个子字符串的 BigQuery 数据资源。
labels.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 这一子字符串。
orgid:bar 匹配 Cloud 组织中的数据资源,这些 Cloud 组织的 ID 中有 bar 这一子字符串。
system=<system> 匹配来自指定系统的所有数据资源。
系统包括:
  • system=bigquery 匹配来自 BigQuery 的所有数据资源。
  • system=cloud_pubsub 匹配来自 Pub/Sub 的所有数据资源。
  • 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:val 匹配标记模板的标记字段 ID、标记模板 ID 或 Cloud 项目 ID 的任意子字符串中的 key。当标记字段的类型为 string 时,将 val 作为令牌与 key 的标记值匹配。当标记字段值类型为 booleanenumdouble. 时,将 valkey 的标记值进行精确匹配。
允许的运算符如下:
  • 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 之后更新的数据资源。

逻辑运算符

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

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

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