このページでは、構造化データと非構造化データの更新について説明します。
ウェブサイト アプリを更新するには、ウェブページを更新するをご覧ください。
構造化データを更新する
構造化データストアのスキーマと同じスキーマまたはデータストアのスキーマと下位互換性のあるスキーマを使用している限り、構造化データストアのデータを更新できます。たとえば、既存のスキーマに新しいフィールドのみを追加することは、下位互換性があります。
構造化データは、 Google Cloud コンソールまたは API を使用して更新できます。
コンソール
Google Cloud コンソールを使用してデータストアのブランチから構造化データを更新する手順は次のとおりです。
Google Cloud コンソールで、[AI Applications] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
[名前] 列で、編集するデータストアをクリックします。
[ドキュメント] タブで、 [データをインポート] をクリックします。
Cloud Storage から更新するには:
- [データソースを選択] ペインで、[Cloud Storage] を選択します。
- [Cloud Storage からデータをインポート] ペインで、[参照] をクリックし、更新されたデータを含むバケットを選択して、[選択] をクリックします。または、[gs://] フィールドにバケットの場所を直接入力します。
- [データ インポートのオプション] で、インポート オプションを選択します。
- [インポート] をクリックします。
BigQuery から更新するには:
- [データソースを選択] ペインで、[BigQuery] を選択します。
- [BigQuery からデータをインポート] ペインで、[参照] をクリックし、更新されたデータを含むテーブルを選択して、[選択] をクリックします。または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。
- [データ インポートのオプション] で、インポート オプションを選択します。
- [インポート] をクリックします。
REST
documents.import メソッドを使用して、適切な reconciliationMode 値を指定してデータを更新します。
コマンドラインを使用して BigQuery または Cloud Storage から構造化データを更新する手順は次のとおりです。
データストア ID を確認します。データストア ID がすでにある場合は、次のステップに進みます。
Google Cloud コンソールで、[AI アプリケーション] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。
BigQuery から構造化データをインポートするには、次のメソッドを呼び出します。BigQuery または Cloud Storage からインポートできます。Cloud Storage からインポートするには、次のステップに進みます。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/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_BQ", }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": AUTO_GENERATE_IDS, "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID: Vertex AI Search データストアの ID。DATASET_ID: BigQuery データセットの名前。TABLE_ID: BigQuery テーブルの名前。DATA_SCHEMA_BQ: BigQuery ソースからデータを解析するときに使用するスキーマを指定する省略可能なフィールド。次のいずれかの値を取ります。document: デフォルト値。使用する BigQuery テーブルは、次のデフォルトの BigQuery スキーマに準拠している必要があります。json_data文字列でデータ全体をラップしながら、各ドキュメントの ID を自分で定義できます。custom: 任意の BigQuery テーブル スキーマが受け入れられ、Vertex AI Search はインポートされる各ドキュメントの ID を自動的に生成します。
ERROR_DIRECTORY: インポートに関するエラー情報用の Cloud Storage ディレクトリを指定するオプション フィールド(gs://<your-gcs-bucket>/directory/import_errorsなど)。Vertex AI Search に一時ディレクトリを自動的に作成させるには、このフィールドを空のままにすることをおすすめします。RECONCILIATION_MODE: インポートされたドキュメントを宛先データストア内の既存のドキュメントと調整する方法を指定するオプション フィールド。次のいずれかの値を取ります。INCREMENTAL: デフォルト値。BigQuery からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ 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は、次の両方の条件が満たされている場合にのみ指定します。それ以外の場合は、INVALID_ARGUMENTエラーが返されます。bigquerySource.dataSchemaはcustomに設定されていますauto_generate_idsがfalseに設定されているか、未指定です。
また、BigQuery 列名の値は文字列型で、1 から 63 文字の範囲で、RFC-1034 に準拠している必要があります。そうしないと、ドキュメントのインポートに失敗します。
デフォルトの BigQuery スキーマは次のとおりです。
dataSchemaをdocumentに設定する場合は、BigQuery テーブルがこのスキーマに準拠している必要があります。[ { "name": "id", "mode": "REQUIRED", "type": "STRING", "fields": [] }, { "name": "jsonData", "mode": "NULLABLE", "type": "STRING", "fields": [] } ]Cloud Storage から構造化データをインポートするには、次のメソッドを呼び出します。 BigQuery または Cloud Storage からインポートできます。BigQuery からインポートするには、前の手順に移動します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \ -d '{ "gcsSource": { "inputUris": ["GCS_PATHS"], "dataSchema": "DATA_SCHEMA_GCS", }, "reconciliationMode": "RECONCILIATION_MODE", "idField": "ID_FIELD", "errorConfig": { "gcsPrefix": "ERROR_DIRECTORY" } }'次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。DATA_STORE_ID: Vertex AI Search データストアの ID。GCS_PATHS: インポート元の Cloud Storage ロケーションの URI のカンマ区切りのリスト。各 URI の長さは 2,000 文字までです。URI は、ストレージ オブジェクトのフルパスに一致することも、1 つ以上のオブジェクトのパターンに一致することもできます。たとえば、gs://bucket/directory/*.jsonは有効なパスです。DATA_SCHEMA_GCS: BigQuery ソースからデータを解析するときに使用するスキーマを指定する省略可能なフィールド。次のいずれかの値を取ります。document: デフォルト値。使用する BigQuery テーブルは、次のデフォルトの BigQuery スキーマに準拠している必要があります。json_data文字列でデータ全体をラップしながら、各ドキュメントの ID を自分で定義できます。custom: 任意の BigQuery テーブル スキーマが受け入れられ、Vertex AI Search はインポートされる各ドキュメントの ID を自動的に生成します。
ERROR_DIRECTORY: インポートに関するエラー情報用の Cloud Storage ディレクトリを指定するオプション フィールド(gs://<your-gcs-bucket>/directory/import_errorsなど)。Vertex AI Search に一時ディレクトリを自動的に作成させるには、このフィールドを空のままにすることをおすすめします。RECONCILIATION_MODE: インポートされたドキュメントを宛先データストア内の既存のドキュメントと調整する方法を指定するオプション フィールド。次のいずれかの値を取ります。INCREMENTAL: デフォルト値。BigQuery からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL: データストア内のドキュメントが完全に再ベース化されます。 そのため、新しいドキュメントと更新されたドキュメントがデータストアに追加され、BigQuery にないドキュメントがデータストアから削除されます。FULLモードは、不要になったドキュメントを自動的に削除する場合に便利です。
Python
詳細については、Vertex AI Search Python API のリファレンス ドキュメントをご覧ください。
Vertex AI Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
非構造化データを更新する
非構造化データは、 Google Cloud コンソールまたは API を使用して更新できます。
コンソール
Google Cloud コンソールを使用してデータストアのブランチから非構造化データを更新する手順は次のとおりです。
Google Cloud コンソールで、[AI Applications] ページに移動します。
ナビゲーション メニューで [データストア] をクリックします。
[名前] 列で、編集するデータストアをクリックします。
[ドキュメント] タブで、 [データをインポート] をクリックします。
Cloud Storage バケットから取り込むには(メタデータの有無を問わず):
- [データソースを選択] ペインで、[Cloud Storage] を選択します。
- [Cloud Storage からデータをインポート] ペインで、[参照] をクリックし、更新されたデータを含むバケットを選択して、[選択] をクリックします。または、[gs://
gs://] フィールドにバケットの場所を直接入力します。 - [データ インポートのオプション] で、インポート オプションを選択します。
- [インポート] をクリックします。
BigQuery から取り込むには:
- [データソースを選択] ペインで、[BigQuery] を選択します。
- [BigQuery からデータをインポート] ペインで、[参照] をクリックし、更新されたデータを含むテーブルを選択して、[選択] をクリックします。または、[BigQuery パス] フィールドにテーブルの場所を直接入力します。
- [データ インポートのオプション] で、インポート オプションを選択します。
- [インポート] をクリックします。
REST
API を使用して非構造化データを更新するには、適切な reconciliationMode 値を指定して documents.import メソッドを使用して再インポートします。非構造化データのインポートの詳細については、非構造化データをご覧ください。
Python
詳細については、Vertex AI Search Python API のリファレンス ドキュメントをご覧ください。
Vertex AI Search に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。