Bigtable からインポートする

Bigtable からデータを取り込むには、次の手順でデータストアを作成し、API を使用してデータを取り込みます。

Bigtable へのアクセスを設定する

別のプロジェクトにある Bigtable データへのアクセス権を Gemini Enterprise に付与する手順は次のとおりです。

  1. 次の PROJECT_NUMBER 変数を Gemini Enterprise プロジェクト番号に置き換えてから、このコードブロックの内容をコピーします。これは Gemini Enterprise サービス アカウントの識別子です。

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
    
  2. [IAM と管理] ページに移動します。

    IAM と管理

  3. [IAM と管理] ページで Bigtable プロジェクトに切り替え、[アクセス権を付与] をクリックします。

  4. [新しいプリンシパル] で、インスタンスのサービス アカウント ID を入力し、[Bigtable] > [Bigtable Reader] ロールを選択します。

  5. [保存] をクリックします。

  6. Gemini Enterprise プロジェクトに戻ります。

次に、Bigtable からデータをインポートするに進みます。

Bigtable からデータをインポートする

REST

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

  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/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
    }'
    

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

    • PROJECT_ID: 実際のプロジェクトの ID。
    • DATA_STORE_ID: データストアの ID。ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。
    • DISPLAY_NAME: データストアの表示名。これは Google Cloud コンソールに表示されることがあります。
  2. Bigtable からデータをインポートします。

      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 '{
        "bigtableSource ": {
          "projectId": "BIGTABLE_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "tableId": "TABLE_ID",
          "bigtableOptions": {
            "keyFieldName": "KEY_FIELD_NAME",
            "families": {
              "key": "KEY",
              "value": {
                "fieldName": "FIELD_NAME",
                "encoding": "ENCODING",
                "type": "TYPE",
                "columns": [
                  {
                    "qualifier": "QUALIFIER",
                    "fieldName": "FIELD_NAME",
                    "encoding": "COLUMN_ENCODING",
                    "type": "COLUMN_VALUES_TYPE"
                  }
                ]
              }
             }
             ...
          }
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

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

    • PROJECT_ID: Gemini Enterprise プロジェクトの ID。
    • DATA_STORE_ID: データストアの ID。ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。
    • BIGTABLE_PROJECT_ID: Bigtable プロジェクトの ID。
    • INSTANCE_ID: Bigtable インスタンスの ID。
    • TABLE_ID: Bigtable テーブルの ID。
    • KEY_FIELD_NAME: 省略可能ですが、指定することをおすすめします。Gemini Enterprise に取り込んだ後に、行キー値に使用するフィールド名。
    • KEY: 必須。列ファミリー キーの文字列値。
    • ENCODING: 省略可。型が STRING でない場合の値のエンコード モード。これは、columns に列を一覧表示して、エンコードを指定することによって、特定の列に対してオーバーライドできます。
    • COLUMN_TYPE: 省略可。この列ファミリーの値の型。
    • QUALIFIER: 必須。列の修飾子。
    • FIELD_NAME: 省略可能ですが、指定することをおすすめします。Gemini Enterprise に取り込んだ後、この列に使用するフィールド名。
    • COLUMN_ENCODING: 省略可。型が STRING でない場合の特定の列の値のエンコード モード。
    • RECONCILIATION_MODE: 省略可。値は FULL、および INCREMENTAL です。デフォルトは INCREMENTAL です。INCREMENTAL を指定すると、Bigtable からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL を指定すると、データストア内のドキュメントが完全に再ベース化されます。つまり、新しいドキュメントと更新されたドキュメントがデータストアに追加され、Bigtable にないドキュメントがデータストアから削除されます。FULL モードは、不要になったドキュメントを自動的に削除する場合に便利です。
    • AUTO_GENERATE_IDS: 省略可。ドキュメント ID を自動的に生成するかどうかを指定します。true に設定すると、ペイロードのハッシュに基づいてドキュメント ID が生成されます。生成されたドキュメント ID は、複数のインポートで一貫性が保たれない場合があります。複数のインポートで ID を自動生成する場合は、ドキュメント ID の整合性を維持するために、reconciliationModeFULL に設定することを強くおすすめします。

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

    • ID_FIELD: 省略可。ドキュメント ID のフィールドを指定します。

次のステップ

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

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