AstraDB to BigQuery 템플릿

AstraDB에서 BigQuery로 템플릿은 AstraDB에서 레코드를 읽고 BigQuery에 쓰는 일괄 파이프라인입니다.

대상 테이블이 BigQuery에 없으면 파이프라인에서 다음 값을 사용하여 테이블을 만듭니다.

  • Cassandra 키스페이스에서 상속된 Dataset ID
  • Cassandra 테이블에서 상속된 Table ID

대상 테이블 스키마는 소스 Cassandra 테이블에서 추론됩니다.

  • ListSet는 BigQuery REPEATED 필드에 매핑됩니다.
  • Map은 BigQuery RECORD 필드에 매핑됩니다.
  • 다른 모든 유형은 해당 유형이 있는 BigQuery 필드에 매핑됩니다.
  • Cassandra 사용자 정의 유형(UDT) 및 튜플 데이터 유형은 지원되지 않습니다.

파이프라인 요구사항

  • 토큰이 있는 AstraDB 계정

템플릿 매개변수

필수 매개변수

  • astraToken: 토큰 값 또는 보안 비밀 리소스 ID(예: AstraCS:abcdefghij)
  • astraDatabaseId: 데이터베이스 고유 식별자(uuid)(예: cf7af129-d33a-498f-ad06-d97a6ee6eb7)
  • astraKeyspace: Astra 데이터베이스 내의 Cassandra 키스페이스 이름
  • astraTable: Cassandra 데이터베이스 내의 테이블 이름(예: my_table)

선택적 매개변수

  • astraQuery: 전체 테이블을 읽는 대신 행을 필터링하도록 쿼리합니다.
  • astraDatabaseRegion: 제공하지 않으면 멀티 리전 데이터베이스에 유용한 기본값이 선택됩니다.
  • minTokenRangesCount: 쿼리를 분산할 최소 분할 수입니다.
  • outputTableSpec: 출력을 작성할 BigQuery 테이블 위치입니다. 테이블은 <project>:<dataset>.<table_name> 형식이어야 합니다. 테이블 스키마가 입력 객체와 일치해야 합니다.

템플릿 실행

콘솔

  1. Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다.
  2. 템플릿에서 작업 만들기로 이동
  3. 작업 이름 필드에 고유한 작업 이름을 입력합니다.
  4. (선택사항): 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전은 us-central1입니다.

    Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.

  5. Dataflow 템플릿 드롭다운 메뉴에서 the AstraDB to BigQuery template을 선택합니다.
  6. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  7. 작업 실행을 클릭합니다.

gcloud

셸 또는 터미널에서 템플릿을 실행합니다.

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/AstraDB_To_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       astraToken=ASTRA_TOKEN,\
       astraDatabaseId=ASTRA_DATABASE_ID,\
       astraKeyspace=ASTRA_KEYSPACE,\
       astraTable=ASTRA_TABLE,\

다음을 바꿉니다.

  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

    다음 값을 사용할 수 있습니다.

  • REGION_NAME: Dataflow 작업을 배포할 리전(예: us-central1)
  • ASTRA_TOKEN: Astra 토큰입니다.
  • ASTRA_DATABASE_ID: 데이터베이스 식별자입니다.
  • ASTRA_KEYSPACE: Cassandra 키스페이스입니다.
  • ASTRA_TABLE: Cassandra 테이블입니다.

API

REST API를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 projects.templates.launch를 참조하세요.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "astraToken": "ASTRA_TOKEN",
       "astraDatabaseId": "ASTRA_DATABASE_ID",
       "astraKeyspace": "ASTRA_KEYSPACE",
       "astraTable": "ASTRA_TABLE",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/AstraDB_To_BigQuery",
     "environment": { "maxWorkers": "10" }
  }
}

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행하려는 Google Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

    다음 값을 사용할 수 있습니다.

  • LOCATION: Dataflow 작업을 배포할 리전(예: us-central1)
  • ASTRA_TOKEN: Astra 토큰입니다.
  • ASTRA_DATABASE_ID: 데이터베이스 식별자입니다.
  • ASTRA_KEYSPACE: Cassandra 키스페이스입니다.
  • ASTRA_TABLE: Cassandra 테이블입니다.

다음 단계