Google 제공 일괄 템플릿

Google은 오픈소스 Dataflow 템플릿 세트를 제공합니다. 템플릿에 대한 일반 정보는 개요 페이지를 참조하세요. 모든 Google 제공 템플릿 목록은 Google 제공 템플릿 시작 페이지를 참조하세요.

이 페이지에서는 일괄 템플릿을 다룹니다.

BigQuery to Cloud Storage TFRecords

BigQuery to Cloud Storage TFRecords 템플릿은 BigQuery 쿼리에서 데이터를 읽어 TFRecord 형식으로 Cloud Storage 버킷에 데이터를 쓰는 파이프라인입니다. 학습, 테스트, 검증 분할 비율을 지정할 수 있습니다. 기본적으로 학습 세트의 경우 1 또는 100%, 테스트 및 검증 세트의 경우 0 또는 0%입니다. 데이터 세트 분할을 설정할 때 학습, 테스트, 검증의 합계가 1 또는 100%가 되어야 합니다(예: 0.6+0.2+0.2). Dataflow는 각 출력 데이터세트에 대한 최적 분할 수를 자동으로 결정합니다.

파이프라인 요구사항:

  • BigQuery 데이터세트와 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 출력 Cloud Storage 버킷이 있어야 합니다. 학습, 테스트, 검증 하위 디렉터리는 사전 존재할 필요가 없으며 자동 생성됩니다.

템플릿 매개변수

매개변수 설명
readQuery 소스에서 데이터를 추출하는 BigQuery SQL 쿼리입니다. 예를 들면 select * from dataset1.sample_table입니다.
outputDirectory 학습, 테스트, 검증 TFRecord 파일을 쓰는 최상위 Cloud Storage 경로 프리픽스입니다. gs://mybucket/output). 학습, 테스트, 검증 결과 TFRecord 파일의 하위 디렉터리는 outputDirectory에서 자동으로 생성됩니다. gs://mybucket/output/train).
trainingPercentage (선택사항) 학습 TFRecord 파일에 할당된 쿼리 데이터의 비율입니다. 기본값은 1 또는 100%입니다.
testingPercentage (선택사항) 테스트 TFRecord 파일에 할당된 쿼리 데이터의 비율입니다. 기본값은 0 또는 0%입니다.
validationPercentage (선택사항) 검증 TFRecord 파일에 할당된 쿼리 데이터의 비율입니다. 기본값은 0 또는 0%입니다.
outputSuffix (선택사항) 작성된 학습, 테스트, 검증 TFRecord 파일의 파일 서픽스입니다. 기본값은 .tfrecord입니다.

BigQuery to Cloud Storage TFRecord 파일 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the BigQuery to TFRecords template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령 줄 도구를 사용하여 템플릿을 실행하려면 Cloud SDK 버전 138.0.0 이상이 있어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --parameters readQuery=READ_QUERY,outputDirectory=OUTPUT_DIRECTORY,trainingPercentage=TRAINING_PERCENTAGE,testingPercentage=TESTING_PERCENTAGE,validationPercentage=VALIDATION_PERCENTAGE,outputSuffix=OUTPUT_FILENAME_SUFFIX

다음 값을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • READ_QUERY: 실행할 BigQuery 쿼리
  • OUTPUT_DIRECTORY: 출력 데이터 세트의 Cloud Storage 경로 프리픽스
  • TRAINING_PERCENTAGE: 학습 데이터 세트의 십진수 비율 분할
  • TESTING_PERCENTAGE: 테스트 데이터 세트의 십진수 비율 분할
  • VALIDATION_PERCENTAGE: 검증 데이터 세트의 십진수 비율 분할
  • OUTPUT_FILENAME_SUFFIX: 선호하는 출력 TensorFlow 레코드 파일 서픽스

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records

REST API로 템플릿을 실행하려면 프로젝트 ID가 포함된 HTTP POST 요청을 전송합니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

다음 값을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • READ_QUERY: 실행할 BigQuery 쿼리
  • OUTPUT_DIRECTORY: 출력 데이터 세트의 Cloud Storage 경로 프리픽스
  • TRAINING_PERCENTAGE: 학습 데이터 세트의 십진수 비율 분할
  • TESTING_PERCENTAGE: 테스트 데이터 세트의 십진수 비율 분할
  • VALIDATION_PERCENTAGE: 검증 데이터 세트의 십진수 비율 분할
  • OUTPUT_FILENAME_SUFFIX: 선호하는 출력 TensorFlow 레코드 파일 서픽스

Storage API를 통해 Parquet로 BigQuery 내보내기

Parquet로 BigQuery 내보내기 템플릿은 BigQuery 테이블에서 데이터를 읽고 Parquet 형식으로 Cloud Storage 버킷에 쓰는 일괄 파이프라인입니다. 이 템플릿은 데이터를 내보내기 위해 BigQuery Storage API를 활용합니다.

파이프라인 요구사항

  • 파이프라인을 실행하기 전에 입력 BigQuery 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 출력 Cloud Storage 버킷이 있어야 합니다.

템플릿 매개변수

매개변수 설명
tableRef BigQuery 입력 테이블 위치입니다. 예를 들면 <my-project>:<my-dataset>.<my-table>입니다.
bucket Parquet 파일을 쓸 Cloud Storage 폴더입니다. 예를 들면 gs://mybucket/exports입니다.
numShards (선택사항) 출력 파일 샤드 수입니다. 기본값은 1입니다.
fields (선택사항) 입력 BigQuery 테이블에서 선택할 수 있는 쉼표로 구분된 필드 목록입니다.

BigQuery to Cloud Storage Parquet 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the BigQuery export to Parquet template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 Flex 템플릿을 실행하려면 Cloud SDK 버전이 284.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet
gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/latest/flex/BigQuery_to_Parquet \
    --parameters \
tableRef=BIGQUERY_TABLE,\
bucket=OUTPUT_DIRECTORY,\
numShards=NUM_SHARDS,\
fields=FIELDS

다음 값을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • OUTPUT_DIRECTORY: 출력 파일의 Cloud Storage 폴더
  • NUM_SHARDS: 원하는 출력 파일 샤드 수
  • FIELDS: 입력 BigQuery 테이블에서 선택할 수 있는 쉼표로 구분된 필드 목록
  • LOCATION: 실행 리전(예시: us-central1)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "tableRef": "BIGQUERY_TABLE",
          "bucket": "OUTPUT_DIRECTORY",
          "numShards": "NUM_SHARDS",
          "fields": "FIELDS"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/latest/flex/BigQuery_to_Parquet",
   }
}

다음 값을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • OUTPUT_DIRECTORY: 출력 파일의 Cloud Storage 폴더
  • NUM_SHARDS: 원하는 출력 파일 샤드 수
  • FIELDS: 입력 BigQuery 테이블에서 선택할 수 있는 쉼표로 구분된 필드 목록
  • LOCATION: 실행 리전(예시: us-central1)

Cloud Bigtable to Cloud Storage Avro

Cloud Bigtable to Cloud Storage Avro 템플릿은 Cloud Bigtable 테이블에서 데이터를 읽고 읽은 데이터를 Cloud Storage 버킷에 Avro 형식으로 쓰는 파이프라인입니다. 이 템플릿을 사용하면 데이터를 Cloud Bigtable에서 Cloud Storage로 이동할 수 있습니다.

파이프라인 요구사항:

  • Cloud Bigtable 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 출력 Cloud Storage 버킷이 있어야 합니다.

템플릿 매개변수

매개변수 설명
bigtableProjectId 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
bigtableInstanceId 테이블이 있는 Cloud Bigtable 인스턴스의 ID입니다.
bigtableTableId 내보낼 Cloud Bigtable 테이블의 ID입니다.
outputDirectory 데이터가 작성된 Cloud Storage 경로입니다. gs://mybucket/somefolder).
filenamePrefix Avro 파일 이름의 프리픽스입니다. output-).

Cloud Bigtable to Cloud Storage Avro 파일 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Bigtable to Avro Files on Cloud Storage template 을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Avro \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,outputDirectory=OUTPUT_DIRECTORY,filenamePrefix=FILENAME_PREFIX

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Avro 파일 이름의 프리픽스(예시: output-)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Avro 파일 이름의 프리픽스(예시: output-)

Cloud Bigtable to Cloud Storage Parquet

Cloud Bigtable to Cloud Storage Parquet 템플릿은 Cloud Bigtable 테이블에서 데이터를 읽고 Parquet 형식으로 Cloud Storage 버킷에 쓰는 파이프라인입니다. 이 템플릿을 사용하면 데이터를 Cloud Bigtable에서 Cloud Storage로 이동할 수 있습니다.

파이프라인 요구사항:

  • Cloud Bigtable 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 출력 Cloud Storage 버킷이 있어야 합니다.

템플릿 매개변수

매개변수 설명
bigtableProjectId 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
bigtableInstanceId 테이블이 있는 Cloud Bigtable 인스턴스의 ID입니다.
bigtableTableId 내보낼 Cloud Bigtable 테이블의 ID입니다.
outputDirectory 데이터가 작성된 Cloud Storage 경로입니다. gs://mybucket/somefolder).
filenamePrefix Parquet 파일 이름의 프리픽스입니다. output-).
numShards 출력 파일 샤드 수입니다. 예를 들면 2입니다.

Cloud Bigtable to Cloud Storage Parquet 파일 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Bigtable to Parquet template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Parquet \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,outputDirectory=OUTPUT_DIRECTORY,filenamePrefix=FILENAME_PREFIX,numShards=NUM_SHARDS

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Parquet 파일 이름의 프리픽스(예시: output-)
  • NUM_SHARDS: 출력할 Parquet 파일 수(예시: 1).

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_Parquet
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
       "numShards": "NUM_SHARDS"
   },
   "environment": { "zone": "us-central1-f" }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Parquet 파일 이름의 프리픽스(예시: output-)
  • NUM_SHARDS: 출력할 Parquet 파일 수(예시: 1).

Cloud Bigtable to Cloud Storage SequenceFile

Cloud Bigtable to Cloud Storage SequenceFile 템플릿은 Cloud Bigtable 테이블에서 데이터를 읽고 읽은 데이터를 Cloud Storage 버킷에 SequenceFile 형식으로 쓰는 파이프라인입니다. 이 템플릿을 사용하면 데이터를 Cloud Bigtable에서 Cloud Storage로 복사할 수 있습니다.

파이프라인 요구사항:

  • Cloud Bigtable 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 출력 Cloud Storage 버킷이 있어야 합니다.

템플릿 매개변수

매개변수 설명
bigtableProject 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
bigtableInstanceId 테이블이 있는 Cloud Bigtable 인스턴스의 ID입니다.
bigtableTableId 내보낼 Cloud Bigtable 테이블의 ID입니다.
bigtableAppProfileId 내보내기에 사용될 Cloud Bigtable 애플리케이션 프로필의 ID입니다. 앱 프로필을 지정하지 않으면 Cloud Bigtable에서는 인스턴스의 기본 앱 프로필을 사용합니다.
destinationPath 데이터가 작성된 Cloud Storage 경로입니다. gs://mybucket/somefolder).
filenamePrefix SequenceFile 파일 이름의 프리픽스입니다. output-).

Cloud Bigtable to Cloud Storage SequenceFile 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Bigtable to SequenceFile Files on Cloud Storage template 을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_SequenceFile \
    --parameters bigtableProject=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,bigtableAppProfileId=APPLICATION_PROFILE_ID,destinationPath=DESTINATION_PATH,filenamePrefix=FILENAME_PREFIX

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID]: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID]: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID]: 내보낼 Cloud Bigtable 테이블의 ID
  • APPLICATION_PROFILE_ID]: 내보내기에 사용될 Cloud Bigtable 애플리케이션 프로필의 ID
  • DESTINATION_PATH]: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX]: SequenceFile 파일 이름의 프리픽스(예시: output-)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cloud_Bigtable_to_GCS_SequenceFile
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "destinationPath": "DESTINATION_PATH",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID]: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID]: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID]: 내보낼 Cloud Bigtable 테이블의 ID
  • APPLICATION_PROFILE_ID]: 내보내기에 사용될 Cloud Bigtable 애플리케이션 프로필의 ID
  • DESTINATION_PATH]: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX]: SequenceFile 파일 이름의 프리픽스(예시: output-)

Datastore to Cloud Storage Text

Datastore to Cloud Storage Text 템플릿은 Datastore 항목을 읽고 Cloud Storage에 텍스트 파일로 쓰는 일괄 파이프라인입니다. 각 항목을 JSON 문자열로 처리하기 위한 함수를 입력할 수 있습니다. 이러한 함수를 입력하지 않으면 출력 파일에 있는 모든 줄이 JSON 직렬화된 항목이 됩니다.

파이프라인 요구사항

파이프라인을 실행하기 전에 프로젝트에서 Datastore를 설정해야 합니다.

템플릿 매개변수

매개변수 설명
datastoreReadGqlQuery 가져올 항목을 지정하는 GQL 쿼리입니다. 예를 들면 SELECT * FROM MyKind입니다.
datastoreReadProjectId 데이터를 읽으려는 Datastore 인스턴스의 Google Cloud 프로젝트 ID입니다.
datastoreReadNamespace 요청한 항목의 네임스페이스입니다. 기본 네임스페이스를 사용하려면 이 매개변수를 공백으로 둡니다.
javascriptTextTransformGcsPath 모든 자바스크립트 코드가 있는 Cloud Storage 경로입니다. 예를 들면 gs://mybucket/mytransforms/*.js입니다. 함수를 입력하지 않으려면 이 매개변수를 공백으로 둡니다.
javascriptTextTransformFunctionName 호출할 자바스크립트 함수의 이름입니다. 예를 들어 자바스크립트 함수가 function myTransform(inJson) { ...dostuff...}이면 함수 이름은 myTransform입니다. 함수를 입력하지 않으려면 이 매개변수를 공백으로 둡니다.
textWritePrefix 데이터가 작성되는 위치를 지정하는 Cloud Storage 경로 프리픽스입니다. 예를 들면 gs://mybucket/somefolder/입니다.

Datastore to Cloud Storage Text 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Datastore to Text Files on Cloud Storage template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\
datastoreReadProjectId=PROJECT_ID,\
datastoreReadNamespace=DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • DATASTORE_KIND: Datastore 항목의 유형
  • DATASTORE_NAMESPACE: Datastore 항목의 네임스페이스
  • JAVASCRIPT_FUNCTION: 자바스크립트 함수 이름
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND"
       "datastoreReadProjectId": "PROJECT_ID",
       "datastoreReadNamespace": "DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • DATASTORE_KIND: Datastore 항목의 유형
  • DATASTORE_NAMESPACE: Datastore 항목의 네임스페이스
  • JAVASCRIPT_FUNCTION: 자바스크립트 함수 이름
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로

Cloud Spanner to Cloud Storage Avro

Cloud Storage의 Cloud Spanner to Avro Files 템플릿은 전체 Cloud Spanner 데이터베이스를 Avro 형식으로 Cloud Storage에 내보내는 일괄 파이프라인입니다. Cloud Spanner 데이터베이스를 내보내면 선택한 버킷에 폴더가 생성됩니다. 폴더에는 다음이 포함됩니다.

  • spanner-export.json 파일
  • 내보낸 데이터베이스에서 각 테이블의 TableName-manifest.json 파일입니다.
  • 하나 이상의 TableName.avro-#####-of-##### 파일

예를 들어 SingersAlbums의 두 테이블이 있는 데이터베이스를 내보내는 경우 다음 파일 세트가 생성됩니다.

  • Albums-manifest.json
  • Albums.avro-00000-of-00002
  • Albums.avro-00001-of-00002
  • Singers-manifest.json
  • Singers.avro-00000-of-00003
  • Singers.avro-00001-of-00003
  • Singers.avro-00002-of-00003
  • spanner-export.json

파이프라인 요구사항:

  • Cloud Spanner 데이터베이스가 있어야 합니다.
  • 출력 Cloud Storage 버킷이 있어야 합니다.
  • Dataflow 작업을 실행하는 데 필요한 IAM 역할 외에도 Cloud Spanner 데이터를 읽고 Cloud Storage 버킷에 쓰기 위한 적절한 IAM 역할이 있어야 합니다.

템플릿 매개변수

매개변수 설명
instanceId 내보낼 Cloud Spanner 데이터베이스의 인스턴스 ID입니다.
databaseId 내보낼 Cloud Spanner 데이터베이스의 데이터베이스 ID입니다.
outputDir Avro 파일을 내보낼 Cloud Storage 경로입니다. 내보내기 작업을 수행하면 이 경로 아래에 내보낸 파일을 포함하는 새 디렉터리가 생성됩니다.
snapshotTime (선택사항) 읽으려는 Cloud Spanner 데이터베이스의 버전에 해당하는 타임스탬프입니다. 타임스탬프는 RFC 3339 UTC 'Zulu' 형식에 따라 지정되어야 합니다. 예를 들면 1990-12-31T23:59:60Z입니다. 타임스탬프는 과거여야 하며 최대 타임스탬프 비활성이 적용됩니다.
spannerProjectId (선택사항) 데이터를 읽을 Cloud Spanner 데이터베이스의 Google Cloud 프로젝트 ID입니다.

Cloud Storage에서 Cloud Spanner to Avro Files 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Spanner to Avro Files on Cloud Storage template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
    • 작업 이름은 Cloud Console의 Cloud Spanner 부분에 표시되는 형식 cloud-spanner-export-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID]와 일치해야 합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro' \
    --region=DATAFLOW_REGION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,outputDir=GCS_DIRECTORY'

다음을 바꿉니다.

  • JOB_NAME: 선택한 작업 이름
  • DATAFLOW_REGION: Dataflow 작업을 실행할 리전(예시: us-central1)
  • GCS_STAGING_LOCATION: 임시 파일 쓰기 경로(예시: gs://mybucket/temp)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_DIRECTORY: Avro 파일을 내보낼 Cloud Storage 경로

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "outputDir": "gs://GCS_DIRECTORY"
   }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • DATAFLOW_REGION: Dataflow 작업을 실행할 리전(예시: us-central1)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_DIRECTORY: Avro 파일을 내보낼 Cloud Storage 경로
  • JOB_NAME: 선택한 작업 이름
    • 작업 이름은 Cloud Console의 Cloud Spanner 부분에 표시되는 형식 cloud-spanner-export-INSTANCE_ID-DATABASE_ID과 일치해야 합니다.

Cloud Spanner to Cloud Storage Text

Cloud Spanner to Cloud Storage Text 템플릿은 Cloud Spanner 테이블에서 데이터를 읽고 원하는 경우 제공된 자바스크립트 사용자 정의 함수(UDF)를 통해 데이터를 변환하고 해당 데이터를 Cloud Storage에 CSV 텍스트 파일로 쓰는 일괄 파이프라인입니다.

파이프라인 요구사항

  • 파이프라인을 실행하기 전에 입력 Spanner 테이블이 있어야 합니다.

템플릿 매개변수

매개변수 설명
spannerProjectId 데이터를 읽을 Cloud Spanner 데이터베이스의 Google Cloud 프로젝트 ID입니다.
spannerDatabaseId 요청된 테이블의 데이터베이스 ID입니다.
spannerInstanceId 요청된 테이블의 인스턴스 ID입니다.
spannerTable 데이터를 읽을 테이블입니다.
textWritePrefix 출력 텍스트 파일이 기록되는 디렉터리입니다. 마지막에 /를 추가합니다. 예를 들면 gs://mybucket/somefolder/입니다.
javascriptTextTransformGcsPath (선택사항) 모든 자바스크립트 코드를 포함하는 Cloud Storage 경로입니다. 예를 들면 gs://mybucket/mytransforms/*.js입니다. 함수를 입력하지 않으려면 이 매개변수를 공백으로 둡니다.
javascriptTextTransformFunctionName (선택사항) 호출할 자바스크립트 함수의 이름입니다. 예를 들어 자바스크립트 함수가 function myTransform(inJson) { ...dostuff...}이면 함수 이름은 myTransform입니다. 함수를 입력하지 않으려면 이 매개변수를 공백으로 둡니다.

Cloud Spanner to Cloud Storage Text 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Spanner to Text Files on Cloud Storage template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • DATABASE_ID: Spanner 데이터베이스 ID
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • INSTANCE_ID: Spanner 인스턴스 ID
  • TABLE_ID: Spanner 테이블 ID
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로
  • JAVASCRIPT_FUNCTION: 자바스크립트 함수 이름

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • DATABASE_ID: Spanner 데이터베이스 ID
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • INSTANCE_ID: Spanner 인스턴스 ID
  • TABLE_ID: Spanner 테이블 ID
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로
  • JAVASCRIPT_FUNCTION: 자바스크립트 함수 이름

Cloud Storage Avro to Cloud Bigtable

Cloud Storage Avro to Cloud Bigtable 템플릿은 Cloud Storage 버킷의 Avro 파일에서 데이터를 읽고 읽은 데이터를 Cloud Bigtable 테이블에 쓰는 파이프라인입니다. 이 템플릿을 사용하면 Cloud Storage에서 Cloud Bigtable로 데이터를 복사할 수 있습니다.

파이프라인 요구사항:

  • Avro 파일에서 내보낸 것과 동일한 column family가 있는 Cloud Bigtable 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 Cloud Storage 버킷에 입력 Avro 파일이 있어야 합니다.
  • Cloud Bigtable에는 입력 Avro 파일의 특정 스키마가 있어야 합니다.

템플릿 매개변수

매개변수 설명
bigtableProjectId 데이터를 쓰려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
bigtableInstanceId 테이블이 있는 Cloud Bigtable 인스턴스의 ID입니다.
bigtableTableId 가져올 Cloud Bigtable 테이블의 ID입니다.
inputFilePattern 데이터가 있는 Cloud Storage 경로 패턴입니다. 예를 들면 gs://mybucket/somefolder/prefix*입니다.

Cloud Storage Avro file to Cloud Bigtable 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Avro Files on Cloud Storage to Cloud Bigtable template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,inputFilePattern=INPUT_FILE_PATTERN

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

Cloud Storage Avro to Cloud Spanner

Cloud Storage Avro to Cloud Spanner 템플릿은 Cloud Storage에 저장된 Cloud Spanner에서 내보낸 Avro 파일을 읽고 Cloud Spanner 데이터베이스로 가져오는 일괄 파이프라인입니다.

파이프라인 요구사항:

  • 비어 있는 대상 Cloud Spanner 데이터베이스가 있어야 합니다.
  • Cloud Storage 버킷에 대한 읽기 권한과 대상 Cloud Spanner 데이터베이스에 대한 쓰기 권한이 있어야 합니다.
  • 입력 Cloud Storage 경로가 있어야 하며, 가져올 파일의 JSON 설명이 있는 spanner-export.json 파일이 포함되어야 합니다.

템플릿 매개변수

매개변수 설명
instanceId Cloud Spanner 데이터베이스의 인스턴스 ID입니다.
databaseId Cloud Spanner 데이터베이스의 데이터베이스 ID입니다.
inputDir Avro 파일을 가져올 Cloud Storage 경로입니다.

Cloud Storage Avro to Cloud Spanner 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Avro Files on Cloud Storage to Cloud Spanner template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
    • 작업 이름은 Cloud Console의 Cloud Spanner 부분에 표시되는 형식 cloud-spanner-import-[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID]와 일치해야 합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner' \
    --region=DATAFLOW_REGION \
    --staging-location=GCS_STAGING_LOCATION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,inputDir=GCS_DIRECTORY'

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • (API 전용)PROJECT_ID: 프로젝트 ID
  • DATAFLOW_REGION: Dataflow 작업을 실행할 리전(예시: us-central1)
  • JOB_NAME: 선택한 작업 이름
  • INSTANCE_ID: 데이터베이스가 포함된 Spanner 인스턴스의 ID
  • DATABASE_ID: 가져올 Spanner 데이터베이스의 ID
  • (gcloud만 해당)GCS_STAGING_LOCATION: 임시 파일을 쓰기 위한 경로(예시: gs://mybucket/temp)
  • GCS_DIRECTORY: Avro 파일을 가져올 Cloud Storage 경로(예시: gs://mybucket/somefolder)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "inputDir": "gs://GCS_DIRECTORY"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • (API 전용)PROJECT_ID: 프로젝트 ID
  • DATAFLOW_REGION: Dataflow 작업을 실행할 리전(예시: us-central1)
  • JOB_NAME: 선택한 작업 이름
  • INSTANCE_ID: 데이터베이스가 포함된 Spanner 인스턴스의 ID
  • DATABASE_ID: 가져올 Spanner 데이터베이스의 ID
  • (gcloud만 해당)GCS_STAGING_LOCATION: 임시 파일을 쓰기 위한 경로(예시: gs://mybucket/temp)
  • GCS_DIRECTORY: Avro 파일을 가져올 Cloud Storage 경로(예시: gs://mybucket/somefolder)

Cloud Storage Parquet to Cloud Bigtable

Cloud Storage Parquet to Cloud Bigtable 템플릿은 Cloud Storage 버킷의 Parquet 파일에서 데이터를 읽고 Cloud Bigtable 테이블에 데이터를 쓰는 파이프라인입니다. 이 템플릿을 사용하면 Cloud Storage에서 Cloud Bigtable로 데이터를 복사할 수 있습니다.

파이프라인 요구사항:

  • Cloud Bigtable 테이블이 있어야 하며 Parquet 파일에서 내보낸 것과 동일한 column family가 있어야 합니다.
  • 파이프라인을 실행하기 전에 Cloud Storage 버킷에 입력 Parquet 파일이 있어야 합니다.
  • Cloud Bigtable에는 입력 Parquet 파일의 특정 스키마가 있어야 합니다.

템플릿 매개변수

매개변수 설명
bigtableProjectId 데이터를 쓰려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
bigtableInstanceId 테이블이 있는 Cloud Bigtable 인스턴스의 ID입니다.
bigtableTableId 가져올 Cloud Bigtable 테이블의 ID입니다.
inputFilePattern 데이터가 있는 Cloud Storage 경로 패턴입니다. 예를 들면 gs://mybucket/somefolder/prefix*입니다.

Cloud Storage Parquet file to Cloud Bigtable 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Parquet files on Cloud Storage to Cloud Bigtable template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Parquet_to_Cloud_Bigtable \
    --parameters bigtableProjectId=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,inputFilePattern=INPUT_FILE_PATTERN

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Parquet_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

Cloud Storage SequenceFile to Cloud Bigtable

Cloud Storage SequenceFile to Cloud Bigtable 템플릿은 Cloud Storage 버킷의 SequenceFile에서 데이터를 읽고 읽은 데이터를 Cloud Bigtable 테이블에 쓰는 파이프라인입니다. 이 템플릿을 사용하면 Cloud Storage에서 Cloud Bigtable로 데이터를 복사할 수 있습니다.

파이프라인 요구사항:

  • Cloud Bigtable 테이블이 있어야 합니다.
  • 파이프라인을 실행하기 전에 Cloud Storage 버킷에 입력 SequenceFiles가 있어야 합니다.
  • 입력 SequenceFile을 Cloud Bigtable 또는 HBase에서 내보내야 합니다.

템플릿 매개변수

매개변수 설명
bigtableProject 데이터를 쓰려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
bigtableInstanceId 테이블이 있는 Cloud Bigtable 인스턴스의 ID입니다.
bigtableTableId 가져올 Cloud Bigtable 테이블의 ID입니다.
bigtableAppProfileId 가져오기에 사용될 Cloud Bigtable 애플리케이션 프로필의 ID입니다. 앱 프로필을 지정하지 않으면 Cloud Bigtable에서는 인스턴스의 기본 앱 프로필을 사용합니다.
sourcePattern 데이터가 있는 Cloud Storage 경로 패턴입니다. 예를 들면 gs://mybucket/somefolder/prefix*입니다.

Cloud Storage SequenceFile to Cloud Bigtable 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Parquet files on Cloud Storage to Cloud Bigtable template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_SequenceFile_to_Cloud_Bigtable \
    --parameters bigtableProject=PROJECT_ID,bigtableInstanceId=INSTANCE_ID,bigtableTableId=TABLE_ID,bigtableAppProfileId=APPLICATION_PROFILE_ID,sourcePattern=SOURCE_PATTERN

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • APPLICATION_PROFILE_ID: 내보내기에 사용될 Cloud Bigtable 애플리케이션 프로필의 ID
  • SOURCE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_SequenceFile_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "sourcePattern": "SOURCE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PROJECT_ID: 데이터를 읽으려는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
  • INSTANCE_ID: 테이블이 있는 Cloud Bigtable 인스턴스의 ID
  • TABLE_ID: 내보낼 Cloud Bigtable 테이블의 ID
  • APPLICATION_PROFILE_ID: 내보내기에 사용될 Cloud Bigtable 애플리케이션 프로필의 ID
  • SOURCE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

Cloud Storage Text to BigQuery

Cloud Storage Text to BigQuery 파이프라인은 Cloud Storage에 저장된 텍스트 파일을 읽고, 제공된 자바스크립트 UDF(사용자 정의 함수)를 사용하여 변환하고, 결과를 BigQuery에 출력할 수 있게 해주는 일괄 파이프라인입니다.

중요: 기존 BigQuery 테이블을 다시 사용하면 데이터가 대상 테이블에 추가됩니다.

파이프라인 요구사항

  • BigQuery 스키마를 설명하는 JSON 파일을 만듭니다.

    최상위 JSON 배열의 이름이 BigQuery Schema이고 해당 콘텐츠는 {"name": "COLUMN_NAME", "type": "DATA_TYPE"} 패턴을 따라야 합니다. 예를 들면 다음과 같습니다.

    {
      "BigQuery Schema": [
        {
          "name": "location",
          "type": "STRING"
        },
        {
          "name": "name",
          "type": "STRING"
        },
        {
          "name": "age",
          "type": "STRING"
        },
        {
          "name": "color",
          "type": "STRING"
        },
        {
          "name": "coffee",
          "type": "STRING"
        }
      ]
    }
    
  • 텍스트 줄을 변환하는 논리를 제공하는 UDF 함수를 사용하여 자바스크립트(.js) 파일을 만듭니다. 함수는 JSON 문자열을 반환해야 합니다.

    예를 들어 이 함수는 CSV 파일의 각 줄을 분할하고, 값을 변환한 후에 JSON 문자열을 반환합니다.

    function transform(line) {
    var values = line.split(',');
    
    var obj = new Object();
    obj.location = values[0];
    obj.name = values[1];
    obj.age = values[2];
    obj.color = values[3];
    obj.coffee = values[4];
    var jsonString = JSON.stringify(obj);
    
    return jsonString;
    }
    

템플릿 매개변수

매개변수 설명
javascriptTextTransformFunctionName .js 파일로부터 호출할 함수의 이름입니다.
JSONPath Cloud Storage에 저장된 BigQuery 스키마를 정의하는 JSON 파일의 gs:// 경로입니다. 예를 들면 gs://path/to/my/schema.json입니다.
javascriptTextTransformGcsPath UDF를 정의하는 자바스크립트 파일의 gs:// 경로입니다. 예를 들면 gs://path/to/my/javascript_function.js입니다.
inputFilePattern Cloud Storage에서 처리하려는 텍스트의 gs:// 경로입니다. 예를 들면 gs://path/to/my/text/data.txt입니다.
outputTable 처리된 데이터를 저장하기 위해 만들 BigQuery 테이블 이름입니다. 기존 BigQuery 테이블을 다시 사용하면 데이터가 대상 테이블에 추가됩니다. 예를 들면 my-project-name:my-dataset.my-table입니다.
bigQueryLoadingTemporaryDirectory BigQuery 로드 프로세스를 위한 임시 디렉터리입니다. 예를 들면 gs://my-bucket/my-files/temp_dir입니다.

Cloud Storage Text to BigQuery 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to BigQuery template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • JAVASCRIPT_FUNCTION: UDF의 이름
  • PATH_TO_BIGQUERY_SCHEMA_JSON: 스키마 정의가 포함된 JSON 파일의 Cloud Storage 경로
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로
  • PATH_TO_TEXT_DATA: 텍스트 데이터 세트의 Cloud Storage 경로
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • PATH_TO_TEMP_DIR_ON_GCS: 임시 디렉터리의 Cloud Storage 경로

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • JAVASCRIPT_FUNCTION: UDF의 이름
  • PATH_TO_BIGQUERY_SCHEMA_JSON: 스키마 정의가 포함된 JSON 파일의 Cloud Storage 경로
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로
  • PATH_TO_TEXT_DATA: 텍스트 데이터 세트의 Cloud Storage 경로
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • PATH_TO_TEMP_DIR_ON_GCS: 임시 디렉터리의 Cloud Storage 경로

Cloud Storage Text to Datastore

Cloud Storage Text to Datastore 템플릿은 Cloud Storage에 저장된 텍스트 파일을 읽고 JSON으로 인코딩된 항목을 Datastore에 쓰는 일괄 파이프라인입니다. 입력 텍스트 파일의 각 줄은 지정된 JSON 형식이어야 합니다.

파이프라인 요구사항

  • 대상 프로젝트에서 데이터 저장소를 활성화해야 합니다.

템플릿 매개변수

매개변수 설명
textReadPattern 텍스트 데이터 파일의 위치를 지정하는 Cloud Storage 경로 패턴입니다. gs://mybucket/somepath/*.json).
javascriptTextTransformGcsPath 모든 자바스크립트 코드가 있는 Cloud Storage 경로 패턴입니다. 예를 들면 gs://mybucket/mytransforms/*.js입니다. 함수를 입력하지 않으려면 이 매개변수를 공백으로 둡니다.
javascriptTextTransformFunctionName 호출할 자바스크립트 함수의 이름입니다. 예를 들어 자바스크립트 함수가 function myTransform(inJson) { ...dostuff...}이면 함수 이름은 myTransform입니다. 함수를 입력하지 않으려면 이 매개변수를 공백으로 둡니다.
datastoreWriteProjectId Datastore 항목을 쓸 위치의 Google Cloud 프로젝트 ID입니다.
errorWritePath 처리 중에 발생하는 쓰기 오류에 대해 사용할 오류 로그 출력 파일입니다. 예를 들면 gs://bucket-name/errors.txt입니다.

Cloud Storage Text to Datastore 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Datastore template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Datastore \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage의 입력 파일 패턴
  • JAVASCRIPT_FUNCTION: 자바스크립트 함수 이름
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로
  • ERROR_FILE_WRITE_PATH: Cloud Storage에서 오류 파일에 사용할 경로

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Datastore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage의 입력 파일 패턴
  • JAVASCRIPT_FUNCTION: 자바스크립트 함수 이름
  • PATH_TO_JAVASCRIPT_UDF_FILE: 자바스크립트 코드가 포함된 .js 파일의 Cloud Storage 경로
  • ERROR_FILE_WRITE_PATH: Cloud Storage에서 오류 파일에 사용할 경로

Cloud Storage Text to Pub/Sub(일괄)

이 템플릿은 Cloud Storage에 저장된 텍스트 파일의 레코드를 읽고 Pub/Sub 주제에 게시하는 일괄 파이프라인을 만듭니다. 이 템플릿을 사용하여 JSON 레코드를 포함하는 줄바꿈 구분 파일 또는 CSV 파일의 레코드를 Pub/Sub 주제에 게시하여 실시간으로 처리합니다. 이 템플릿을 사용하여 Pub/Sub에 데이터를 다시 재생할 수 있습니다.

이 템플릿은 개별 레코드에 타임스탬프를 설정하지 않습니다. 이벤트 시간은 실행 중 게시 시간과 일치합니다. 파이프라인을 처리하기 위해 정확한 이벤트 시간이 필요한 경우에는 이 파이프라인을 사용해서는 안 됩니다.

파이프라인 요구사항

  • 읽을 파일이 줄바꿈으로 구분되는 JSON 또는 CSV 형식이어야 합니다. 소스 파일에서 여러 줄에 걸쳐 있는 레코드는 다운스트림 문제를 일으킬 수 있습니다. 파일 안의 각 줄이 Pub/Sub에 메시지로 게시되기 때문입니다.
  • 파이프라인을 실행하기 전에 Pub/Sub 주제가 있어야 합니다.

템플릿 매개변수

매개변수 설명
inputFilePattern 읽을 입력 파일 패턴입니다. 예를 들면 gs://bucket-name/files/*.json입니다.
outputTopic 작성할 Pub/Sub 입력 주제입니다. 이름은 projects/<project-id>/topics/<topic-name> 형식이어야 합니다.

Cloud Storage Text to Pub/Sub(일괄) 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Pub/Sub (Batch) template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/files/*.json,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • TOPIC_NAME: Pub/Sub 주제 이름
  • BUCKET_NAME: Cloud Storage 버킷 이름

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/files/*.json",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • TOPIC_NAME: Pub/Sub 주제 이름
  • BUCKET_NAME: Cloud Storage 버킷 이름

Cloud Storage Text to Cloud Spanner

Cloud Storage Text to Cloud Spanner 템플릿은 Cloud Storage에서 CSV 텍스트 파일을 읽고 Cloud Spanner 데이터베이스로 가져오는 일괄 파이프라인입니다.

파이프라인 요구사항:

  • 대상 Cloud Spanner 데이터베이스와 테이블이 있어야 합니다.
  • Cloud Storage 버킷에 대한 읽기 권한과 대상 Cloud Spanner 데이터베이스에 대한 쓰기 권한이 있어야 합니다.
  • CSV 파일이 있는 입력 Cloud Storage 경로가 있어야 합니다.
  • CSV 파일에 대한 JSON 설명이 있는 가져오기 매니페스트 파일을 만들어야 하며 Cloud Storage에 해당 매니페스트 파일을 저장해야 합니다.
  • 대상 Cloud Spanner 데이터베이스에 이미 스키마가 있는 경우 매니페스트 파일에 지정된 열의 데이터 유형이 대상 데이터베이스 스키마의 해당 열과 같아야 합니다.
  • ASCII 또는 UTF-8로 인코딩된 매니페스트 파일은 다음 형식과 일치해야 합니다.

  • 가져올 텍스트 파일은 ASCII 또는 UTF-8 인코딩의 CSV 형식이어야 합니다. UTF-8 인코딩 파일에는 바이트 순서 표시(BOM)를 사용하지 않는 것이 좋습니다.
  • 데이터는 다음 유형 중 하나와 일치해야 합니다.
    • INT64
    • FLOAT64
    • BOOL
    • STRING
    • DATE
    • TIMESTAMP

템플릿 매개변수

매개변수 설명
instanceId Cloud Spanner 데이터베이스의 인스턴스 ID입니다.
databaseId Cloud Spanner 데이터베이스의 데이터베이스 ID입니다.
importManifest 가져오기 매니페스트 파일에 대한 Cloud Storage의 경로입니다.
columnDelimiter 소스 파일이 사용하는 열 구분 기호입니다. 기본값은 ,입니다.
fieldQualifier columnDelimiter를 포함하는 소스 파일에서 모든 값 주변에 표시되어야 하는 문자입니다. 기본값은 "입니다.
trailingDelimiter 소스 파일의 행에 후행 구분 기호가 있는지 여부를 지정합니다(즉, 마지막 열 값 다음에 각 행의 끝에 columnDelimiter 문자가 있는 경우). 기본값은 true입니다.
escape 소스 파일이 사용하는 이스케이프 문자입니다. 기본적으로 이 매개변수는 설정되지 않으며 템플릿은 이스케이프 문자를 사용하지 않습니다.
nullString NULL 값을 나타내는 문자열입니다. 기본적으로 이 매개변수는 설정되지 않으며 템플릿은 null 문자열을 사용하지 않습니다.
dateFormat 날짜 열을 파싱하는 데 사용되는 형식입니다. 기본적으로 파이프라인은 날짜 열을 2019-01-31 또는 2019-1-1 00:00:00과 같이 yyyy-M-d[' 00:00:00']로 파싱합니다. 날짜 형식이 다른 경우에는 java.time.format.DateTimeFormatter 패턴을 사용하여 형식을 지정입니다.
timestampFormat 타임스탬프 열을 파싱하는 데 사용되는 형식입니다. 타임스탬프가 긴 정수이면 Unix epoch 시간으로 파싱됩니다. 그렇지 않으면 java.time.format.DateTimeFormatter.ISO_INSTANT 형식을 사용하는 문자열로 파싱됩니다. 아니면 "Jan 21 1998 01:02:03.456+08:00". 형식의 타임스탬프에 MMM dd yyyy HH:mm:ss.SSSVV를 사용하여 패턴 문자열을 직접 지정합니다.

맞춤설정된 날짜 또는 타임스탬프 형식을 사용해야 하는 경우 유효한 java.time.format.DateTimeFormatter 패턴인지 확인합니다. 다음 표는 날짜 및 타임스탬프 열에 맞춤설정된 형식의 다른 예시를 보여줍니다.

유형 값 입력 형식 설명
DATE 2011-3-31 기본적으로 템플릿은 이 형식을 파싱할 수 있습니다. dateFormat 매개변수를 지정할 필요가 없습니다.
DATE 2011-3-31 00:00:00 기본적으로 템플릿은 이 형식을 파싱할 수 있습니다. 형식을 지정할 필요가 없습니다. 원한다면 yyyy-M-d' 00:00:00'을 사용할 수 있습니다.
DATE 01 Apr, 18 dd MMM, yy
DATE Wednesday, April 3, 2019 AD EEEE, LLLL d, yyyy G
TIMESTAMP 2019-01-02T11:22:33Z
2019-01-02T11:22:33.123Z
2019-01-02T11:22:33.12356789Z
기본 형식 ISO_INSTANT가 이 유형의 타임스탬프를 파싱할 수 있습니다. timestampFormat 매개변수를 제공할 필요가 없습니다.
TIMESTAMP 1568402363 기본적으로 템플릿은 이 유형의 타임스탬프를 파싱하여 Unix epoch 시간으로 처리할 수 있습니다.
TIMESTAMP Tue, 3 Jun 2008 11:05:30 GMT EEE, d MMM yyyy HH:mm:ss VV
TIMESTAMP 2018/12/31 110530.123PST yyyy/MM/dd HHmmss.SSSz
TIMESTAMP 2019-01-02T11:22:33Z 또는 2019-01-02T11:22:33.123Z yyyy-MM-dd'T'HH:mm:ss[.SSS]VV 입력 열이 2019-01-02T11:22:33Z 및 2019-01-02T11:22:33.123Z의 조합인 경우 기본 형식은 이 유형의 타임스탬프를 파싱할 수 있습니다. 직접 형식 매개변수를 제공할 필요가 없습니다. 하지만 yyyy-MM-dd'T'HH:mm:ss[.SSS]VV를 사용하면 두 경우 모두 처리할 수 있습니다. 포스트픽스 'Z'는 문자 리터럴이 아닌 시간대 ID로 파싱해야 하므로 yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z'를 사용할 수 없습니다. 내부적으로 타임스탬프 열이 java.time.Instant로 변환됩니다. 따라서 UTC로 지정하거나 시간대 정보를 연결해야 합니다. 2019-01-02 11:22:33 같은 현지 날짜/시간은 유효한 java.time.Instant로 파싱할 수 없습니다.

Text Files on Cloud Storage to Cloud Spanner 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Cloud Spanner template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
gcloud dataflow jobs run JOB_NAME \
    --gcs-location='gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner' \
    --region=DATAFLOW_REGION \
    --parameters='instanceId=INSTANCE_ID,databaseId=DATABASE_ID,importManifest=GCS_PATH_TO_IMPORT_MANIFEST'

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • DATAFLOW_REGION: Dataflow 작업을 실행할 리전(예시: us-central1)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_PATH_TO_IMPORT_MANIFEST: 가져오기 매니페스트 파일의 Cloud Storage 경로
  • JOB_NAME: 선택한 작업 이름

API

REST API로 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/DATAFLOW_REGION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "importManifest": "GCS_PATH_TO_IMPORT_MANIFEST"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

REST API 사용의 설명대로 이 요청 예시를 사용합니다. 이 요청에는 승인이 필요하며, 쓰기 권한이 있는 위치 tempLocation을 지정해야 합니다. 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • DATAFLOW_REGION: Dataflow 작업을 실행할 리전(예시: us-central1)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_PATH_TO_IMPORT_MANIFEST: 가져오기 매니페스트 파일의 Cloud Storage 경로
  • JOB_NAME: 선택한 작업 이름

Java Database Connectivity (JDBC) to BigQuery

JDBC to BigQuery 템플릿은 관계형 데이터베이스 테이블의 데이터를 기존 BigQuery 테이블로 복사하는 일괄 파이프라인입니다. 이 파이프라인은 JDBC를 사용하여 관계형 데이터베이스에 연결합니다. 이 템플릿을 통해 사용 가능한 JDBC 드라이버가 있는 관계형 데이터베이스의 데이터를 BigQuery로 복사할 수 있습니다. 추가적인 보안 레이어를 위해 Cloud KMS 키로 암호화된 Base64 인코딩 사용자 이름, 비밀번호 및 연결 문자열 매개변수와 함께 Cloud KMS 키를 전달할 수도 있습니다. 사용자 이름, 비밀번호, 연결 문자열 매개변수 암호화에 대한 자세한 내용은 Cloud KMS API 암호화 엔드포인트를 참조하세요.

파이프라인 요구사항:

  • 관계형 데이터베이스용 JDBC 드라이버를 사용할 수 있어야 합니다.
  • 파이프라인을 실행하기 전에 BigQuery 테이블이 있어야 합니다.
  • BigQuery 테이블에 호환 가능한 스키마가 있어야 합니다.
  • 관계형 데이터베이스는 Dataflow가 실행되는 서브넷에서 액세스할 수 있어야 합니다.

템플릿 매개변수

매개변수 설명
driverJars 쉼표로 구분된 드라이버 JAR 파일 목록입니다. 예를 들면 gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar입니다.
driverClassName JDBC 드라이버 클래스 이름입니다. 예를 들면 com.mysql.jdbc.Driver입니다.
connectionURL JDBC 연결 URL 문자열입니다. jdbc:mysql://some-host:3306/sampledb). Base64로 인코딩된 문자열로 전달한 후 Cloud KMS 키로 암호화할 수 있습니다.
query 데이터를 추출하기 위해 소스에서 실행될 쿼리입니다. 예를 들면 select * from sampledb.sample_table입니다.
outputTable BigQuery 출력 테이블 위치로, <my-project>:<my-dataset>.<my-table> 형식입니다.
bigQueryLoadingTemporaryDirectory BigQuery 로드 프로세스를 위한 임시 디렉터리입니다. 예를 들면 gs://<my-bucket>/my-files/temp_dir입니다.
connectionProperties (선택사항) JDBC 연결에 사용할 속성 문자열입니다. 예를 들면 unicode=true&characterEncoding=UTF-8입니다.
username (선택사항) JDBC 연결에 사용할 사용자 이름입니다. Cloud KMS 키로 암호화된 Base64 인코딩 문자열로 전달할 수 있습니다.
password (선택사항) JDBC 연결에 사용할 비밀번호입니다. Cloud KMS 키로 암호화된 Base64 인코딩 문자열로 전달할 수 있습니다.
KMSEncryptionKey (선택사항) 사용자 이름, 비밀번호, 연결 문자열을 복호화하는 Cloud KMS 암호화 키입니다. Cloud KMS 키가 전달되면 사용자 이름, 비밀번호, 연결 문자열이 모두 암호화되어 전달되어야 합니다.

JDBC to BigQuery 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the JDBC to BigQuery template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Jdbc_to_BigQuery \
    --parameters \
driverJars=DRIVER_PATHS,\
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
query=SOURCE_SQL_QUERY,\
outputTable=PROJECT_ID:DATASET.TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • DRIVER_PATHS: JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로
  • DRIVER_CLASS_NAME: 드라이브 클래스 이름
  • JDBC_CONNECTION_URL: JDBC 연결 URL
  • SOURCE_SQL_QUERY: 소스 데이터베이스에서 실행할 SQL 쿼리
  • DATASET: BigQuery 데이터 세트 및 TABLE_NAME: BigQuery 테이블 이름
  • PATH_TO_TEMP_DIR_ON_GCS: 임시 디렉터리의 Cloud Storage 경로
  • CONNECTION_PROPERTIES: JDBC 연결 속성(필요한 경우)
  • CONNECTION_USERNAME: JDBC 연결 사용자 이름
  • CONNECTION_PASSWORD: JDBC 연결 비밀번호
  • KMS_ENCRYPTION_KEY: Cloud KMS 암호화 키

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Jdbc_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverJars": "DRIVER_PATHS",
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "query": "SOURCE_SQL_QUERY",
       "outputTable": "PROJECT_ID:DATASET.TABLE_NAME",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • DRIVER_PATHS: JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로
  • DRIVER_CLASS_NAME: 드라이브 클래스 이름
  • JDBC_CONNECTION_URL: JDBC 연결 URL
  • SOURCE_SQL_QUERY: 소스 데이터베이스에서 실행할 SQL 쿼리
  • DATASET: BigQuery 데이터 세트 및 TABLE_NAME: BigQuery 테이블 이름
  • PATH_TO_TEMP_DIR_ON_GCS: 임시 디렉터리의 Cloud Storage 경로
  • CONNECTION_PROPERTIES: JDBC 연결 속성(필요한 경우)
  • CONNECTION_USERNAME: JDBC 연결 사용자 이름
  • CONNECTION_PASSWORD: JDBC 연결 비밀번호
  • KMS_ENCRYPTION_KEY: Cloud KMS 암호화 키

Apache Cassandra to Cloud Bigtable

Apache Cassandra to Cloud Bigtable 템플릿은 Apache Cassandra에서 Cloud Bigtable로 테이블을 복사합니다. 이 템플릿에는 최소한의 구성만 필요하며 Cassandra의 테이블 구조를 Cloud Bigtable에서 최대한 유사하게 복제합니다.

Apache Cassandra to Cloud Bigtable 템플릿은 다음과 같은 경우에 유용합니다.

  • 짧은 다운타임이 허용되는 상황에서 Apache Cassandra 데이터베이스를 마이그레이션합니다.
  • 전역 제공을 위해 Cassandra 테이블을 주기적으로 Cloud Bigtable에 복제합니다.

파이프라인 요구사항

  • 파이프라인을 실행하기 전에 대상 Cloud Bigtable 테이블이 있어야 합니다.
  • Dataflow 작업자와 Apache Cassandra 노드 간 네트워크 연결이 필요합니다.

유형 변환

Apache Cassandra to Cloud Bigtable 템플릿은 Apache Cassandra 데이터 유형을 자동으로 Cloud Bigtable의 데이터 유형으로 변환합니다.

Cloud Bigtable과 Apache Cassandra에서 대부분의 기본 유형은 동일하게 표현되지만 다음 기본 유형은 다르게 표현됩니다.

  • DateTimestampDateTime 객체로 변환됩니다.
  • UUIDString으로 변환됩니다.
  • VarintBigDecimal로 변환됩니다.

또한 Apache Cassandra는 Tuple, List, Set, Map 같이 더 복잡한 유형을 기본적으로 지원합니다. Tuple은 해당하는 유형이 Apache Beam에 없으므로 이 파이프라인에서는 지원되지 않습니다.

예를 들어 Apache Cassandra에서 다음 테이블에서와 같이 'mylist'라는 List 타입의 열과 값을 포함할 수 있습니다.

row mylist
1 (a,b,c)

이 파이프라인은 목록 열을 3개의 서로 다른 열(Cloud Bigtable에서 column qualifier로 알려져 있음)로 확장합니다. 열 이름은 'mylist'이지만 파이프라인은 목록의 항목 색인도 추가합니다(예: 'mylist[0]').

row mylist[0] mylist[1] mylist[2]
1 a b c

파이프라인은 집합을 목록과 동일하게 처리하지만 셀이 키인지 값인지 표시하기 위해 서픽스를 추가합니다.

row mymap
1 {"first_key":"first_value","another_key":"different_value"}

변환 후에는 테이블이 다음과 같이 표시됩니다.

row mymap[0].key mymap[0].value mymap[1].key mymap[1].value
1 first_key first_value another_key different_value

기본 키 변환

Apache Cassandra에서 기본 키는 데이터 정의 언어를 사용하여 정의됩니다. 기본 키는 단순, 복합 또는 클러스터링 열이 포함된 혼합 키 중 하나입니다. Cloud Bigtable은 바이트 배열에 사전순으로 정렬된 수동 row-key 생성을 지원합니다. 파이프라인은 키 유형에 대한 정보를 자동으로 수집하고 여러 값을 기반으로 row-key를 빌드하는 권장사항에 따라 키를 구축합니다.

템플릿 매개변수

매개변수 설명
cassandraHosts 쉼표로 구분된 목록에 있는 Apache Cassandra 노드의 호스트
cassandraPort (선택 사항) 노드에서 Apache Cassandra에 도달하기 위한 TCP 포트(기본값 : 9042)
cassandraKeyspace 테이블이 있는 Apache Cassandra 키스페이스
cassandraTable 복사할 Apache Cassandra 테이블
bigtableProjectId Apache Cassandra 테이블이 복사되는 Cloud Bigtable 인스턴스의 Google Cloud 프로젝트 ID
bigtableInstanceId Apache Cassandra 테이블을 복사할 Cloud Bigtable 인스턴스 ID
bigtableTableId Apache Cassandra 테이블을 복사할 Cloud Bigtable 테이블의 이름
defaultColumnFamily (선택사항) Cloud Bigtable 테이블의 column family 이름. 기본값은 default입니다.
rowKeySeparator (선택사항) row-key를 빌드하는 데 사용되는 구분 기호. 기본값은 #입니다.

Apache Cassandra to Cloud Bigtable 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Apache Cassandra to Cloud Bigtable template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable \
    --parameters\
bigtableProjectId=PROJECT_ID,\
bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
bigtableTableId=BIGTABLE_TABLE_ID,\
cassandraHosts=CASSANDRA_HOSTS,\
cassandraKeyspace=CASSANDRA_KEYSPACE,\
cassandraTable=CASSANDRA_TABLE

다음을 바꿉니다.

  • PROJECT_ID: Cloud Bigtable이 있는 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • BIGTABLE_INSTANCE_ID: Cloud Bigtable 인스턴스 ID
  • BIGTABLE_TABLE_ID: Cloud Bigtable 테이블 이름
  • CASSANDRA_HOSTS: Apache Cassandra 호스트 목록. 여러 호스트가 제공된 경우 쉼표를 이스케이프하는 방법에 대한 안내를 따르세요.
  • CASSANDRA_KEYSPACE: 테이블이 있는 Apache Cassandra 키스페이스
  • CASSANDRA_TABLE: 마이그레이션해야 하는 Apache Cassandra 테이블

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Cassandra_To_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "PROJECT_ID",
       "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
       "bigtableTableId": "BIGTABLE_TABLE_ID",
       "cassandraHosts": "CASSANDRA_HOSTS",
       "cassandraKeyspace": "CASSANDRA_KEYSPACE",
       "cassandraTable": "CASSANDRA_TABLE"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: Cloud Bigtable이 있는 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • BIGTABLE_INSTANCE_ID: Cloud Bigtable 인스턴스 ID
  • BIGTABLE_TABLE_ID: Cloud Bigtable 테이블 이름
  • CASSANDRA_HOSTS: Apache Cassandra 호스트 목록. 여러 호스트가 제공된 경우 쉼표를 이스케이프하는 방법에 대한 안내를 따르세요.
  • CASSANDRA_KEYSPACE: 테이블이 있는 Apache Cassandra 키스페이스
  • CASSANDRA_TABLE: 마이그레이션해야 하는 Apache Cassandra 테이블

Apache Hive to BigQuery

Apache Hive to BigQuery 템플릿은 Apache Hive 테이블에서 읽고 BigQuery 테이블에 쓰는 일괄 파이프라인입니다.

파이프라인 요구사항

  • 파이프라인을 실행하기 전에 대상 BigQuery 테이블이 있어야 합니다.
  • Dataflow 작업자와 Apache Hive 노드 간에 네트워크 연결이 있어야 합니다.
  • Dataflow 작업자와 Apache Thrift 서버 노드 사이에 네트워크 연결이 있어야 합니다.
  • 파이프라인을 실행하기 전에 BigQuery 데이터 세트가 있어야 합니다.

템플릿 매개변수

매개변수 설명
metastoreUri Apache Thrift 서버 URI입니다(예: thrift://thrift-server-host:port).
hiveDatabaseName 내보내려는 테이블이 포함된 Apache Hive 데이터베이스 이름입니다.
hiveTableName 내보내려는 Apache Hive 테이블 이름입니다.
outputTableSpec BigQuery 출력 테이블 위치로, <my-project>:<my-dataset>.<my-table> 형식입니다.
hivePartitionCols (선택사항) Apache Hive 파티션 열에 있는 쉼표로 구분된 목록입니다.
filterString (선택사항) 입력 Apache Hive 테이블의 필터 문자열입니다.
partitionType (선택사항) BigQuery의 파티션 유형입니다. 현재 Time만 지원됩니다.
partitionCol (선택사항) 출력 BigQuery 테이블의 파티션 열 이름입니다.

Apache Hive to BigQuery 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Apache Hive to BigQuery template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전이 138.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Hive_To_BigQuery
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Hive_To_BigQuery \
    --parameters\
metastoreUri=METASTORE_URI,\
hiveDatabaseName=HIVE_DATABASE_NAME,\
hiveTableName=HIVE_TABLE_NAME,\
outputTableSpec=PROJECT_ID:DATASET.TABLE_NAME,\
hivePartitionCols=HIVE_PARTITION_COLS,\
filterString=FILTER_STRING,\
partitionType=PARTITION_TYPE,\
partitionCol=PARTITION_COL

다음을 바꿉니다.

  • PROJECT_ID: BigQuery가 있는 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • DATASET: BigQuery 데이터 세트
  • TABLE_NAME을 BigQuery 테이블 이름으로 바꿉니다.
  • METASTORE_URI: Apache Thrift 서버 URI
  • HIVE_DATABASE_NAME: 내보내려는 테이블이 포함된 Apache Hive 데이터베이스 이름
  • HIVE_TABLE_NAME: 내보내려는 Apache Hive 테이블 이름
  • HIVE_PARTITION_COLS: Apache Hive 파티션 열의 쉼표로 구분된 목록
  • FILTER_STRING: Apache Hive 입력 테이블의 필터 문자열
  • PARTITION_TYPE: BigQuery의 파티션 유형
  • PARTITION_COL: BigQuery 파티션 열의 이름

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Hive_To_BigQuery

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Hive_To_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "metastoreUri": "METASTORE_URI",
       "hiveDatabaseName": "HIVE_DATABASE_NAME",
       "hiveTableName": "HIVE_TABLE_NAME",
       "outputTableSpec": "PROJECT_ID:DATASET.TABLE_NAME",
       "hivePartitionCols": "HIVE_PARTITION_COLS",
       "filterString": "FILTER_STRING",
       "partitionType": "PARTITION_TYPE",
       "partitionCol": "PARTITION_COL"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: BigQuery가 있는 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • DATASET: BigQuery 데이터 세트
  • TABLE_NAME을 BigQuery 테이블 이름으로 바꿉니다.
  • METASTORE_URI: Apache Thrift 서버 URI
  • HIVE_DATABASE_NAME: 내보내려는 테이블이 포함된 Apache Hive 데이터베이스 이름
  • HIVE_TABLE_NAME: 내보내려는 Apache Hive 테이블 이름
  • HIVE_PARTITION_COLS: Apache Hive 파티션 열의 쉼표로 구분된 목록
  • FILTER_STRING: Apache Hive 입력 테이블의 필터 문자열
  • PARTITION_TYPE: BigQuery의 파티션 유형
  • PARTITION_COL: BigQuery 파티션 열의 이름

파일 형식 변환(Avro, Parquet, CSV)

파일 형식 변환 템플릿은 Cloud Storage에 저장된 파일을 지원되는 형식에서 다른 형식으로 변환하는 일괄 파이프라인입니다.

다음과 같은 형식 변환이 지원됩니다.

  • CSV에서 Avro로
  • CSV에서 Parquet로
  • Avro에서 Parquet로
  • Parquet에서 Avro로

파이프라인 요구사항

  • 파이프라인을 실행하기 전에 출력 Cloud Storage 버킷이 있어야 합니다.

템플릿 매개변수

매개변수 설명
inputFileFormat 입력 파일 형식입니다. [csv, avro, parquet] 중 하나여야 합니다.
outputFileFormat 출력 파일 형식입니다. [avro, parquet] 중 하나여야 합니다.
inputFileSpec 입력 파일의 Cloud Storage 경로 패턴입니다. 예를 들면 gs://bucket-name/path/*.csv입니다.
outputBucket 출력 파일을 쓸 Cloud Storage 폴더입니다. 이 경로는 슬래시로 끝나야 합니다. 예를 들면 gs://bucket-name/output/입니다.
schema Avro 스키마 파일의 Cloud Storage 경로입니다(예시: gs://bucket-name/schema/my-schema.avsc).
containsHeaders (선택사항) 입력 CSV 파일에는 헤더 레코드가 포함됩니다(true/false). 기본값은 false입니다. CSV 파일을 읽을 때만 필요합니다.
csvFormat (선택사항) 레코드 파싱에 사용할 CSV 형식 지정입니다. 기본값은 Default입니다. 자세한 내용은 Apache Commons CSV 형식을 참조하세요.
delimiter (선택사항) 입력 CSV 파일에서 사용하는 필드 구분 기호입니다.
outputFilePrefix (선택사항) 출력 파일 프리픽스입니다. 기본값은 output입니다.
numShards (선택사항) 출력 파일 샤드 수입니다.

파일 형식 변환 템플릿 실행

콘솔

Cloud Console에서 실행
  1. Cloud Console에서 Dataflow 페이지로 이동합니다.
  2. Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. Cloud Console 템플릿에서 작업 만들기 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 the Convert file formats template을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

gcloud

gcloud 명령줄 도구에서 실행

참고: gcloud 명령줄 도구로 Flex 템플릿을 실행하려면 Cloud SDK 버전이 284.0.0 이상이어야 합니다.

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/flex/File_Format_Conversion
gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/latest/flex/File_Format_Conversion \
    --parameters \
inputFileFormat=INPUT_FORMAT,\
outputFileFormat=OUTPUT_FORMAT,\
inputFileSpec=INPUT_FILES,\
schema=SCHEMA,\
outputBucket=OUTPUT_FOLDER

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • INPUT_FORMAT: 입력 파일의 파일 형식. [csv, avro, parquet] 중 하나여야 합니다.
  • OUTPUT_FORMAT: 출력 파일의 파일 형식. [avro, parquet] 중 하나여야 합니다.
  • INPUT_FILES: 입력 파일의 경로 패턴
  • OUTPUT_FOLDER: 출력 파일의 Cloud Storage 폴더
  • SCHEMA: Avro 스키마 파일의 경로
  • LOCATION: 실행 리전(예시: us-central1).

API

REST API에서 실행

이 템플릿을 실행할 때는 템플릿의 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/flex/File_Format_Conversion

REST API 요청으로 이 템플릿을 실행하려면 프로젝트 ID와 함께 HTTP POST 요청을 보냅니다. 이 요청에는 승인이 필요합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileFormat": "INPUT_FORMAT",
          "outputFileFormat": "OUTPUT_FORMAT",
          "inputFileSpec": "INPUT_FILES",
          "schema": "SCHEMA",
          "outputBucket": "OUTPUT_FOLDER"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/latest/flex/File_Format_Conversion",
   }
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • JOB_NAME: 선택한 작업 이름
  • INPUT_FORMAT: 입력 파일의 파일 형식. [csv, avro, parquet] 중 하나여야 합니다.
  • OUTPUT_FORMAT: 출력 파일의 파일 형식. [avro, parquet] 중 하나여야 합니다.
  • INPUT_FILES: 입력 파일의 경로 패턴
  • OUTPUT_FOLDER: 출력 파일의 Cloud Storage 폴더
  • SCHEMA: Avro 스키마 파일의 경로
  • LOCATION: 실행 리전(예시: us-central1).