Cloud SQL からデータを取り込むには、次の手順で Cloud SQL へのアクセスを設定し、データストアを作成してデータを取り込みます。
Cloud SQL インスタンスのステージング バケットへのアクセスを設定する
Cloud SQL からデータを取り込む場合、データは最初に Cloud Storage バケットにステージングされます。Cloud SQL インスタンスに Cloud Storage バケットへのアクセス権を付与する手順は次のとおりです。
Google Cloud コンソールで、[SQL] ページに移動します。
インポート元の Cloud SQL インスタンスをクリックします。
メールアドレスのようなインスタンスのサービス アカウントの ID(例:
p9876-abcd33f@gcp-sa-cloud-sql.iam.gserviceaccount.com
)をコピーします。[IAM と管理] ページに移動
[アクセス権を付与] をクリックします。
[新しいプリンシパル] で、インスタンスのサービス アカウント ID を入力し、[Cloud Storage] > [ストレージ管理者] ロールを選択します。
[保存] をクリックします。
次は:
Cloud SQL データが Gemini Enterprise と同じプロジェクトにある場合: Cloud SQL からデータをインポートするに移動します。
Cloud SQL データが Gemini Enterprise プロジェクトとは異なるプロジェクトにある場合: 別のプロジェクトから Cloud SQL へのアクセスを設定するに進みます。
別のプロジェクトから Cloud SQL へのアクセスを設定する
別のプロジェクトにある Cloud SQL データに Gemini Enterprise がアクセスできるようにする手順は次のとおりです。
次の
PROJECT_NUMBER
変数を Gemini Enterprise プロジェクト番号に置き換えてから、コードブロックの内容をコピーします。これは Gemini Enterprise サービス アカウントの識別子です。service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
[IAM と管理] ページに移動します。
[IAM と管理] ページで Cloud SQL プロジェクトに切り替え、[アクセス権を付与] をクリックします。
[新しいプリンシパル] で、サービス アカウントの ID を入力し、[Cloud SQL] > [Cloud SQL 閲覧者] ロールを選択します。
[保存] をクリックします。
次に、Cloud SQL からデータをインポートするに進みます。
Cloud SQL からデータをインポートする
Console
コンソールを使用して Cloud SQL からデータを読み込む手順は次のとおりです。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
[データストア] ページに移動します。
[データストアを作成] をクリックします。
[データソースを選択] ページで、[Cloud SQL] を選択します。
インポートするデータのプロジェクト ID、インスタンス ID、データベース ID、テーブル ID を指定します。
[参照] をクリックして、データのエクスポート先となる中間 Cloud Storage のロケーションを選択し、[選択] をクリックします。または、[
gs://
] フィールドにロケーションを直接入力します。サーバーレス エクスポートを有効にするかどうかを選択します。サーバーレス エクスポートには追加料金が発生します。サーバーレス エクスポートについては、Cloud SQL ドキュメントのエクスポートのパフォーマンスへの影響を最小限に抑えるをご覧ください。
[続行] をクリックします。
データストアのリージョンを選択します。
データストアの名前を入力します。
[作成] をクリックします。
取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。 [アクティビティ] タブのステータス列が [進行中] から [インポート完了] に変わると、取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
REST
コマンドラインを使用してデータストアを作成し、Cloud SQL からデータを取り込む手順は次のとおりです。
データストアを作成します。
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 コンソールに表示されることがあります。
Cloud SQL からデータをインポートします。
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 '{ "cloudSqlSource": { "projectId": "SQL_PROJECT_ID", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "tableId": "TABLE_ID", "gcsStagingDir": "STAGING_DIRECTORY" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
次のように置き換えます。
PROJECT_ID
: Gemini Enterprise プロジェクトの ID。DATA_STORE_ID
: データストアの ID。ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。SQL_PROJECT_ID
: Cloud SQL プロジェクトの ID。INSTANCE_ID
: Cloud SQL インスタンスの ID。DATABASE_ID
: Cloud SQL データベースの ID。TABLE_ID
: Cloud SQL テーブルの ID。STAGING_DIRECTORY
: 省略可。Cloud Storage ディレクトリ(例:gs://<your-gcs-bucket>/directory/import_errors
)。RECONCILIATION_MODE
: 省略可。値はFULL
、およびINCREMENTAL
です。デフォルトはINCREMENTAL
です。INCREMENTAL
を指定すると、Cloud SQL からデータストアへのデータの増分更新が行われます。これにより、アップサート オペレーションが実行され、新しいドキュメントを追加し、既存のドキュメントを更新された同じ ID のドキュメントで置き換えます。FULL
を指定すると、データストア内のドキュメントが完全に再ベース化されます。つまり、新しいドキュメントと更新されたドキュメントがデータストアに追加され、Cloud SQL にないドキュメントがデータストアから削除されます。FULL
モードは、不要になったドキュメントを自動的に削除する場合に便利です。
次のステップ
データストアをアプリに接続するには、検索アプリを作成するの手順に沿ってアプリを作成し、データストアを選択します。
アプリとデータストアが設定された後に検索結果がどのように表示されるかをプレビューするには、検索結果をプレビューするをご覧ください。