BigQuery로 데이터 내보내기

이 페이지에서는 소매 제품 및 사용자 이벤트 데이터를 BigQuery에 업로드하는 방법을 설명합니다. 데이터가 BigQuery에 로드되면 데이터를 사용해 Vertex AI로 판매 예측을 수행하고 사전 빌드된 Looker 대시보드에서 데이터를 볼 수 있습니다.

소매업 데이터가 제품 및 사용자 이벤트 데이터에 Vertex AI Search for Retail 형식으로 이미 BigQuery에 있는 경우 이 페이지를 건너뛰고 핵심성과지표를 보여주는 대시보드 가져오기소매업 데이터에서 판매 예측 생성으로 이동하세요. 형식에 대한 자세한 내용은 제품 스키마사용자 이벤트 정보를 참조하세요.

시작하기 전에

소매업 데이터를 BigQuery로 내보내려면 먼저 시작하기 전에의 절차를 완료해야 합니다. 여기에는 카탈로그 정보와 사용자 이벤트 가져오기가 포함됩니다.

가져오기에 대한 자세한 내용은 다음을 참조하세요.

BigQuery에서 데이터 세트 만들기

제품 및 사용자 이벤트 데이터를 저장할 BigQuery에 데이터 세트를 하나 또는 두 개 만들어야 합니다. 하나의 데이터 세트를 사용하여 두 가지 유형의 데이터를 보관하거나 각 데이터 유형에 하나씩 두 개의 데이터 세트를 만들 수 있습니다.

Vertex AI Search for Retail을 구현한 동일한 프로젝트에서 데이터 세트를 만들어야 합니다.

  1. 이전에 프로젝트에서 BigQuery를 사용한 적이 없으면 BigQuery API를 사용 설정하고 데이터 세트와 테이블을 만들 수 있는 IAM 역할이 있는지 확인합니다.

    BigQuery 문서의 시작하기 전에IAM으로 액세스 제어를 참조하세요.

  2. 멀티 리전 미국(미국의 여러 리전)에서 BigQuery의 데이터 세트를 만듭니다. 예를 들어 이름을 retail_data로 지정합니다. 다른 리전에 데이터 세트를 만들면 데이터를 BigQuery로 내보낼 수 없습니다.

    데이터 세트 만들기에 대한 자세한 내용은 BigQuery 문서의 데이터 세트 만들기를 참조하세요.

    이 데이터 세트는 내보내는 데이터 테이블을 저장하는 데 사용됩니다. 다음 절차에서는 내보내는 방법을 설명합니다.

  3. 선택사항: 사용자 이벤트 데이터를 제품 데이터와 별도의 데이터 세트에 배치하려면 두 번째 데이터 세트를 만듭니다. 예를 들어 이름을 retail_user_event_data로 지정합니다.

Vertex AI Search for Retail 카탈로그를 BigQuery 테이블로 내보내기

ExportProducts 메서드를 사용하여 소매업 카탈로그를 BigQuery 테이블로 내보냅니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: BigQuery 데이터 세트를 만든 Vertex AI Search for Retail API 프로젝트의 ID입니다.
  • BRANCH_ID: 카탈로그 브랜치의 ID입니다. 기본 브랜치에서 데이터를 가져오려면 default_branch를 사용하세요. 자세한 내용은 카탈로그 브랜치를 참조하세요.
  • DATASET_ID: BigQuery에서 데이터 세트 만들기에서 만든 데이터 세트의 이름입니다. 예를 들어 retail_data 또는 retail_product_data를 사용합니다. 데이터 세트는 같은 프로젝트에 있어야 합니다. 여기에서 프로젝트 ID를 datasetId 필드에 추가하지 마세요.
  • 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 for Retail 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 테이블로 내보내는 데이터는 구체화된 뷰가 아닌 승인된 뷰입니다.

  • 이러한 테이블의 데이터는 변경하거나 업데이트할 수 없습니다.

  • 제품은 매시간 새로고침됩니다.

  • 사용자 이벤트는 거의 실시간으로 새로고침됩니다.

내보낸 사용자 이벤트 데이터 정보

다음은 내보낸 사용자 이벤트 데이터에 포함된 제품 정보에 대해 알아야 할 사항입니다.

제품 가격 정보

userEvents.export 메서드에서 제품 가격 정보를 반환하는 방법은 다음 사항에 따라 달라집니다.

  • 수집할 때 사용자 이벤트 데이터에 가격 정보를 포함했습니다. userEvents.export 메서드를 호출할 때 사용자 이벤트와 함께 반환되는 가격은 이벤트 시점의 제품 가격입니다.

  • 사용자 이벤트 데이터에는 가격 정보를 포함하지 않았지만 수집할 때 제품 데이터에 가격 정보를 포함했습니다. userEvents.export 메서드를 호출할 때 사용자 이벤트와 함께 반환되는 가격은 이벤트 시점의 제품 가격일 필요는 없습니다. 수집할 때 제품 데이터에서 발견된 가격입니다.

  • 사용자 이벤트 데이터에 가격 정보를 포함하지 않았으며 제품 데이터에 사용 가능한 가격 정보가 없습니다. userEvents.export 메서드를 호출하면 가격은 사용자 이벤트와 함께 반환되지 않습니다.

기타 제품 정보

userEvents.export 메서드를 호출할 때 모든 제품 정보(가격 제외)가 사용자 이벤트 정보에 조인됩니다. 제품 값은 사용자 이벤트 시간에서 userEvents.export 호출 시간으로 변경될 수 있습니다. 따라서 사용자 이벤트 테이블에 반환된 가격 이외의 제품 값은 사용자 이벤트 당시의 제품 값과 다를 수 있습니다.

선택사항: 새 테이블이 BigQuery에 있는지 확인

제품 데이터와 사용자 이벤트 데이터를 BigQuery로 내보낸 후 새 테이블이 있는지 확인합니다.

  1. BigQuery에서 BigQuery에서 데이터 세트 만들기에서 만든 데이터 세트로 이동합니다.

  2. 데이터 세트를 열고 내보낸 테이블 2개가 표시되는지 확인합니다. 예를 들어 이름이 retail_productsretail_user_events로 끝나는 테이블을 찾습니다.