このページでは、メディア用のデータストアを作成して、データをインポートする方法について説明します。
始める前に
次の処理を行っていることを確認してください。
メディアデータとスキーマに関連するコンセプトを確認します。
独自のスキーマを使用している場合は、スキーマに メディア キー プロパティ(
title
、url
、category
など)に適切にマッピングされるフィールドがあることを確認してください。メディア ドキュメントを JSON スキーマに配置し、データを BigQuery または Cloud Storage にアップロードします。
ユーザー イベントについてを確認し、インポートするユーザー イベントを準備します。ユーザー イベントは、メディアのレコメンデーションに必須で、メディアの検索に推奨されます。
データソースに応じて手順を選択する
メディア データストアを作成してドキュメントをインポートするには、使用する予定のソースのセクションに移動します。
BigQuery からインポート
Console
Google Cloud コンソールを使用してメディア データストアを作成し、BigQuery からドキュメントとユーザー イベントをインポートする手順は次のとおりです。
Google Cloud コンソールで、[Agent Builder] ページに移動します。
[データストア] ページに移動します。
[データストアを作成] をクリックします。
[ソース] ページで、[BigQuery] を選択します。
インポートするデータの種類として [メディア - 構造化メディアデータを含む BigQuery テーブル] を選択します。
[BigQuery パス] フィールドで [参照] をクリックし、取り込み用に準備した BigQuery データを選択して、[選択] をクリックします。 または、[BigQuery パス] フィールドにロケーションを直接入力します。
データが事前定義された Google スキーマにある場合は、[Google の事前定義スキーマ] を選択し、[続行] をクリックしてステップ 11 に進みます。
データが独自のスキーマにある場合は、[カスタム スキーマ] を選択し、[続行] をクリックします。
検出されたスキーマを確認し、[キー プロパティ] メニューを使用して、スキーマ フィールドにプロパティを割り当てます。
[続行] をクリックします。
必要なキー プロパティがマッピングされるまで、続行できません。マッピングが完了すると、オレンジ色の警告マーク
ではなく、緑色のチェックマーク が表示されます。データストアの名前を入力し、[作成] をクリックします。
Cloud Storage からインポートする
Console
Google Cloud コンソールを使用してメディア データストアを作成し、Cloud Storage からドキュメントをインポートする手順は次のとおりです。
Google Cloud コンソールで、[Agent Builder] ページに移動します。
[データストア] ページに移動します。
[データストアを作成] をクリックします。
[ソース] ページで、[Cloud Storage] を選択します。
インポートするデータの種類として [構造化メディアデータ(メディア ファイルを含む JSONL)] を選択します。
[インポートするフォルダまたはファイルを選択] セクションで、[フォルダ] または [ファイル] を選択します。
[参照] をクリックして、取り込み用に準備したデータを選択し、[選択] をクリックします。または、[
gs://
] フィールドにロケーションを直接入力します。データが事前定義された Google スキーマにある場合は、[Google の事前定義スキーマ] を選択し、[続行] をクリックしてステップ 11 に進みます。
データが独自のスキーマにある場合は、[カスタム スキーマ] を選択し、[続行] をクリックします。
検出されたスキーマを確認し、[キー プロパティ] メニューを使用して、スキーマ フィールドにプロパティを割り当てます。
[続行] をクリックします。
必要なキー プロパティがマッピングされるまで、続行できません。マッピングが完了すると、オレンジ色の警告マーク
ではなく、緑色のチェックマーク が表示されます。データストアの名前を入力し、[作成] をクリックします。
API を使用してドキュメントをインポートする
Google の事前定義スキーマを使用している場合は、InlineSource
オブジェクトを使用してデータを指定し、Documents:import
REST メソッドに対して POST
リクエストを実行してドキュメントをインポートできます。
JSON ドキュメント形式の例については、JSON ドキュメント形式をご覧ください。
インポート要件
API を使用してメディア ドキュメントをインポートするには、次の要件を満たす必要があります。
各ドキュメントは 1 行にまとめる必要があります。
1 回のインポートでインポートできるドキュメントの最大数は 100 です。
手順
API を使用してメディア ドキュメントをインポートするには、次の操作を行います。
データストアを作成します。
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": "MEDIA" }'
以下を置き換えます。
PROJECT_ID
: Google Cloud プロジェクトの ID。DATA_STORE_ID
: 作成する Vertex AI Search データストアの ID。この ID に使用できるのは、小文字、数字、アンダースコア、ハイフンのみです。DATA_STORE_DISPLAY_NAME
: 作成する Vertex AI Search データストアの表示名。
ドキュメントの JSON ファイルを作成し、
./data.json
という名前を付けます。{ "inlineSource": { "documents": [ { DOCUMENT_1 }, { DOCUMENT_2 } ] } }
POST メソッドを呼び出します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @./data.json \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/branches/0/documents:import"
- PROJECT_ID: プロジェクトの ID。
- DATA_STORE_ID: データストアの ID。
JSON ドキュメント形式
次の例は、JSON 形式の Document
エントリを示しています。
ドキュメント全体を 1 行で指定します。各ドキュメントは 1 行にまとめる必要があります。
最低限必要な項目:
{ "id": "sample-01", "schemaId": "default_schema", "jsonData": "{\"title\":\"Test document title\",\"categories\":[\"sports > clip\",\"sports > highlight\"],\"uri\":\"http://www.example.com\",\"media_type\":\"sports-game\",\"available_time\":\"2022-08-26T23:00:17Z\"}" }
すべて揃ったオブジェクト:
{ "id": "child-sample-0", "schemaId": "default_schema", "jsonData": "{\"title\":\"Test document title\",\"description\":\"Test document description\",\"language_code\":\"en-US\",\"categories\":[\"sports > clip\",\"sports > highlight\"],\"uri\":\"http://www.example.com\",\"images\":[{\"uri\":\"http://example.com/img1\",\"name\":\"image_1\"}],\"media_type\":\"sports-game\",\"in_languages\":[\"en-US\"],\"country_of_origin\":\"US\",\"content_index\":0,\"persons\":[{\"name\":\"sports person\",\"role\":\"player\",\"rank\":0,\"uri\":\"http://example.com/person\"},],\"organizations \":[{\"name\":\"sports team\",\"role\":\"team\",\"rank\":0,\"uri\":\"http://example.com/team\"},],\"hash_tags\":[\"tag1\"],\"filter_tags\":[\"filter_tag\"],\"production_year\":1900,\"duration\":\"100s\",\"content_rating\":[\"PG-13\"],\"aggregate_ratings\":[{\"rating_source\":\"imdb\",\"rating_score\":4.5,\"rating_count\":1250}],\"available_time\":\"2022-08-26T23:00:17Z\"}" }
インポートをモニタリングしてデータを表示する
取り込みのステータスを確認するには、[データストア] ページに移動し、データストア名をクリックして、[データ] ページで詳細を表示します。
[アクティビティ] タブをクリックします。
[アクティビティ] タブのステータス列が [進行中] から [インポート完了] に変わると、取り込みが完了します。
取り込みには、データのサイズに応じて、数分から数時間かかることがあります。
[ドキュメント] をクリックして、インポートしたデータを表示します。
ユーザー イベントのインポート
データストアをメディア レコメンデーション アプリで使用する場合は、ユーザー イベントが必要です。
メディア検索アプリではユーザー イベントは必須ではありませんが、ユーザー イベントを含めると、より質の高い検索結果を得ることができます。
ユーザー イベントをメディア データストアにインポートするには:
- 過去のユーザー イベントをインポートするの手順に沿って操作します。
次のステップ
ドキュメントのデータを最新の状態に保つ。
理想的には、新しいデータをインポートしてデータストアを毎日更新する必要があります。定期的なインポートをスケジュールすると、時間の経過とともにモデルの品質が低下するのを防ぐことができます。Google Cloud Scheduler を使用して、インポートを自動化することもできます。
新しい、または変更されたドキュメントのみを更新する、あるいはデータストア全体をインポートすることもできます。すでにデータストアに存在するドキュメントをインポートしても、再び追加されることはありません。変更されたドキュメントは更新されます。
ユーザー イベントのデータを最新の状態に保ちます。
特に、ユーザー イベントを最新の状態に保つことが重要です。データ要件を満たす十分な新しいユーザー イベントがない場合、レコメンデーション アプリは動作を停止します。
ユーザー イベントデータをリアルタイムでインポートする方法については、リアルタイムのユーザー イベントを記録するをご覧ください。
ユーザー イベントの要件のモニタリングについては、メディア レコメンデーションのデータ品質を確認するをご覧ください。