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 からデータを読み込むには、次の手順を行います。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
[データストア] ページに移動します。
[データストアを作成] をクリックします。
[データソースの選択] ページで、[BigQuery] を選択します。
インポートするデータの種類を選択します。
[1 回限り] をクリックします。
[BigQuery のパス] フィールドで [参照] をクリックし、取り込み用に準備したテーブルを選択して、[選択] をクリックします。 または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。
[続行] をクリックします。
構造化データを 1 回限りインポートする場合:
フィールドをキープロパティにマッピングします。
スキーマに重要なフィールドが欠落している場合は、[新しいフィールドを追加] を使用して追加します。
詳しくは、自動検出と編集についてをご覧ください。
[続行] をクリックします。
データストアのリージョンを選択します。
データストアの名前を入力します。
[作成] をクリックします。
取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。 [アクティビティ] タブのステータス列が「処理中」から「インポート完了」に変わると、取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
REST
コマンドラインを使用してデータストアを作成し、BigQuery からデータをインポートする手順は次のとおりです。
データストアを作成します。
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 パーサーを構成することをおすすめします。解析オプションまたはチャンク処理オプションの構成方法については、ドキュメントの解析とチャンク化をご覧ください。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権限を付与します。
- BigQuery テーブルが
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 からデータストアへのデータの増分更新が行われます。これにより、upsert オペレーションが行われ、新しいドキュメントが追加され、既存のドキュメントが更新された同じ ID のドキュメントで置き換えられます。FULLを指定すると、データストア内のドキュメントが完全にリベースされます。つまり、新しいドキュメントと更新されたドキュメントがデータストアに追加され、BigQuery にないドキュメントはデータストアから削除されます。FULLモードは、不要になったドキュメントを自動的に削除する場合に便利です。AUTO_GENERATE_IDS: 省略可。ドキュメント ID を自動的に生成するかどうかを指定します。trueに設定すると、ペイロードのハッシュに基づいてドキュメント ID が生成されます。生成されたドキュメント ID は、複数のインポートで一貫性が保たれない場合があります。複数のインポートで ID を自動生成する場合は、ドキュメント ID の整合性を維持するために、reconciliationModeをFULLに設定することを強くおすすめします。autoGenerateIdsは、bigquerySource.dataSchemaがcustomに設定されている場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENTエラーが返されます。autoGenerateIdsを指定しない場合、またはfalseに設定する場合は、idFieldを指定する必要があります。そうしないと、ドキュメントのインポートに失敗します。ID_FIELD: 省略可。ドキュメント ID のフィールドを指定します。BigQuery ソースファイルの場合、idFieldは、ドキュメント ID を含む BigQuery テーブルの列の名前を示します。idFieldは、(1)bigquerySource.dataSchemaがcustomに設定されている、および(2)auto_generate_idsがfalseに設定されているか、未設定の場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENTエラーが返されます。BigQuery 列名の値は文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。
定期的な同期で BigQuery に接続する
データをインポートする前に、取り込むデータを準備します。
次の手順では、BigQuery データセットからデータを定期的に同期する BigQuery データストアを作成する方法について説明します。データセットに複数のテーブルがある場合は、作成する BigQuery データストアに追加できます。追加する各テーブルはエンティティと呼ばれます。Gemini Enterprise は、エンティティごとに個別のデータストアを作成します。そのため、 Google Cloud コンソールを使用してデータストアを作成すると、取り込まれたデータ エンティティを表すデータストアのコレクションが作成されます。
データセットのデータは、エンティティ データストアに定期的に同期されます。同期は、毎日、3 日ごと、5 日ごとに指定できます。
コンソール
BigQuery データセットから Gemini Enterprise にデータを定期的に同期するデータストアを作成する手順は次のとおりです。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
[データストアを作成] をクリックします。
[ソース] ページで、[BigQuery] を選択します。
インポートするデータの種類を選択します。
[定期的] をクリックします。
[同期頻度] で、Gemini Enterprise コネクタが BigQuery データセットと同期する頻度を選択します。頻度は後で変更できます。
[BigQuery データセットのパス] フィールドで、[参照] をクリックし、取り込み用に準備したテーブルを含むデータセットを選択します。または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。パスの形式は
projectname.datasetnameです。[同期するテーブル] フィールドで、[参照] をクリックし、データストアに必要なデータを含むテーブルを選択します。
データストアに使用する別のテーブルがデータセット内にある場合は、[テーブルを追加] をクリックして、それらのテーブルも指定します。
[続行] をクリックします。
データストアのリージョンを選択し、データコネクタの名前を入力して、[作成] をクリックします。
これで、データコネクタが作成され、データが定期的に BigQuery データセットと同期されるようになります。また、1 つ以上のエンティティ データストアを作成しています。データストアの名前は BigQuery テーブルと同じです。
取り込みのステータスを確認するには、[データストア] ページに移動し、データコネクタ名をクリックして、[データ] ページ > [データの取り込みアクティビティ] タブで詳細を表示します。[アクティビティ] タブのステータス列が [処理中] から [成功] に変わると、最初の取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
データソースを設定してデータを初めてインポートすると、データストアは設定時に選択した頻度でそのソースからデータを同期します。データコネクタの作成から約 1 時間後に、最初の同期が行われます。 次の同期は、約 24 時間後、72 時間後、120 時間後のいずれかに行われます。
次のステップ
データストアをアプリに接続するには、検索アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。
アプリとデータストアが設定された後に検索結果がどのように表示されるかをプレビューするには、検索結果をプレビューするをご覧ください。