Google 제공 일괄 템플릿

Google은 오픈소스 Dataflow 템플릿 세트를 제공합니다. 템플릿에 대한 일반 정보는 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 파일 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • READ_QUERY: 실행할 BigQuery 쿼리
  • OUTPUT_DIRECTORY: 출력 데이터 세트의 Cloud Storage 경로 프리픽스
  • TRAINING_PERCENTAGE: 학습 데이터 세트의 십진수 비율 분할
  • TESTING_PERCENTAGE: 테스트 데이터 세트의 십진수 비율 분할
  • VALIDATION_PERCENTAGE: 검증 데이터 세트의 십진수 비율 분할
  • OUTPUT_FILENAME_SUFFIX: 선호하는 출력 TensorFlow 레코드 파일 서픽스

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/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: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • 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 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • OUTPUT_DIRECTORY: 출력 파일의 Cloud Storage 폴더
  • NUM_SHARDS: 원하는 출력 파일 샤드 수
  • FIELDS: 입력 BigQuery 테이블에서 선택할 수 있는 쉼표로 구분된 필드 목록

API

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

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/VERSION/flex/BigQuery_to_Parquet",
   }
}

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • OUTPUT_DIRECTORY: 출력 파일의 Cloud Storage 폴더
  • NUM_SHARDS: 원하는 출력 파일 샤드 수
  • FIELDS: 입력 BigQuery 테이블에서 선택할 수 있는 쉼표로 구분된 필드 목록

BigQuery to Elasticsearch

BigQuery to Elasticsearch 템플릿은 BigQuery 테이블의 데이터를 Elasticsearch에 문서로 수집하는 일괄 파이프라인입니다. 이 템플릿에서는 전체 테이블을 읽거나 제공된 쿼리를 사용하여 특정 레코드를 읽을 수 있습니다.

파이프라인 요구사항

  • 소스 BigQuery 테이블이 있어야 합니다.
  • GCP 인스턴스 또는 Elasticsearch 버전 7.0 이상을 사용하는 Elastic Cloud에 Elasticsearch 호스트가 있어야 하고 Dataflow 작업자 머신에서 액세스할 수 있어야 합니다.

템플릿 매개변수

매개변수 설명
connectionUrl Elasticsearch URL(https://hostname:[port] 형식) 또는 Elastic Cloud를 사용하는 경우 CloudID를 지정합니다.
apiKey 인증에 사용되는 Base64로 인코딩된 API 키입니다.
index 요청을 실행할 대상이 되는 Elasticsearch 색인입니다(예: my-index).
inputTableSpec (선택사항) Elasticsearch에 삽입할 데이터를 읽을 BigQuery 테이블입니다. 테이블 또는 쿼리가 제공되어야 합니다. projectId:datasetId.tablename).
query (선택사항) BigQuery에서 데이터를 가져오는 SQL 쿼리입니다. 테이블 또는 쿼리가 제공되어야 합니다.
useLegacySql (선택사항) legacy SQL을 사용하려면 true로 설정합니다(쿼리를 제공할 때만 해당). 기본값: false
batchSize (선택사항) 문서 수의 배치 크기입니다. 기본값: 1000
batchSizeBytes (선택사항) 바이트 수의 배치 크기입니다. 기본값은 5242880(5MB)입니다.
maxRetryAttempts (선택사항) 최대 재시도 횟수이며 0 이상이어야 합니다. 기본값: no retries
maxRetryDuration (선택사항) 밀리초 단위의 최대 재시도 시간이며 0 이상이어야 합니다. 기본값: no retries

BigQuery to Elasticsearch 템플릿 실행

Console

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

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

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

gcloud

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

gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch \
    --parameters \
inputTableSpec=INPUT_TABLE_SPEC,\
connectionUrl=CONNECTION_URL,\
apiKey=APIKEY,\
index=INDEX

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • INPUT_TABLE_SPEC: BigQuery 테이블 이름
  • CONNECTION_URL: Elasticsearch URL
  • APIKEY: 인증을 위한 base64 인코딩 API 키
  • INDEX: Elasticsearch 색인

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputTableSpec": "INPUT_TABLE_SPEC",
          "connectionUrl": "CONNECTION_URL",
          "apiKey": "APIKEY",
          "index": "INDEX"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch",
   }
}

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • INPUT_TABLE_SPEC: BigQuery 테이블 이름
  • CONNECTION_URL: Elasticsearch URL
  • APIKEY: 인증을 위한 base64 인코딩 API 키
  • INDEX: Elasticsearch 색인

Bigtable to Cloud Storage Avro

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

파이프라인 요구사항:

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

템플릿 매개변수

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

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

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Avro 파일 이름의 프리픽스(예시: output-)

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Avro 파일 이름의 프리픽스(예시: output-)

Bigtable to Cloud Storage Parquet

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

파이프라인 요구사항:

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

템플릿 매개변수

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

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

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Parquet 파일 이름의 프리픽스(예시: output-)
  • NUM_SHARDS: 출력할 Parquet 파일 수(예시: 1).

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • OUTPUT_DIRECTORY: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: Parquet 파일 이름의 프리픽스(예시: output-)
  • NUM_SHARDS: 출력할 Parquet 파일 수(예시: 1).

Bigtable to Cloud Storage SequenceFile

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

파이프라인 요구사항:

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

템플릿 매개변수

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

Bigtable to Cloud Storage SequenceFile 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • APPLICATION_PROFILE_ID: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 ID
  • DESTINATION_PATH: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: SequenceFile 파일 이름의 프리픽스(예시: output-)

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • APPLICATION_PROFILE_ID: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 ID
  • DESTINATION_PATH: 데이터가 작성되는 Cloud Storage 경로(예시: gs://mybucket/somefolder)
  • FILENAME_PREFIX: SequenceFile 파일 이름의 프리픽스(예시: output-)

Datastore to Cloud Storage Text[지원 중단됨]

이 템플릿은 지원 중단되었으며 2022년 1분기에 삭제됩니다. Firestore 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 (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
javascriptTextTransformFunctionName (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다. 예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.
textWritePrefix 데이터가 작성되는 위치를 지정하는 Cloud Storage 경로 프리픽스입니다. 예를 들면 gs://mybucket/somefolder/입니다.

Datastore to Cloud Storage Text 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

  • JOB_NAME: 선택한 고유한 작업 이름
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • DATASTORE_PROJECT_ID: Datastore 인스턴스가 있는 클라우드 프로젝트 ID
  • DATASTORE_KIND: Datastore 항목의 유형
  • DATASTORE_NAMESPACE: Datastore 항목의 네임스페이스
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND"
       "datastoreReadProjectId": "DATASTORE_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: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • DATASTORE_PROJECT_ID: Datastore 인스턴스가 있는 클라우드 프로젝트 ID
  • DATASTORE_KIND: Datastore 항목의 유형
  • DATASTORE_NAMESPACE: Datastore 항목의 네임스페이스
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.

Firestore to Cloud Storage Text

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

파이프라인 요구사항

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

템플릿 매개변수

매개변수 설명
firestoreReadGqlQuery 가져올 항목을 지정하는 GQL 쿼리입니다. 예를 들면 SELECT * FROM MyKind입니다.
firestoreReadProjectId 데이터를 읽으려는 Firestore 인스턴스의 Google Cloud 프로젝트 ID입니다.
firestoreReadNamespace 요청한 항목의 네임스페이스입니다. 기본 네임스페이스를 사용하려면 이 매개변수를 공백으로 둡니다.
javascriptTextTransformGcsPath (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
javascriptTextTransformFunctionName (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다. 예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.
textWritePrefix 데이터가 작성되는 위치를 지정하는 Cloud Storage 경로 프리픽스입니다. 예를 들면 gs://mybucket/somefolder/입니다.

Firestore to Cloud Storage Text 템플릿 실행

Console

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Firestore_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
firestoreReadGqlQuery="SELECT * FROM FIRESTORE_KIND",\
firestoreReadProjectId=FIRESTORE_PROJECT_ID,\
firestoreReadNamespace=FIRESTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

다음을 바꿉니다.

  • JOB_NAME: 선택한 고유한 작업 이름
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • FIRESTORE_PROJECT_ID: Firestore 인스턴스가 있는 클라우드 프로젝트 ID
  • FIRESTORE_KIND: Firestore 항목 유형
  • FIRESTORE_NAMESPACE: Firestore 항목의 네임스페이스
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Firestore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "firestoreReadGqlQuery": "SELECT * FROM FIRESTORE_KIND"
       "firestoreReadProjectId": "FIRESTORE_PROJECT_ID",
       "firestoreReadNamespace": "FIRESTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • FIRESTORE_PROJECT_ID: Firestore 인스턴스가 있는 클라우드 프로젝트 ID
  • FIRESTORE_KIND: Firestore 항목 유형
  • FIRESTORE_NAMESPACE: Firestore 항목의 네임스페이스
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.

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입니다. 타임스탬프는 과거여야 하며 최대 타임스탬프 비활성이 적용됩니다.
tableNames (선택사항) 내보낼 Cloud Spanner 데이터베이스의 하위 집합을 지정하는 쉼표로 구분된 테이블 목록입니다. 이 목록에는 모든 관련 테이블(상위 테이블, 외래 키 참조 테이블)이 포함되어야 합니다. 명시적으로 나열되지 않은 경우 성공적인 내보내기를 위해 'shouldExportRelatedTables' 플래그를 설정해야 합니다.
shouldExportRelatedTables (선택사항) 'tableNames' 매개변수와 함께 사용하여 내보내는 모든 관련 테이블을 포함하는 플래그입니다.
spannerProjectId (선택사항) 데이터를 읽을 Cloud Spanner 데이터베이스의 Google Cloud 프로젝트 ID입니다.

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

Console

  1. Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다.
  2. 템플릿에서 작업 만들기로 이동
  3. 작업 이름 필드에 고유한 작업 이름을 입력합니다.

    Cloud Console의 Spanner 인스턴스 페이지에 작업이 표시되려면 작업 이름이 다음 형식과 일치해야 합니다.

    cloud-spanner-export-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME

    다음을 바꿉니다.

    • SPANNER_INSTANCE_ID: Spanner 인스턴스의 ID
    • SPANNER_DATABASE_NAME: Spanner 데이터베이스의 이름
  4. 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는 us-central1입니다.

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

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

gcloud

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

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

다음을 바꿉니다.

  • JOB_NAME: 선택한 고유한 작업 이름

    Cloud Console의 Cloud Spanner 부분에 표시되는 작업의 경우 작업 이름이 cloud-spanner-export-INSTANCE_ID-DATABASE_ID 형식과 일치해야 합니다.

  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: 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를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 projects.templates.launch를 참조하세요.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/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"
   }
}

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름

    Cloud Console의 Cloud Spanner 부분에 표시되는 작업의 경우 작업 이름이 cloud-spanner-export-INSTANCE_ID-DATABASE_ID 형식과 일치해야 합니다.

  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • GCS_STAGING_LOCATION: 임시 파일 쓰기 경로(예: gs://mybucket/temp)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_DIRECTORY: Avro 파일을 내보낼 Cloud Storage 경로

Cloud Spanner to Cloud Storage Text

Cloud Spanner to Cloud Storage Text 템플릿은 Cloud Spanner 테이블에서 데이터를 읽고 Cloud Storage에 CSV 텍스트 파일로 쓰는 일괄 파이프라인입니다.

파이프라인 요구사항

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

템플릿 매개변수

매개변수 설명
spannerProjectId 데이터를 읽을 Cloud Spanner 데이터베이스의 Google Cloud 프로젝트 ID입니다.
spannerDatabaseId 요청된 테이블의 데이터베이스 ID입니다.
spannerInstanceId 요청된 테이블의 인스턴스 ID입니다.
spannerTable 데이터를 읽을 테이블입니다.
textWritePrefix 출력 텍스트 파일이 기록되는 디렉터리입니다. 마지막에 /를 추가합니다. 예를 들면 gs://mybucket/somefolder/입니다.
spannerSnapshotTime (선택사항) 읽으려는 Cloud Spanner 데이터베이스의 버전에 해당하는 타임스탬프입니다. 타임스탬프는 RFC 3339 UTC 'Zulu' 형식에 따라 지정되어야 합니다. 예를 들면 1990-12-31T23:59:60Z입니다. 타임스탬프는 과거여야 하며 최대 타임스탬프 비활성이 적용됩니다.

Cloud Spanner to Cloud Storage Text 템플릿 실행

Console

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • SPANNER_PROJECT_ID: 데이터를 읽을 Spanner 데이터베이스의 클라우드 프로젝트 ID
  • DATABASE_ID: Spanner 데이터베이스 ID
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • INSTANCE_ID: Spanner 인스턴스 ID
  • TABLE_ID: Spanner 테이블 ID
  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • SPANNER_PROJECT_ID: 데이터를 읽을 Spanner 데이터베이스의 클라우드 프로젝트 ID
  • DATABASE_ID: Spanner 데이터베이스 ID
  • BUCKET_NAME: Cloud Storage 버킷 이름
  • INSTANCE_ID: Spanner 인스턴스 ID
  • TABLE_ID: Spanner 테이블 ID
  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

Cloud Storage Avro to Bigtable

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

파이프라인 요구사항:

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

템플릿 매개변수

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

Cloud Storage Avro file to Bigtable 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 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 템플릿 실행

Console

  1. Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다.
  2. 템플릿에서 작업 만들기로 이동
  3. 작업 이름 필드에 고유한 작업 이름을 입력합니다.

    Cloud Console의 Spanner 인스턴스 페이지에 작업이 표시되려면 작업 이름이 다음 형식과 일치해야 합니다.

    cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME

    다음을 바꿉니다.

    • SPANNER_INSTANCE_ID: Spanner 인스턴스의 ID
    • SPANNER_DATABASE_NAME: Spanner 데이터베이스의 이름
  4. 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는 us-central1입니다.

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • INSTANCE_ID: 데이터베이스가 포함된 Spanner 인스턴스의 ID
  • DATABASE_ID: 가져올 Spanner 데이터베이스의 ID
  • GCS_DIRECTORY: Avro 파일을 가져올 Cloud Storage 경로(예시: gs://mybucket/somefolder)

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/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"
   }
}

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • INSTANCE_ID: 데이터베이스가 포함된 Spanner 인스턴스의 ID
  • DATABASE_ID: 가져올 Spanner 데이터베이스의 ID
  • GCS_DIRECTORY: Avro 파일을 가져올 Cloud Storage 경로(예시: gs://mybucket/somefolder)

Cloud Storage Parquet to Bigtable

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

파이프라인 요구사항:

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

템플릿 매개변수

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

Cloud Storage Parquet file to Bigtable 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • INPUT_FILE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

Cloud Storage SequenceFile to Bigtable

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

파이프라인 요구사항:

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

템플릿 매개변수

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

Cloud Storage SequenceFile to Bigtable 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • APPLICATION_PROFILE_ID: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 ID
  • SOURCE_PATTERN: 데이터가 있는 Cloud Storage 경로 패턴(예시: gs://mybucket/somefolder/prefix*)

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • BIGTABLE_PROJECT_ID: 데이터를 읽으려는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다.
  • INSTANCE_ID: 테이블을 포함하는 Bigtable 인스턴스의 ID입니다.
  • TABLE_ID: 내보낼 Bigtable 테이블의 ID입니다.
  • APPLICATION_PROFILE_ID: 내보내기에 사용될 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 스키마를 설명하는 JSON 파일을 만듭니다.

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

    Cloud Storage Text to BigQuery 일괄 템플릿은 대상 BigQuery 테이블에서 STRUCT(레코드) 필드로 데이터 가져오기를 지원하지 않습니다.

    다음 JSON은 예시 BigQuery 스키마를 설명합니다.

    {
      "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 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다. 예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.
JSONPath Cloud Storage에 저장된 BigQuery 스키마를 정의하는 JSON 파일의 gs:// 경로입니다. 예를 들면 gs://path/to/my/schema.json입니다.
javascriptTextTransformGcsPath 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.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 템플릿 실행

Console

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery \
    --region REGION_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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_BIGQUERY_SCHEMA_JSON: 스키마 정의가 포함된 JSON 파일의 Cloud Storage 경로
  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • PATH_TO_TEXT_DATA: 텍스트 데이터 세트의 Cloud Storage 경로
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • PATH_TO_TEMP_DIR_ON_GCS: 임시 디렉터리의 Cloud Storage 경로

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/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: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_BIGQUERY_SCHEMA_JSON: 스키마 정의가 포함된 JSON 파일의 Cloud Storage 경로
  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • PATH_TO_TEXT_DATA: 텍스트 데이터 세트의 Cloud Storage 경로
  • BIGQUERY_TABLE: BigQuery 테이블 이름
  • PATH_TO_TEMP_DIR_ON_GCS: 임시 디렉터리의 Cloud Storage 경로

Cloud Storage Text to Datastore[지원 중단됨]

이 템플릿은 지원 중단되었으며 2022년 1분기에 삭제됩니다. Cloud Storage Text to Firestore 템플릿으로 마이그레이션하세요.

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

파이프라인 요구사항

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

템플릿 매개변수

매개변수 설명
textReadPattern 텍스트 데이터 파일의 위치를 지정하는 Cloud Storage 경로 패턴입니다. 예를 들면 gs://mybucket/somepath/*.json입니다.
javascriptTextTransformGcsPath (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
javascriptTextTransformFunctionName (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다. 예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.
datastoreWriteProjectId Datastore 항목을 쓸 위치의 Google Cloud 프로젝트 ID입니다.
datastoreHintNumWorkers (선택사항) Datastore 증가 제한 단계의 예상 작업자 수에 대한 힌트입니다. 기본값은 500입니다.
errorWritePath 처리 중에 발생하는 쓰기 오류에 대해 사용할 오류 로그 출력 파일입니다. 예를 들면 gs://bucket-name/errors.txt입니다.

Cloud Storage Text to Datastore 템플릿 실행

Console

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Datastore \
    --region REGION_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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage의 입력 파일 패턴
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • ERROR_FILE_WRITE_PATH: Cloud Storage에서 오류 파일에 사용할 경로

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/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: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage의 입력 파일 패턴
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • ERROR_FILE_WRITE_PATH: Cloud Storage에서 오류 파일에 사용할 경로

Cloud Storage Text to Firestore

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

파이프라인 요구사항

  • 대상 프로젝트에서 Firestore를 사용 설정해야 합니다.

템플릿 매개변수

매개변수 설명
textReadPattern 텍스트 데이터 파일의 위치를 지정하는 Cloud Storage 경로 패턴입니다. 예를 들면 gs://mybucket/somepath/*.json입니다.
javascriptTextTransformGcsPath (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
javascriptTextTransformFunctionName (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다. 예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.
firestoreWriteProjectId Firestore 항목을 쓸 위치의 Google Cloud 프로젝트 ID입니다.
firestoreHintNumWorkers (선택사항) Firestore 증가 제한 단계의 예상 작업자 수에 대한 힌트입니다. 기본값은 500입니다.
errorWritePath 처리 중에 발생하는 쓰기 오류에 대해 사용할 오류 로그 출력 파일입니다. 예를 들면 gs://bucket-name/errors.txt입니다.

Cloud Storage Text to Firestore 템플릿 실행

Console

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Firestore \
    --region REGION_NAME \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
firestoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage의 입력 파일 패턴
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • ERROR_FILE_WRITE_PATH: Cloud Storage에서 오류 파일에 사용할 경로

API

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • PATH_TO_INPUT_TEXT_FILES: Cloud Storage의 입력 파일 패턴
  • JAVASCRIPT_FUNCTION: 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다.

    예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.

  • PATH_TO_JAVASCRIPT_UDF_FILE: 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
  • 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(일괄) 템플릿 실행

Console

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

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

  5. Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Pub/Sub (Batch) template을 선택합니다.
  6. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  7. 작업 실행을 클릭합니다.

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • TOPIC_NAME: Pub/Sub 주제 이름
  • BUCKET_NAME: Cloud Storage 버킷 이름

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/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: Dataflow 작업을 실행할 Cloud 프로젝트 ID
  • JOB_NAME: 선택한 고유한 작업 이름
  • VERSION: 사용할 템플릿 버전

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • 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 템플릿 실행

Console

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

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

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

gcloud

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

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

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_PATH_TO_IMPORT_MANIFEST: 가져오기 매니페스트 파일의 Cloud Storage 경로

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/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"
   }
}

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • LOCATION: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • INSTANCE_ID: Cloud Spanner 인스턴스 ID
  • DATABASE_ID: Cloud Spanner 데이터베이스 ID
  • GCS_PATH_TO_IMPORT_MANIFEST: 가져오기 매니페스트 파일의 Cloud Storage 경로

Cloud Storage to Elasticsearch

Cloud Storage to Elasticsearch 템플릿은 Cloud Storage 버킷에 저장된 csv 파일에서 데이터를 읽고 Elasticsearch에 데이터를 JSON 문서로 쓰는 일괄 파이프라인입니다.

파이프라인 요구사항

  • Cloud Storage 버킷이 있어야 합니다.
  • Dataflow에서 액세스할 수 있는 GCP 인스턴스 또는 Elasticsearch Cloud의 Elasticsearch 호스트가 있어야 합니다.
  • 오류 출력용 BigQuery 테이블이 있어야 합니다.

템플릿 매개변수

매개변수 설명
inputFileSpec CSV 파일을 검색하는 Cloud Storage 파일 패턴입니다. 예: gs://mybucket/test-*.csv
connectionUrl Elasticsearch URL(https://hostname:[port] 형식) 또는 Elastic Cloud를 사용하는 경우 CloudID를 지정합니다.
apiKey 인증에 사용되는 Base64로 인코딩된 API 키입니다.
index 요청을 실행할 대상이 되는 Elasticsearch 색인입니다(예: my-index).
deadletterTable 실패한 삽입을 전송할 BigQuery Deadletter 테이블입니다. 예: <your-project>:<your-dataset>.<your-table-name>
containsHeaders (선택사항) 헤더가 CSV에 포함되어 있는지 여부를 나타내는 부울입니다. 기본값: true
delimiter (선택사항) CSV에서 사용되는 구분 기호입니다. 예: ,
csvFormat (선택사항) Apache Commons CSV 형식에 따른 CSV 형식입니다. 기본값: Default
jsonSchemaPath (선택사항) JSON 스키마의 경로입니다. 기본값: null
largeNumFiles (선택사항) 파일 수가 수만 개인 경우 true로 설정합니다. 기본값: false
javascriptTextTransformGcsPath (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)를 정의하는 .js 파일의 Cloud Storage URI입니다. 예를 들면 gs://my-bucket/my-udfs/my_file.js입니다.
javascriptTextTransformFunctionName (선택사항) 사용할 자바스크립트 사용자 정의 함수(UDF)의 이름입니다. 예를 들어 자바스크립트 함수가 myTransform(inJson) { /*...do stuff...*/ }이면 함수 이름은 myTransform입니다. 샘플 자바스크립트 UDF는 UDF 예시를 참조하세요.
batchSize (선택사항) 문서 수의 배치 크기입니다. 기본값: 1000
batchSizeBytes (선택사항) 바이트 수의 배치 크기입니다. 기본값은 5242880(5MB)입니다.
maxRetryAttempts (선택사항) 최대 재시도 횟수이며 0 이상이어야 합니다. 기본값: 재시도 없음
maxRetryDuration (선택사항) 밀리초 단위의 최대 재시도 시간이며 0 이상이어야 합니다. 기본값: 재시도 없음
csvFileEncoding (선택사항) CSV 파일 인코딩입니다.

Cloud Storage to Elasticsearch 템플릿 실행

Console

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

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

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

gcloud

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

gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID\
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/GCS_To_Elasticsearch \
    --parameters \
inputFileSpec=INPUT_FILE_SPEC,\
connectionUrl=CONNECTION_URL,\
apiKey=APIKEY,\
index=INDEX,\
deadletterTable=DEADLETTER_TABLE,\

다음을 바꿉니다.

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

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

    • latest: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.
    • 버전 이름(예: 2021-09-20-00_RC00): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
  • REGION_NAME: Dataflow 작업을 배포할 리전 엔드포인트(예: us-central1)
  • INPUT_FILE_SPEC: Cloud Storage 파일 패턴
  • CONNECTION_URL: Elasticsearch URL
  • APIKEY: 인증을 위한 base64 인코딩 API 키
  • INDEX: Elasticsearch 색인
  • DEADLETTER_TABLE: 사용자의 BigQuery 테이블

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileSpec": "INPUT_FILE_SPEC",
          "connectionUrl": "CONNECTION_URL",
          "apiKey": "APIKEY",
          "index": "INDEX",
          "deadletterTable": "DEADLETTER_TABLE"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/GCS_To_Elasticsearch",
   }
}

다음을 바꿉니다.

  • PROJECT_ID: Dataflow 작업을 실행할 Cloud 프로젝트 ID