通用目录的搜索语法

本文档介绍了 Dataplex 搜索查询的语法。在阅读本文档之前,请务必了解 BigQuery 通用目录的概念,例如条目、方面、方面类型、条目组和条目类型。如需了解详情,请参阅 BigQuery 通用目录概览

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

转到搜索

如需了解详情,请参阅在通用目录中搜索资源

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

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

例如,谓词 foo 与以下资源匹配:

  • 名为 foo.bar 的资源
  • 显示名称为 Foo Bar 的资源
  • 使用 This is the foo script 说明的资源
  • 使用确切类型 foo 的资源
  • 资源架构中的 foo_bar
  • 资源架构中的嵌套列 foo_bar
  • 项目 prod-foo-bar
  • 资源的概述包含字词 foo

限定谓词

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

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

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

例如:

  • name:foo 选择名称中包含 foo 子字符串的资源,例如 foo1barfoo
  • description:foo 选择说明中包含 foo 令牌的资源,例如 barfoo
  • location=foo 匹配指定位置中具有 foo 作为营业地点名称的资源。

谓词键 typesystemlocationorgid 仅支持完全匹配 (=) 限定符,而不支持子字符串限定符 (:)。例如,type=fooorgid=number

通用目录支持以下限定符:

限定符 说明
name:x x 作为子字符串与资源 ID 匹配。
displayname:x x 作为子字符串与资源显示名称匹配。
column:x x 作为子字符串与资源架构中的列名称(或嵌套列名称)匹配。
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 匹配特定条目类型或其类型别名的资源。
projectid:bar 匹配 Google Cloud 项目中资源,这些项目的 ID 中有 bar 这一子字符串。
parent:x x 作为资源分层路径的子字符串匹配。父级路径是父级资源的 fully_qualified_name
orgid=number 匹配确切 ID 值为 number 的 Google Cloud 组织内资源。
system=SYSTEM 匹配来自指定系统的资源。
location=LOCATION

匹配指定位置中具有确切名称的资源。 例如,location=us-central1 与在爱荷华州托管的资源相匹配。

BigQuery Omni 素材资源通过使用 BigQuery Omni 位置名称来支持此限定符。 例如,location=aws-us-east-1 会匹配位于弗吉尼亚州北部的 BigQuery Omni 资产。

createtime

查找在指定日期或时间之内、之前或之后创建的资源。

例如:

  • createtime:2019-01-01 匹配 2019 年 1 月 1 日创建的资源。
  • createtime<2019-02 匹配 2019-02-01T00:00:00 之前创建的资源。
  • createtime>2019-02 匹配在 2019-02-01T00:00:00 之后创建的资源。

时间戳格式:YYYY-MM-DDThh:mm:ss

所有时间戳必须采用 GMT;不支持时区。支持部分时间戳、英文短划线 (-) 日期分隔符和英文斜线 (/) 日期分隔符。

例如:

  • 2010-10-22T05:36:24
  • 2010-10-22T05:36
  • 2010-10-22T05
  • 2010-10-22
  • 2010-10
  • 2010
  • 2010/10/22
updatetime

查找在指定日期或时间之内、之前或之后更新的资源。

例如:

  • updatetime:2019-01-01 匹配在 2019 年 1 月 1 日更新的资源。
  • updatetime<2019-02 匹配在 2019-02-01T00:00:00 之前更新的资源。
  • updatetime>2019-02 匹配在 2019-02-01T00:00:00 之后更新的资源。

时间戳格式:YYYY-MM-DDThh:mm:ss

所有时间戳必须采用 GMT;不支持时区。支持部分时间戳、英文短划线 (-) 日期分隔符和英文斜线 (/) 日期分隔符。

例如:

  • 2010-10-22T05:36:24
  • 2010-10-22T05:36
  • 2010-10-22T05
  • 2010-10-22
  • 2010-10
  • 2010
  • 2010/10/22
fully_qualified_name:x x 作为子字符串与 fully_qualified_name 匹配。
fully_qualified_name=x x 匹配为 fully_qualified_name

如需根据附加的方面搜索条目,请使用以下查询语法。

限定符 说明
aspect:x x 作为指向附加到条目的相应方面类型的完整路径的子字符串进行匹配,格式为 projectid.location.ASPECT_TYPE_ID
aspect=x x 匹配为指向附加到条目的方面类型的完整路径,格式为 projectid.location.ASPECT_TYPE_ID
aspect:xOPERATORvalue

搜索“aspect”字段值。将 x 作为子字符串与附加到条目的方面类型和方面字段名称的完整路径匹配,格式为 projectid.location.ASPECT_TYPE_ID.FIELD_NAME

支持的运算符列表取决于相应方面中的字段类型,如下所示:

  • 字符串=(完全匹配)和 :(子字符串)
  • 所有数字类型=:<><=>==>=<
  • 枚举=
  • 日期时间:与数字相同,但要比较的值被视为日期时间,而不是数字
  • 布尔值=

只有相应方面中的顶级字段可供搜索。

例如,以下所有查询都与 employee-info 方面 is-enrolled 字段的值为 true 的条目匹配。系统还会返回与该子字符串匹配的其他条目。

  • aspect:example-project.us-central1.employee-info.is-enrolled=true
  • aspect:example-project.us-central1.employee=true
  • aspect:employee=true

逻辑运算符

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

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

您可以使用 -(连字符)或 NOT 前缀来排除谓词。例如,-name:foo 返回名称与谓词 foo 不匹配的资源。

逻辑运算符不区分大小写。例如,orOR 均为可接受的值。

缩写语法

您还可以使用缩写搜索语法,用 |(竖线)代替 OR 运算符,用 ,(英文逗号)代替 AND 运算符。

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

projectid:(id1|id2|id3|id4)

不使用缩写语法进行相同搜索时,搜索内容如下所示:

projectid:id1 OR projectid:id2 OR projectid:id3 OR projectid:id4

如需搜索具有匹配列名称的条目,请使用以下命令:

  • ANDcolumn:(name1, name2, name3)
  • column:(name1|name2|name3)

此缩写语法适用于限定谓词,但 label 除外。

后续步骤