BigQuery からインポート

BigQuery テーブルからデータストアを作成するには、次の 2 つの方法があります。

  • 1 回限りの取り込み: BigQuery テーブルからデータストアにデータをインポートします。データストア内のデータは、手動でデータを更新しない限り変更されません。

  • 定期的な取り込み: 1 つ以上の BigQuery テーブルからデータをインポートし、同期の頻度を設定します。この頻度によって、BigQuery データセットの最新データでデータストアが更新される頻度が決まります。

次の表に、BigQuery データを Gemini Enterprise データストアにインポートする 2 つの方法を比較します。

1 回限りの取り込み 定期的な取り込み
一般提供(GA)。 公開プレビュー版。
データは手動で更新する必要があります。 データは 1 日、3 日、5 日ごとに自動的に更新されます。データを手動で更新することはできません。
Gemini Enterprise は、BigQuery の 1 つのテーブルから単一のデータストアを作成します。 Gemini Enterprise は、指定された各テーブルに対して、BigQuery データセットとデータストア(エンティティ データストア)のデータコネクタを作成します。各データコネクタで、テーブルのデータ型(構造化など)が同じで、同じ BigQuery データセットに存在する必要があります。
複数のテーブルのデータを 1 つのデータストアに結合するには、まず 1 つのテーブルからデータを取り込み、次に別のソースまたは BigQuery テーブルからデータを取り込みます。 手動でのデータ インポートはサポートされていないため、エンティティ データストアのデータは 1 つの BigQuery テーブルからのみ取得できます。
データソースへのアクセス制御がサポートされています。 データソースのアクセス制御はサポートされていません。インポートされたデータにはアクセス制御を含めることができますが、これらの制御は適用されません。
データストアは、Google Cloud コンソールまたは API を使用して作成できます。 コンソールを使用して、データ コネクタとそのエンティティ データストアを作成する必要があります。
CMEK 準拠。 CMEK 準拠。

BigQuery から 1 回インポートする

BigQuery テーブルからデータを取り込むには、次の手順でデータストアを作成し、 Google Cloud コンソールまたは API を使用してデータを取り込みます。

データをインポートする前に、取り込むデータを準備します

コンソール

Google Cloud コンソールを使用して BigQuery からデータを読み込むには、次の手順を行います。

  1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

    Gemini Enterprise

  2. [データストア] ページに移動します。

  3. [データストアを作成] をクリックします。

  4. [データソースの選択] ページで、[BigQuery] を選択します。

  5. インポートするデータの種類を選択します。

  6. [1 回限り] をクリックします。

  7. [BigQuery のパス] フィールドで [参照] をクリックし、取り込み用に準備したテーブルを選択して、[選択] をクリックします。 または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。

  8. [続行] をクリックします。

  9. 構造化データを 1 回限りでインポートする場合:

    1. フィールドをキー プロパティにマッピングします。

    2. スキーマに重要なフィールドが欠落している場合は、[新しいフィールドを追加] を使用して追加します。

      詳しくは、自動検出と編集についてをご覧ください。

    3. [続行] をクリックします。

  10. データストアのリージョンを選択します。

  11. データストアの名前を入力します。

  12. [作成] をクリックします。

  13. 取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。 [アクティビティ] タブのステータス列が [進行中] から [インポート完了] に変わると、取り込みが完了します。

    取り込みには、データのサイズに応じて、数分から数時間かかることがあります。

REST

コマンドラインを使用してデータストアを作成し、BigQuery からデータをインポートする手順は次のとおりです。

  1. データストアを作成します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    次のように置き換えます。

    • PROJECT_ID: 実際のプロジェクトの ID。
    • DATA_STORE_ID: 作成するデータストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。
    • DATA_STORE_DISPLAY_NAME: 作成するデータストアの表示名。

    省略可: 非構造化データをアップロードし、ドキュメント解析を構成するか、RAG のドキュメント チャンキングを有効にする場合は、documentProcessingConfig オブジェクトを指定して、データストアの作成リクエストに含めます。スキャンされた PDF を取り込む場合は、PDF 用の OCR パーサーを構成することをおすすめします。解析オプションまたはチャンク処理オプションの構成方法については、ドキュメントの解析とチャンク化をご覧ください。

  2. BigQuery からデータをインポートします。

    スキーマを定義した場合は、データがそのスキーマに準拠していることを確認してください。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID",
        "dataSchema": "DATA_SCHEMA",
        "aclEnabled": "BOOLEAN"
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": "AUTO_GENERATE_IDS",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    次のように置き換えます。

    • PROJECT_ID: 実際のプロジェクトの ID。
    • DATA_STORE_ID: データストアの ID。
    • DATASET_ID: BigQuery データセットの ID。
    • TABLE_ID: BigQuery テーブルの ID。
      • BigQuery テーブルが PROJECT_ID にない場合は、サービス アカウント service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com に BigQuery テーブルに対する「BigQuery データ閲覧者」権限を付与する必要があります。たとえば、ソース プロジェクト「123」から宛先プロジェクト「456」に BigQuery テーブルをインポートする場合は、プロジェクト「123」の BigQuery テーブルに対する service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com 権限を付与します。
    • DATA_SCHEMA: 省略可。値は document および custom です。デフォルトは document です。
      • document: 使用する BigQuery テーブルは、取り込み用にデータを準備するで提供されているデフォルトの BigQuery スキーマに準拠している必要があります。jsonData 文字列にすべてのデータをラップしながら、各ドキュメントの ID を自分で定義できます。
      • custom: 任意の BigQuery テーブル スキーマが受け入れられ、Gemini Enterprise はインポートされる各ドキュメントの ID を自動的に生成します。
    • ERROR_DIRECTORY: 省略可。インポートに関するエラー情報用の Cloud Storage ディレクトリ(例: gs://<your-gcs-bucket>/directory/import_errors)。Gemini Enterprise に一時ディレクトリを自動的に作成させるには、この項目を空のままにすることをおすすめします。
    • RECONCILIATION_MODE: 省略可。値は FULL および INCREMENTAL です。デフォルトは INCREMENTAL です。INCREMENTAL を指定すると、BigQuery からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL を指定すると、データストア内のドキュメントが完全に再ベース化されます。つまり、新しいドキュメントと更新されたドキュメントがデータストアに追加され、BigQuery にないドキュメントがデータストアから削除されます。FULL モードは、不要になったドキュメントを自動的に削除する場合に便利です。
    • AUTO_GENERATE_IDS: 省略可。ドキュメント ID を自動的に生成するかどうかを指定します。true に設定すると、ドキュメント ID はペイロードのハッシュに基づいて生成されます。生成されたドキュメント ID は、複数のインポートで一貫性が保たれない場合があります。複数のインポートで ID を自動生成する場合は、ドキュメント ID の整合性を維持するために、reconciliationModeFULL に設定することを強くおすすめします。

      autoGenerateIds は、bigquerySource.dataSchemacustom に設定されている場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT エラーが返されます。autoGenerateIds を指定しない場合、または false に設定する場合は、idField を指定する必要があります。そうしないと、ドキュメントのインポートに失敗します。

    • ID_FIELD: 省略可。ドキュメント ID のフィールドを指定します。 BigQuery ソースファイルの場合、idField はドキュメント ID を含む BigQuery テーブルの列の名前を示します。

      idField は、(1)bigquerySource.dataSchemacustom に設定されている、および(2)auto_generate_idsfalse に設定されているか、未設定の場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENT エラーが返されます。

      BigQuery 列名の値は文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。

定期的な同期で BigQuery に接続する

データをインポートする前に、取り込むデータを準備します

次の手順では、BigQuery データセットからデータを定期的に同期する BigQuery データストアを作成する方法について説明します。データセットに複数のテーブルがある場合は、作成中の BigQuery データストアに追加できます。追加する各テーブルはエンティティと呼ばれます。Gemini Enterprise は、エンティティごとに個別のデータストアを作成します。そのため、 Google Cloud コンソールを使用してデータストアを作成すると、取り込まれたデータエンティティを表すデータストアのコレクションが作成されます。

データセットのデータは、エンティティ データストアに定期的に同期されます。同期は、毎日、3 日ごと、5 日ごとに指定できます。

コンソール

BigQuery データセットから Gemini Enterprise にデータを定期的に同期するデータストアを作成する手順は次のとおりです。

  1. Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。

    Gemini Enterprise

  2. ナビゲーション メニューで [データストア] をクリックします。

  3. [データストアを作成] をクリックします。

  4. [ソース] ページで、[BigQuery] を選択します。

  5. インポートするデータの種類を選択します。

  6. [Periodic] をクリックします。

  7. [同期頻度] で、Gemini Enterprise コネクタが BigQuery データセットと同期する頻度を選択します。頻度は後で変更できます。

  8. [BigQuery データセットのパス] フィールドで、[参照] をクリックし、取り込み用に準備したテーブルを含むデータセットを選択します。または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。パスの形式は projectname.datasetname です。

  9. [同期するテーブル] フィールドで、[参照] をクリックし、データストアに必要なデータを含むテーブルを選択します。

  10. データストアに使用する別のテーブルがデータセット内にある場合は、[テーブルを追加] をクリックして、それらのテーブルも指定します。

  11. [続行] をクリックします。

  12. データストアのリージョンを選択し、データコネクタの名前を入力して、[作成] をクリックします。

    これで、データコネクタが作成され、BigQuery データセットと定期的にデータを同期するようになります。また、1 つ以上のエンティティ データストアを作成している。データストアの名前は BigQuery テーブルと同じです。

  13. 取り込みのステータスを確認するには、[データストア] ページに移動し、データコネクタ名をクリックして、[データ] ページ > [データ取り込みアクティビティ] タブで詳細を表示します。[アクティビティ] タブのステータス列が [進行中] から [成功] に変わると、最初の取り込みが完了します。

    取り込みには、データのサイズに応じて、数分から数時間かかることがあります。

データソースを設定してデータを初めてインポートすると、データストアは設定時に選択した頻度でそのソースからデータを同期します。 データコネクタの作成から約 1 時間後に、最初の同期が行われます。 次の同期は、約 24 時間後、72 時間後、120 時間後のいずれかに行われます。

次のステップ

  • データストアをアプリに接続するには、検索アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。

  • アプリとデータストアが設定された後に検索結果がどのように表示されるかをプレビューするには、検索結果をプレビューするをご覧ください。