Data Catalog の検索構文

このドキュメントでは、Data Catalog の検索クエリの構文について説明します。

簡単な述語

最も簡単な形式は、述語を 1 つだけ含む検索クエリです。そのような述語は、複数のメタデータに一致する可能性があります。

  • データアセットの名前、表示名、および説明文の部分文字列
  • データアセットの正確なタイプ
  • データアセットのスキーマにおける列名(またはネストされた列名)の部分文字列
  • プロジェクト ID の部分文字列

たとえば、述語 foo は次のエンティティと一致します。

  • foo.bar という名前のデータアセット
  • Foo Bar という表示名のデータアセット
  • This is the foo script. という説明のデータアセット
  • 正確に foo タイプであるデータアセット
  • データアセットのスキーマの列 foo_bar
  • データアセットのスキーマにネストされた列 foo_bar
  • プロジェクト prod-foo-bar

修飾された述語

述語の先頭にキーを付けて修飾すると、照合範囲を特定のメタデータ部分に限定できます。キーの後のコロン(:)は述語を検索結果内の部分文字列と照合し、等号(=)は検索を完全一致に制限します。

次に例を示します。

  • name:foo は、foo1bar_foo という名前のエンティティを選択します。
  • name=foo は、foo という名前を持つエンティティを選択します。

Data Catalog は、次の修飾子をサポートしています。

修飾子 説明
name:x x をデータアセット ID の部分文字列と照合します。
displayname:x x をデータアセットの表示名の部分文字列と照合します。
column:x x をデータアセットのスキーマにおける列名(またはネストされた列名)の部分文字列と照合します。
現時点では、AND 論理演算子を使用して、ネストされた列をパスで検索できます。
たとえば、column:(foo bar) はネストされた列を foo.bar のパスと照合します。
description:x x をデータアセットの説明のトークンと照合します。
labels:bar ラベル(ある値を持つ)を持つ BigQuery データアセットを照合します。ラベルキーには部分文字列として bar があります。
labels.bar:x x を BigQuery データアセットに添付されたラベル bar の値のトークンと照合します。
type=<type> 特定のオブジェクト タイプまたはサブタイプのデータアセットを照合します。サブタイプは形式 <type>.<sub-type>. に追加できます。
タイプとサブタイプには次が含まれます。
  • type=table はすべてのテーブルを照合します。
  • type=dataset はすべての BigQuery データセットを照合します。
  • type=table.view または type=view はすべてのビューを照合します。
  • type=tag_template はすべてのタグ テンプレートを照合します。
  • type=entry_group はすべてのエントリ グループを照合します。
  • type=data_stream はすべての Pub/Sub トピックを照合します。
projectid:bar bar と ID の部分文字列が一致する Cloud プロジェクト内のデータアセットを照合します。
parent:x x を BigQuery データアセットの階層パスの文字列部分と照合します。パスの形式は <project_id>.<dataset_name> です。
たとえば、parent:foo.bar は、パスが project-foo.bar-dataset であるデータセットのすべてのテーブルとビューを照合します。
orgid:bar bar と ID の部分文字列が一致するクラウド組織内のデータアセットを照合します。
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:val key とタグフィールド ID、タグ テンプレート ID、またはタグ テンプレートの Cloud プロジェクト ID の部分文字列を照合します。タグフィールドのタイプが string の場合、val を、key のタグ値のトークンと照合します。タグフィールドの値のタイプが booleanenumdouble. のいずれかの場合、key のタグ値に val が正確に一致します。
次の演算子が許可されます。
  • string: ":"
  • booleanenum: "="
  • double: "="、"<"、">"、"<="、">="
  • timestamp: ":"、"="、"<"、">"、"<="、">="
例:
  • string: tag:data_owner:@mail.com は、@mail.com 値を持つデータアセットを照合します。
  • boolean: tag:data_gov_template.hasPII=true は、true である data_gov_templatehasPII boolean タグを照合します。
  • enum: tag:certification_level_1=HIGHEST
  • double: tag:datascore=9 は、値が 9 である datascore double タグを持つデータアセットを照合します。
  • timestamp: tag:expiredDate:2019-01-01 は、2019-01-01expiredDate タグがあるデータアセットを照合します。
  • timestamp: tag:expiredDate<2019-02 は、2019-02-01T00:00:00 より前に expiredDate タグがあるデータアセットを照合します。
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 演算子を使用して、複数のプロジェクトの 1 つのエントリを検索するには、次の構文を使用します。

projectid:(pid1|pid2|pid3|pid4)

これは、以下を置き換えるものです。

projectid:pid1 OR projectid:pid2 OR projectid:pid3 OR projectid:pid4

列名が一致するエントリを検索するには:

  • AND: column:(name1, name2, name3)
  • OR: column:(name1|name2|name3)

この簡略構文は、上記の修飾された述語のすべてで使用できます。