BigQuery にデータをエクスポートする

このページでは、小売商品データとユーザー イベントデータを BigQuery にアップロードする方法について説明します。データが BigQuery に取り込まれると、そのデータを使用して Vertex AI で販売予測を行い、事前構築済みの Looker ダッシュボードでデータを確認できるようになります。

小売データが BigQuery の商品テーブルとユーザー イベント テーブルにすでに存在する場合、Vertex AI Search for Retail 形式では、このページをスキップして重要業績評価指標を表示するダッシュボードを取得する小売データから販売予測を生成するに直接進むことができます。形式の詳細については、商品スキーマユーザー イベントについてをご覧ください。

始める前に

小売データを BigQuery にエクスポートする前に、始める前にの手順を完了しておく必要があります。これには、カタログ情報とユーザー イベントのインポートが含まれます。

インポートの詳細については、以下をご覧ください。

BigQuery でデータセットを作成する

商品データとユーザー イベントデータを保持するには、BigQuery で 1 つまたは 2 つのデータセットを作成する必要があります。1 つのデータセットを使用して両方のタイプのデータを保持することも、データのタイプごとに 1 つずつ、計 2 つのデータセットを作成することもできます。

小売業向け Vertex AI Search を実装したプロジェクトと同じプロジェクト内にデータセットを作成する必要があります。

  1. プロジェクトで BigQuery を初めて使用する場合は、BigQuery API を有効にして、データセットとテーブルを作成できる IAM ロールがあることを確認します。

    BigQuery ドキュメントの、始める前にIAM によるアクセス制御をご覧ください。

  2. BigQuery で米国(米国の複数のリージョン)のマルチリージョンのデータセットを作成します。たとえば、retail_data という名前にします。別のリージョンにデータセットを作成すると、BigQuery へのデータのエクスポートは失敗します。

    データセットの作成については、BigQuery ドキュメントのデータセットの作成をご覧ください。

    このデータセットは、エクスポートするデータテーブルを保持するために使用されます。エクスポートする手順は次のとおりです。

  3. 省略可: ユーザー イベント データを商品データとは別のデータセットに配置するには、2 番目のデータセットを作成します。たとえば、retail_user_event_data という名前を付けます。

Vertex AI Search for Retail カタログを BigQuery テーブルにエクスポートする

ExportProducts メソッドを使用して、Retail カタログを BigQuery テーブルにエクスポートします。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: BigQuery データセットを作成した小売業向け Vertex AI Search API プロジェクトの ID。
  • BRANCH_ID: カタログ ブランチの ID。デフォルトのブランチからデータを取得するには、default_branch を使用します。 詳細については、カタログのブランチをご覧ください。
  • DATASET_ID: BigQuery でデータセットを作成するで作成したデータセットの名前。たとえば、retail_data または retail_product_data を使用します。 データセットは同じプロジェクト内にある必要があります。 ここで、datasetId フィールドにプロジェクト ID を追加しないでください。
  • TABLE_ID_PREFIX: テーブル ID の接頭辞。この接頭辞は空の文字列にできません。テーブル名を補完するために、接尾辞 retail_products が追加されます。たとえば、接頭辞が test の場合、テーブルの名前は test_retail_products です。

リクエストの本文(JSON):

{
  "outputConfig":
  {
    "bigqueryDestination":
    {
      "datasetId": "DATASET_ID",
        "tableIdPrefix": "TABLE_ID_PREFIX",
        "tableType": "view"
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/operations/17986570020347019923",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2alpha.ExportProductsResponse",
    "outputResult": {
      "bigqueryResult": [
        {
          "datasetId": "DATASET_ID",
          "tableId": "TABLE_ID_PREFIX_retail_products"
        }
      ]
    }
  }
}

ユーザー イベントを BigQuery テーブルにエクスポートする

userEvents.export メソッドを使用して、小売ユーザー イベントを BigQuery テーブルにエクスポートします。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: BigQuery データセットを作成した小売業向け Vertex AI Search API プロジェクトの ID。
  • DATASET_ID: BigQuery でデータセットを作成するで作成したデータセットの名前。たとえば、retail_data または retail_product_data を使用します。
  • TABLE_ID_PREFIX: テーブル ID の接頭辞。この接頭辞は空の文字列にできません。テーブル名を補完するために、接尾辞 retail_products が追加されます。たとえば、接頭辞が test の場合、テーブルの名前は test_retail_products です。

リクエストの本文(JSON):

{
  "outputConfig":
  {
    "bigqueryDestination":
    {
      "datasetId": "DATASET_ID",
        "tableIdPrefix": "TABLE_ID_PREFIX",
        "tableType": "view"
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/operations/17203443067109586170",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2alpha.ExportUserEventsResponse",
    "outputResult": {
      "bigqueryResult": [
        {
          "datasetId": "DATASET_ID",
          "tableId": "TABLE_ID_PREFIX_retail_user_events"
        }
      ]
    }
  }
}

エクスポートされるデータについて

BigQuery テーブルにエクスポートする小売データについては、次の点に注意してください。

  • プロジェクトの BigQuery テーブルにエクスポートされるデータは、マテリアライズド ビューではなく、承認済みビューです。

  • これらのテーブルのデータの変更や更新はできません。

  • 商品は 1 時間ごとに更新されます。

  • ユーザー イベントは準リアルタイムで更新されます。

エクスポートされるユーザー イベント データについて

エクスポートされるユーザー イベントデータに含まれる商品情報について、以下の点を確認してください。

商品の価格情報

userEvents.export メソッドによって商品の価格情報が返される方法は、次によって異なります。

  • 取り込み時にユーザー イベントデータに価格情報が含まれていた。userEvents.export メソッドを呼び出す際に、ユーザー イベントと同時に返される価格は、イベント発生時の商品の価格になります。

  • ユーザー イベントデータに価格情報は含まれていなかったが、取り込み時に商品データに価格情報が含まれていた。userEvents.export メソッドを呼び出す際に、ユーザー イベントと同時に返される価格は、必ずしもイベント発生時の商品価格にはなりません。取り込み時に商品データに含まれていた価格情報です。

  • ユーザー イベントデータに価格情報は含まれていなかったため、商品データで利用できる価格情報がない。userEvents.export メソッドを呼び出す際に、ユーザー イベントと同時に返される価格はありません。

その他の商品情報

userEvents.export メソッドを呼び出すときに、すべての商品情報(価格を除く)がユーザー イベント情報に結合されます。商品の値は、ユーザー イベントの時刻から userEvents.export を呼び出す時刻まで変更できます。このため、ユーザー イベント テーブルで返される価格以外の商品の値は、ユーザー イベント時の商品の値とは異なる場合があります。

省略可: 新しいテーブルが BigQuery にあることを確認する

商品データとユーザー イベント データを BigQuery にエクスポートした後、新しいテーブルが存在することを確認してください。

  1. BigQuery で、BigQuery にデータセットを作成するで作成したデータセットに移動します。

  2. データセットを開いて、エクスポートした 2 つのテーブルが表示されていることを確認します。たとえば、名前が retail_products または retail_user_events で終わるテーブルを探します。