Dataplex Universal Catalog 的搜索语法

本文档介绍了 Dataplex Universal Catalog 搜索查询的语法。在阅读本文档之前,请务必了解 Dataplex Universal Catalog 中的元数据管理概念,例如条目、切面、切面类型、条目组和条目类型。如需了解详情,请参阅 Dataplex Universal Catalog 中的元数据管理简介

Dataplex Universal Catalog 提供两种搜索模式:关键字搜索和自然语言搜索(预览版)。

借助关键字搜索,您可以使用特定关键字、过滤条件和定义的语法来查找资源。

自然语言搜索功能扩展了关键字搜索功能,可支持自然语言查询。它可让您使用日常用语查找资源,无需使用复杂的语法。

本文档介绍了关键字搜索和自然语言搜索的语法。

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

转到搜索

如需了解详情,请参阅在 Dataplex Universal Catalog 中搜索资源

您可以输入字词或短语(无需使用任何特定语法)来查找资产。 Dataplex Universal Catalog 会将您的查询与多个元数据字段进行匹配,从而执行广泛的搜索,这些字段包括:

  • 资源的名称、显示名称或说明
  • 资源的类型
  • 项目 ID
  • 概览说明
  • 资源架构中的列名称(或嵌套列名称)
  • 列说明
  • 完全限定名称
  • 联系人
  • 切面

使用查询语法进行搜索

如需进行更精确的搜索,您可以使用特定语法构建查询,包括限定符、逻辑运算符和切面搜索。

限定谓词

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

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

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

例如:

  • name:foo 选择名称中包含 foo 子字符串的资源,例如 foo1barfoo
  • description:foo 选择说明中包含 foo 词元的资源,例如 barfoo
  • location=foo 匹配指定位置中以 foo 作为位置名称的资源。

这些限定符的行为在不同搜索模式下可能会略有不同,详情请参阅以下各部分。

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

Dataplex Universal Catalog 支持以下用于关键字搜索的限定符:

限定符 说明
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-01-01 创建的资源。
  • 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-01-01 更新的资源。
  • 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 匹配。

谓词键 typesystemlocationdescription 以及切面搜索(不包括 has)仅支持完全匹配 (=) 限定符,不支持子字符串限定符 (:)。例如,type=foo

Dataplex Universal Catalog 支持以下自然语言搜索限定符:

限定符 说明
name:x x 作为资源 ID 或资源显示名称的子字符串匹配。
displayname:x x 作为子字符串与资源显示名称匹配。
column:x x 作为子字符串与资源架构中的列名称(或嵌套列名称)匹配。
description:x x 作为词元与资源说明匹配。
labels:bar 匹配具有标签(带有某个值)且标签键中含有 bar 作为子字符串的 BigQuery 资源。
labels=bar 匹配具有标签(带有某个值)且标签键等于 bar 作为字符串的 BigQuery 资源。
labels.bar:x x 作为子字符串与附加到 BigQuery 资源的键为 bar 的标签值匹配。
labels.foo=bar 匹配键为 foo 且键值为 bar 的 BigQuery 资源。
type=TYPE 匹配特定条目类型或其类型别名的资源。
projectid:bar 匹配 Google Cloud 项目中的资源,这些资源以 ID 中的字符串形式匹配 bar
parent:x x 作为资源的层次结构路径的子字符串进行匹配。
system=SYSTEM 匹配指定系统中的资源。
location=LOCATION

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

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

createtime

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

例如:

  • createtime:2019-01-01 匹配在 2019-01-01 创建的所有资源。
  • createtime<2019-02 匹配在 2019-02-01T00:00:00 之前创建的所有资源。
  • createtime>2019-02 匹配在 2019-02-01T00:00:00 之后创建的所有资源。
  • createtime>-30d 匹配过去 30 天内创建的所有资源。
  • createtime<=-30d 匹配 30 天前或更早时间创建的所有资源。
  • createtime<=-1d 匹配前一天创建的所有资源。

时间戳格式: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-01-01 更新的所有资源。
  • updatetime<2019-02 匹配在 2019-02-01T00:00:00 之前更新的所有资源。
  • updatetime>2019-02 匹配在 2019-02-01T00:00:00 之后更新的所有资源。
  • updatetime>-30d 匹配过去 30 天内更新的所有资源。
  • updatetime<-30d 匹配 30 天前或更早更新的所有资源。
  • updatetime=-1d 匹配前一天更新的所有资源。
  • updatetime>=-30d 匹配过去 30 天内更新的所有资源。
  • updatetime<=-30d 匹配 30 天前或更早更新的所有资源。

时间戳格式: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

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

关键字搜索

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

搜索切面字段值。将 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

自然语言搜索

限定符 说明
has:x x 作为子字符串与附加到条目的切面的切面类型的完整路径匹配,格式为 projectid.location.ASPECT_TYPE_ID
has=x x 与附加到条目的切面的切面类型的完整路径匹配,格式为 projectid.location.ASPECT_TYPE_ID
has:xOPERATORvalue

搜索切面字段值。将 x 作为子字符串与附加到条目的切面的切面类型和字段名称的完整路径匹配,格式如下:

  • 系统切面类型的语法:

    • ASPECT_TYPE_ID.FIELD_NAME
    • dataplex-types.ASPECT_TYPE_ID.FIELD_NAME
    • dataplex-types.LOCATION.ASPECT_TYPE_ID.FIELD_NAME

    例如,以下查询会匹配 bigquery-dataset 切面的 type 字段值为 default 的条目:

    • bigquery-dataset.type=default
    • dataplex-types.bigquery-dataset.type=default
    • dataplex-types.global.bigquery-dataset.type=default
  • 自定义切面类型的语法:

    • 如果切面是在全球区域中创建的: PROJECT_ID.ASPECT_TYPE_ID.FIELD_NAME
    • 如果切面是在特定区域中创建的: PROJECT_ID.REGION.ASPECT_TYPE_ID.FIELD_NAME

    例如,以下查询会匹配 employee-info 切面的 is-enrolled 字段值为 true 的条目。

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

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

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

只有切面的顶级字段可供搜索。

逻辑运算符

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

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

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

缩写语法

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

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

projectid:(id1|id2|id3|id4)

如果不使用缩写语法,同一搜索查询如下所示:

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

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

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

此缩写语法适用于关键字搜索中除label外的限定谓词

后续步骤