このドキュメントでは、Dataplex Universal Catalog を使用して、BigQuery データセット、Cloud SQL インスタンス、その他のサポートされているソースなどのリソースを検索する方法について説明します。分散データソースを一元的に配置することで、企業データのカタログ作成、分類、アクセス制御、ガバナンスを行うことができます。
Dataplex Universal Catalog には、次の 2 つの検索モードがあります。
- キーワード検索では、特定のキーワード、フィルタ、定義された構文を使用してリソースを検索できます。
- 自然言語検索は、AI を活用してセマンティック クエリをサポートします。普段使う言葉でリソースを検索できます。複雑な構文を使用する必要はありません。
検索範囲
Dataplex Universal Catalog の検索結果には、ソースシステム内の対応するリソースに対する権限が適用されます。
たとえば、オブジェクトに対する BigQuery メタデータの読み取りアクセス権を持っている場合、そのオブジェクトは Dataplex Universal Catalog の検索結果に表示されます。BigQuery テーブルへのアクセス権はあるものの、そのテーブルを含むデータセットへのアクセス権がない場合、依然としてテーブルは Dataplex Universal Catalog の検索で想定どおりに表示されます。
デフォルトでは、検索の範囲は組織に限定されています。検索結果には、検索対象のプロジェクトと同じ組織のリソースのみが含まれます。
検索結果には、検索が実行されるプロジェクトと同じ VPC-SC 境界に属するリソースのみが表示されます。Google Cloud コンソールを使用する場合、これはコンソールで選択したプロジェクトです。
プロジェクトの VPC Service Controls 境界内のリソースを超えて検索結果の範囲を広げるには、VPC Service Controls の上り(内向き)と下り(外向き)のルールを使用します。これらのルールにより、組織全体で限定公開かつ効率的なデータ交換が可能になります。上り(内向き)ルールと下り(外向き)ルールは、Google Cloud コンソール、JSON ファイル、YAML ファイルのいずれかを使用して構成できます。次の YAML の例と VPC Service Controls のドキュメントを参照して、ルールを特定の要件に合わせて調整します。
egressPolicies:
  - egressFrom:
      identityType: ANY_USER_ACCOUNT
    egressTo:
      # Specify which resources should be present in the search results. In this example,
      # BigQuery.
      operations:
      - methodSelectors:
        - method: '*'
        serviceName: bigquery.googleapis.com
      # Specify project ids under which the search is performed.
      resources:
      - projects/SEARCH_PROJECT_ID
ingressPolicies:
  - ingressFrom:
      identityType: ANY_USER_ACCOUNT
      sources:
      - accessLevel: '*'
    ingressTo:
      # Specify which resources should be present in the search results. In this example,
      # BigQuery.
      operations:
      - methodSelectors:
        - method: '*'
        serviceName: bigquery.googleapis.com
      # Specify project ids to expose in search results.
      resources:
      - projects/INGRESS_PROJECT_ID
Dataplex Universal Catalog 検索に必要な Identity and Access Management ロールの詳細については、Dataplex Universal Catalog IAM ロールをご覧ください。
VPC Service Controls を使用して環境ごとに検索結果を分離する
開発環境、テスト環境、本番環境などの環境間で Dataplex Universal Catalog の検索結果を分離するには、各環境に個別の VPC Service Controls 境界を構成します。データアセットを含むプロジェクトと、検索の実行に使用されるプロジェクトの両方を、対応する環境の境界に割り当てます。特定の境界内のプロジェクトから実行された検索では、同じ境界内にあるアセットの結果のみが返されます。
検索での再現率の上限
Dataplex Universal Catalog の検索クエリは、完全な再現率を保証するものではありません。クエリに一致する結果が返されない場合があります。また、検索クエリを繰り返すと、返される結果(または返されない結果)が変わることがあります。
Dataplex Universal Catalog のメタデータをすべてクエリするには、メタデータを Cloud Storage にエクスポートしてから、BigQuery からクエリします。詳細については、メタデータをエクスポートするをご覧ください。
フィルタ
フィルタを使用すると、検索結果を絞り込むことができます。フィルタはキーワード検索と自然言語検索の両方で使用できますが、モードによって使用できるオプションが若干異なる場合があります。
複数のセクションでフィルタを指定すると、フィルタは AND 論理演算子を使用して評価されます。検索結果には、選択したすべてのセクションで 1 つ以上の条件に一致するリソースが含まれます。たとえば、BigQuery システムとデータセット リソースタイプを選択した場合、検索結果には BigQuery データセットが含まれますが、Vertex AI データセットは含まれません。
1 つのセクションで複数のフィルタを選択すると、それらは OR 論理演算子を使用して評価されます。たとえば、データセット リソースタイプとテーブル リソースタイプを選択すると、検索結果にはデータセットとテーブルの両方が含まれます。
キーワード検索フィルタ
キーワード検索の場合、フィルタは次のセクションにグループ化されます。
- [システム](BigQuery、Cloud SQL など)。Dataplex Universal Catalog システムにはカスタム エントリが含まれています。
- [アスペクト(タグ)] には、使用可能なすべてのアスペクトが一覧表示されます。
- [プロジェクト] には、使用可能なすべてのプロジェクトが一覧表示されます。
- [タイプ エイリアス] には、データベース、データセット、モデル、テーブル、ビュー、サービス、カスタムタイプなどのリソースタイプが記述されます。
- [データセット] の値は BigQuery から取得されます。
アスペクト値でフィルタする
[アスペクト] フィルタを使用することで、特定のテンプレートを使用してタグ付けされたアセットにクエリを実行できます。[カスタマイズ] メニューを使用することで、結果をさらに絞り込んだり、特定のアスペクト値でフィルタしたりできます。アスペクト値のフィルタ条件は、そのアスペクト フィールドのデータ型によって異なります。たとえば、datetime フィールドと number フィールドには、特定の日付または範囲を指定できます。
フィルタの可視性
[検索] フィールドの現在のクエリに応じて、[システム]、[タイプ エイリアス]、[プロジェクト]、[データセット] のフィルタが表示されます。
自然言語検索フィルタ
自然言語検索では、次のフィルタを使用できます。
- スコープ: 組織全体(デフォルト)、現在のプロジェクト、またはスター付きリソースのみを検索します。詳細については、このドキュメントの検索範囲のセクションをご覧ください。
- システム: リソースが属する Google Cloud サービス(BigQuery など)。Dataplex Universal Catalog システムにはエントリ グループが含まれています。
- プロジェクト: 検索するプロジェクト。
- タイプ: リソースタイプ(BigQuery 接続、Cloud Storage バケット、データベースなど)。リソースタイプによっては、接続タイプや SQL 言語などのサブタイプでフィルタすることもできます。
- ロケーションの選択: 検索するロケーション。
- データセットを選択します: 検索結果は、選択した BigQuery データセットに属する BigQuery リソースに制限されます。[フィルタ テキストを入力] フィールドに、データセットの名前を入力します。
- アスペクト タイプ: 検索対象のリソースに関連付けられている Dataplex Universal Catalog のアスペクト タイプ。アスペクト値でフィルタするには、[アノテーション値でフィルタ] をクリックし、値を選択します。
始める前に
検索を実行する前に、必要なロールが付与され、必要な API が有効になっていることを確認してください。
必要なロール
このセクションでは、リソースの検索と検索結果へのアクセスに必要なロールと権限について説明します。
ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
エントリの検索に必要なロール
エントリを検索するには、検索に使用されるプロジェクトで、Dataplex Catalog 管理者、Dataplex Catalog 編集者、または Dataplex Catalog 閲覧者のいずれかの IAM ロールが必要です。検索結果に対する権限は、選択したプロジェクトとは別にチェックされます。
検索結果にアクセスするために必要なロール
Dataplex Universal Catalog の検索結果は、ロールに応じてスコープが設定されます。Dataplex Universal Catalog でアセットを検索するには、ソースシステム内の対応するリソースにアクセスする権限が必要です。詳細については、このドキュメントの検索範囲をご覧ください。
たとえば、BigQuery のデータセット、テーブル、ビュー、モデルを検索するには、それらのエントリに対するそれぞれの権限が必要です。詳細については、BigQuery の権限をご覧ください。
次のリストに、最低限必要な権限を示します。
- テーブルを検索するには、そのテーブルに対する bigquery.tables.get権限が必要です。
- データセットを検索するには、そのデータセットに対する bigquery.datasets.get権限が必要です。
- データセットまたはテーブルのメタデータを検索するには、BigQuery メタデータ閲覧者のロール(roles/bigquery.metadataViewer)が必要です。
別の例として、Cloud SQL インスタンス、データベース、スキーマ、テーブル、ビューを検索するには、それらのエントリに対するそれぞれの権限が必要です。詳細については、Cloud SQL のロールと権限をご覧ください。
カスタム エントリを検索するには、Dataplex Catalog 閲覧者のロール(roles/dataplex.catalogViewer)が必要です。
API を有効にする
Enable the Dataplex API.
Roles required to enable APIs
          To enable APIs, you need the Service Usage Admin IAM
          role (roles/serviceusage.serviceUsageAdmin), which
          contains the serviceusage.services.enable permission. Learn how to grant
          roles.
        
リソースを検索
Console
リソースを検索する手順は次のとおりです。
- Google Cloud コンソールで、Dataplex Universal Catalog の [検索] ページに移動します。 
- [検索プラットフォームの選択] で、[Dataplex Universal Catalog] を選択します。 - [Dataplex Universal Catalog] を選択すると、Dataplex Universal Catalog のメタデータ ストレージを検索できます。既存の Data Catalog ユーザーの場合は、[Data Catalog] を選択すると、Data Catalog リポジトリを検索できます。 
- キーワード検索を使用する手順は次のとおりです。 - [プロジェクト全体でリソースを検索] フィールドにクエリを入力します。 
- 検索を絞り込むには、[フィルタ] パネルを使用します。使用可能なフィルタのリストについては、キーワード検索フィルタをご覧ください。 - 次のフィルタを手動で追加できます。 - プロジェクト フィルタを追加する: [プロジェクト] で、[プロジェクトを追加] をクリックします。特定のプロジェクトを検索して選択し、[開く] をクリックします。
- アスペクト タイプ フィルタを追加する: [アスペクト] で、[アスペクト タイプを追加] メニューをクリックします。特定のテンプレートを検索して選択し、[OK] をクリックします。
 
- 省略可: 使用可能なアセットだけでなく、[公開データセットを含める] を選択することで、 Google Cloud で一般公開されているリソースを検索できます。 - 検索クエリを作成するには、次のヒントを参考にしてください。 - スペースが含まれている場合は、検索式を引用符で囲みます。例: "search terms"
- キーワードの前に NOTを付けると、keyword:termフィルタの論理否定に一致します。ANDとORのブール演算子を使用して検索式を結合することもできます。AND、OR、NOT演算子の大文字と小文字は区別されません。
 - たとえば、 - NOT column:termは、指定された用語に一致するものを除くすべての列を一覧表示します。Dataplex Universal Catalog の検索式で使用できるキーワードとその他の用語のリストについては、検索構文をご覧ください。
- スペースが含まれている場合は、検索式を引用符で囲みます。例: 
 
- 自然言語検索を使用する手順は次のとおりです。 - [自然言語検索を試す] をクリックします。 
- [Find resources across projects with natural language] フィールドに自然言語でクエリを入力し、Enter キーを押します。 - 次のクエリはサンプルです。 - Show me the datasets that contain taxi information
- Find data on vaccine distribution across different countries
- Get tables with historical temperature data for major world cities
- Search for hurricane tracking and storm activity datasets
- Population data by country
 
- 検索を絞り込むには、[フィルタ] をクリックします。使用可能なフィルタのリストについては、自然言語検索フィルタをご覧ください。 
 
- 検索したリソースの詳細を表示するには、検索結果でリソース名をクリックします。エントリの詳細ページが開きます。 
gcloud
リソースを検索するには、gcloud dataplex entries search コマンドを使用します。
REST
リソースを検索するには、searchEntries メソッドを使用します。
エントリの詳細を表示する
コンソール
Dataplex Universal Catalog 検索を使用して、エントリの詳細を表示します。
- Dataplex Universal Catalog でエントリを検索します。 
- 検索結果で、詳細を表示するエントリをクリックします。 - [エントリの詳細] ページが開きます。このページには次のセクションがあります。 - エントリの詳細: エントリの種類、システム、プラットフォーム、完全修飾名、作成日時、最終更新日時、説明、スチュワードなどの情報が含まれます。
- 概要: エントリの概要(利用可能な場合)。
- アスペクト: エントリに定義された必須アスペクトとオプションのアスペクト。詳細については、アスペクトのカテゴリをご覧ください。
 
gcloud
エントリの詳細を表示するには、gcloud dataplex entries lookup コマンドを使用します。
REST
エントリの詳細を表示するには、lookupEntry メソッドを使用します。
制限事項
自然言語検索には次の制限があります。
- 自然言語検索は、最も関連性の高い結果を限定的に返すことで、検出と探索に最適化されています。一致するすべてのアイテムの完全なリストが提供されない可能性があるため、キュレーション パイプラインなど、これに依存するワークロードには適していない可能性があります。 
- 自然言語検索では、スキーマ、説明、アスペクトなどのリソース メタデータのみが考慮されます。テーブル内のデータに関する質問(「先月の売上高はいくらでしたか?」など)に回答したり、メタデータに対して分析クエリ(「データセット X にはテーブルがいくつありますか?」など)を実行したりすることはありません。 
- 一般公開リソースは自然言語検索の対象外です。 
次のステップ
- Dataplex Universal Catalog の検索構文を理解する。
- Dataplex Universal Catalog のメタデータ管理の詳細を確認する。
- アスペクトを使用してメタデータでエントリを拡充する方法を確認する。
- エントリの管理方法とカスタムソースを取り込む方法を学習する。