Google은 오픈소스 Dataflow 템플릿 세트를 제공합니다.
이러한 Dataflow 템플릿을 사용하면 전용 개발 환경을 사용하지 않고도 데이터 가져오기, 데이터 내보내기, 데이터 백업, 데이터 복원, 일괄 API 작업 등의 대규모 데이터 태스크를 해결하는 데 도움이 될 수 있습니다. 이 템플릿은 Apache Beam을 기반으로 하며 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 파일 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the BigQuery to TFRecords template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the BigQuery export to Parquet (via Storage API) template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 프로젝트 IDJOB_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 테이블이 있어야 합니다.
- Google Cloud 인스턴스 또는 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 . |
propertyAsIndex |
(선택사항) 일괄 요청에서 문서에 포함할 _index 메타데이터를 지정하는 값이 있는 문서의 속성입니다(_index UDF보다 우선 적용됨). 기본값: none. |
propertyAsId |
(선택사항) 일괄 요청에서 문서에 포함할 _id 메타데이터를 지정하는 값이 있는 문서의 속성입니다(_id UDF보다 우선 적용됨). 기본값: none. |
javaScriptIndexFnGcsPath |
(선택사항) 일괄 요청에서 문서에 포함할 _index 메타데이터를 지정할 자바스크립트 UDF 소스의 Cloud Storage 경로입니다. 기본값: none. |
javaScriptIndexFnName |
(선택사항) 일괄 요청에서 문서에 포함할 _index 메타데이터를 지정할 함수의 UDF 자바스크립트 함수 이름입니다. 기본값: none. |
javaScriptIdFnGcsPath |
(선택사항) 일괄 요청에서 문서에 포함할 _id 메타데이터를 지정할 자바스크립트 UDF 소스의 Cloud Storage 경로입니다. 기본값: none. |
javaScriptIdFnName |
(선택사항) 일괄 요청에서 문서에 포함할 _id 메타데이터를 지정할 함수의 UDF 자바스크립트 함수 이름입니다. 기본값: none. |
javaScriptTypeFnGcsPath |
(선택사항) 일괄 요청에서 문서에 포함할 _type 메타데이터를 지정할 자바스크립트 UDF 소스의 Cloud Storage 경로입니다. 기본값: none. |
javaScriptTypeFnName |
(선택사항) 일괄 요청에서 문서에 포함할 _type 메타데이터를 지정할 함수의 UDF 자바스크립트 함수 이름입니다. 기본값: none. |
javaScriptIsDeleteFnGcsPath |
(선택사항) 문서를 삽입하거나 업데이트하는 대신 삭제해야 하는지 여부를 결정하는 함수의 자바스크립트 UDF 소스에 대한 Cloud Storage 경로입니다. 이 함수는 문자열 값 "true" 또는 "false" 를 반환해야 합니다. 기본값: none. |
javaScriptIsDeleteFnName |
(선택사항) 문서를 삽입하거나 업데이트하지 않고 삭제할지 여부를 결정하는 함수의 UDF 자바스크립트 함수 이름입니다. 이 함수는 문자열 값 "true" 또는 "false" 를 반환해야 합니다. 기본값: none. |
usePartialUpdate |
(선택사항) Elasticsearch 요청에서 부분 업데이트 (만들기 또는 색인 대신 업데이트, 부분 문서 허용)를 사용할지 여부입니다. 기본값: false . |
bulkInsertMethod |
(선택사항) Elasticsearch 일괄 요청에서 INDEX (색인, 업데이트 허용) 또는 CREATE (만들기, 중복 _id 오류)를 사용할지 여부입니다. 기본값: CREATE . |
BigQuery to Elasticsearch 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the BigQuery to Elasticsearch template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 URLAPIKEY
: 인증을 위한 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 프로젝트 IDJOB_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 URLAPIKEY
: 인증을 위한 base64 인코딩 API 키INDEX
: Elasticsearch 색인
BigQuery to MongoDB
BigQuery to MongoDB 템플릿은 BigQuery에서 행을 읽고 MongoDB에 문서로 쓰는 일괄 파이프라인입니다. 현재 각 행은 문서로 저장됩니다.
파이프라인 요구사항
- 소스 BigQuery 테이블이 있어야 합니다.
- 대상 작업자 MongoDB 인스턴스는 Dataflow 작업자 머신에서 액세스할 수 있어야 합니다.
템플릿 매개변수
매개변수 | 설명 |
---|---|
mongoDbUri |
mongodb+srv://:@ 형식의 MongoDB 연결 URI |
database |
컬렉션을 저장하기 위한 MongoDB의 데이터베이스입니다. 예를 들면 my-db 입니다. |
collection |
MongoDB 데이터베이스의 컬렉션 이름입니다. 예를 들면 my-collection 입니다. |
inputTableSpec |
읽어올 BigQuery 테이블입니다. 예를 들면 bigquery-project:dataset.input_table 입니다. |
BigQuery to MongoDB 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the BigQuery to MongoDB template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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_MongoDB \ --parameters \ inputTableSpec=INPUT_TABLE_SPEC,\ mongoDbUri=MONGO_DB_URI,\ database=DATABASE,\ collection=COLLECTION
다음을 바꿉니다.
PROJECT_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름REGION_NAME
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
INPUT_TABLE_SPEC
: 소스 BigQuery 테이블 이름MONGO_DB_URI
: MongoDB URIDATABASE
: MongoDB 데이터베이스COLLECTION
: MongoDB 컬렉션
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", "mongoDbUri": "MONGO_DB_URI", "database": "DATABASE", "collection": "COLLECTION" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB", } }
다음을 바꿉니다.
PROJECT_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
INPUT_TABLE_SPEC
: 소스 BigQuery 테이블 이름MONGO_DB_URI
: MongoDB URIDATABASE
: MongoDB 데이터베이스COLLECTION
: MongoDB 컬렉션
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 파일 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Bigtable to Avro Files on Cloud Storage template 을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDOUTPUT_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 프로젝트 IDJOB_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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDOUTPUT_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 파일 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Bigtable to Parquet Files on Cloud Storage template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDOUTPUT_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 프로젝트 IDJOB_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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDOUTPUT_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Bigtable to SequenceFile Files on Cloud Storage template 을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDAPPLICATION_PROFILE_ID
: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 IDDESTINATION_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 프로젝트 IDJOB_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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDAPPLICATION_PROFILE_ID
: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 IDDESTINATION_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Datastore to Text Files on Cloud Storage template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 인스턴스가 있는 클라우드 프로젝트 IDDATASTORE_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 프로젝트 IDJOB_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 인스턴스가 있는 클라우드 프로젝트 IDDATASTORE_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Firestore to Text Files on Cloud Storage template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 인스턴스가 있는 클라우드 프로젝트 IDFIRESTORE_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 프로젝트 IDJOB_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 인스턴스가 있는 클라우드 프로젝트 IDFIRESTORE_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-#####
파일
예를 들어 Singers
와 Albums
의 두 테이블이 있는 데이터베이스를 내보내는 경우 다음 파일 세트가 생성됩니다.
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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
Google Cloud 콘솔의 Spanner 인스턴스 페이지에 작업이 표시되려면 작업 이름이 다음 형식과 일치해야 합니다.
cloud-spanner-export-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
다음을 바꿉니다.
SPANNER_INSTANCE_ID
: Spanner 인스턴스의 IDSPANNER_DATABASE_NAME
: Spanner 데이터베이스의 이름
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Spanner to Avro Files on Cloud Storage template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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
: 선택한 고유한 작업 이름Google Cloud 콘솔의 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 인스턴스 IDDATABASE_ID
: Cloud Spanner 데이터베이스 IDGCS_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 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름Google Cloud 콘솔의 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 인스턴스 IDDATABASE_ID
: Cloud Spanner 데이터베이스 IDGCS_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Spanner to Text Files on Cloud Storage template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 데이터베이스의 클라우드 프로젝트 IDDATABASE_ID
: Spanner 데이터베이스 IDBUCKET_NAME
: Cloud Storage 버킷 이름INSTANCE_ID
: Spanner 인스턴스 IDTABLE_ID
: Spanner 테이블 ID
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 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)SPANNER_PROJECT_ID
: 데이터를 읽을 Spanner 데이터베이스의 클라우드 프로젝트 IDDATABASE_ID
: Spanner 데이터베이스 IDBUCKET_NAME
: Cloud Storage 버킷 이름INSTANCE_ID
: Spanner 인스턴스 IDTABLE_ID
: Spanner 테이블 ID
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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Avro Files on Cloud Storage to Cloud Bigtable template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDINPUT_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 프로젝트 IDJOB_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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDINPUT_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
Google Cloud 콘솔의 Spanner 인스턴스 페이지에 작업이 표시되려면 작업 이름이 다음 형식과 일치해야 합니다.
cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME
다음을 바꿉니다.
SPANNER_INSTANCE_ID
: Spanner 인스턴스의 IDSPANNER_DATABASE_NAME
: Spanner 데이터베이스의 이름
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Avro Files on Cloud Storage to Cloud Spanner template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 인스턴스의 IDDATABASE_ID
: 가져올 Spanner 데이터베이스의 IDGCS_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 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)INSTANCE_ID
: 데이터베이스가 포함된 Spanner 인스턴스의 IDDATABASE_ID
: 가져올 Spanner 데이터베이스의 IDGCS_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Parquet Files on Cloud Storage to Cloud Bigtable template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDINPUT_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 프로젝트 IDJOB_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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDINPUT_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the SequenceFile Files on Cloud Storage to Cloud Bigtable template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDAPPLICATION_PROFILE_ID
: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 IDSOURCE_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 프로젝트 IDJOB_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 프로젝트 IDINSTANCE_ID
: 테이블을 포함하는 Bigtable 인스턴스의 IDTABLE_ID
: 내보낼 Bigtable 테이블의 IDAPPLICATION_PROFILE_ID
: 내보내기에 사용될 Bigtable 애플리케이션 프로필의 IDSOURCE_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to BigQuery (Batch) template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 프로젝트 IDJOB_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Datastore template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Firestore template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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(일괄) 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Pub/Sub (Batch) template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 프로젝트 IDJOB_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)를 사용하지 않는 것이 좋습니다.
- 데이터는 다음 유형 중 하나와 일치해야 합니다.
GoogleSQL
BOOL INT64 FLOAT64 NUMERIC STRING DATE TIMESTAMP BYPES JSON
PostgreSQL
boolean bigint double precision numeric character varying, text date timestamp with time zone bytea
템플릿 매개변수
매개변수 | 설명 |
---|---|
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 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Text Files on Cloud Storage to Cloud Spanner template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 인스턴스 IDDATABASE_ID
: Cloud Spanner 데이터베이스 IDGCS_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 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)INSTANCE_ID
: Cloud Spanner 인스턴스 IDDATABASE_ID
: Cloud Spanner 데이터베이스 IDGCS_PATH_TO_IMPORT_MANIFEST
: 가져오기 매니페스트 파일의 Cloud Storage 경로
Cloud Storage to Elasticsearch
Cloud Storage to Elasticsearch 템플릿은 Cloud Storage 버킷에 저장된 csv 파일에서 데이터를 읽고 Elasticsearch에 데이터를 JSON 문서로 쓰는 일괄 파이프라인입니다.
파이프라인 요구사항:
- Cloud Storage 버킷이 있어야 합니다.
- Dataflow에서 액세스할 수 있는 Google Cloud 인스턴스 또는 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 이상이어야 합니다. 기본값: no retries. |
maxRetryDuration |
(선택사항) 밀리초 단위의 최대 재시도 시간이며 0 이상이어야 합니다. 기본값: no retries. |
csvFileEncoding |
(선택사항) CSV 파일 인코딩입니다. |
propertyAsIndex |
(선택사항) 일괄 요청에서 문서에 포함할 _index 메타데이터를 지정하는 값이 있는 문서의 속성입니다(_index UDF보다 우선 적용됨). 기본값: none. |
propertyAsId |
(선택사항) 일괄 요청에서 문서에 포함할 _id 메타데이터를 지정하는 값이 있는 문서의 속성입니다(_id UDF보다 우선 적용됨). 기본값: none. |
javaScriptIndexFnGcsPath |
(선택사항) 일괄 요청에서 문서에 포함할 _index 메타데이터를 지정할 자바스크립트 UDF 소스의 Cloud Storage 경로입니다. 기본값: none. |
javaScriptIndexFnName |
(선택사항) 일괄 요청에서 문서에 포함할 _index 메타데이터를 지정할 함수의 UDF 자바스크립트 함수 이름입니다. 기본값: none. |
javaScriptIdFnGcsPath |
(선택사항) 일괄 요청에서 문서에 포함할 _id 메타데이터를 지정할 자바스크립트 UDF 소스의 Cloud Storage 경로입니다. 기본값: none. |
javaScriptIdFnName |
(선택사항) 일괄 요청에서 문서에 포함할 _id 메타데이터를 지정할 함수의 UDF 자바스크립트 함수 이름입니다. 기본값: none. |
javaScriptTypeFnGcsPath |
(선택사항) 일괄 요청에서 문서에 포함할 _type 메타데이터를 지정할 자바스크립트 UDF 소스의 Cloud Storage 경로입니다. 기본값: none. |
javaScriptTypeFnName |
(선택사항) 일괄 요청에서 문서에 포함할 _type 메타데이터를 지정할 함수의 UDF 자바스크립트 함수 이름입니다. 기본값: none. |
javaScriptIsDeleteFnGcsPath |
(선택사항) 문서를 삽입하거나 업데이트하는 대신 삭제해야 하는지 여부를 결정하는 함수의 자바스크립트 UDF 소스에 대한 Cloud Storage 경로입니다. 이 함수는 문자열 값 "true" 또는 "false" 를 반환해야 합니다. 기본값: none. |
javaScriptIsDeleteFnName |
(선택사항) 문서를 삽입하거나 업데이트하지 않고 삭제할지 여부를 결정하는 함수의 UDF 자바스크립트 함수 이름입니다. 이 함수는 문자열 값 "true" 또는 "false" 를 반환해야 합니다. 기본값: none. |
usePartialUpdate |
(선택사항) Elasticsearch 요청에서 부분 업데이트 (만들기 또는 색인 대신 업데이트, 부분 문서 허용)를 사용할지 여부입니다. 기본값: false . |
bulkInsertMethod |
(선택사항) Elasticsearch 일괄 요청에서 INDEX (색인, 업데이트 허용) 또는 CREATE (만들기, 중복 _id 오류)를 사용할지 여부입니다. 기본값: CREATE . |
Cloud Storage to Elasticsearch 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cloud Storage to Elasticsearch template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
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 프로젝트 IDJOB_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 URLAPIKEY
: 인증을 위한 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 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)INPUT_FILE_SPEC
: Cloud Storage 파일 패턴CONNECTION_URL
: Elasticsearch URLAPIKEY
: 인증을 위한 base64 인코딩 API 키INDEX
: Elasticsearch 색인DEADLETTER_TABLE
: 사용자의 BigQuery 테이블
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 연결에 사용할 속성 문자열입니다. 문자열 형식은 [propertyName=property;]* 여야 합니다. 예를 들면 unicode=true;characterEncoding=UTF-8 입니다. |
username |
(선택사항) JDBC 연결에 사용할 사용자 이름입니다. Cloud KMS 키로 암호화된 Base64 인코딩 문자열로 전달할 수 있습니다. |
password |
(선택사항) JDBC 연결에 사용할 비밀번호입니다. Cloud KMS 키로 암호화된 Base64 인코딩 문자열로 전달할 수 있습니다. |
KMSEncryptionKey |
(선택사항) 사용자 이름, 비밀번호, 연결 문자열을 복호화하는 Cloud KMS 암호화 키입니다. Cloud KMS 키가 전달되면 사용자 이름, 비밀번호, 연결 문자열이 모두 암호화되어 전달되어야 합니다. |
disabledAlgorithms |
(선택사항) 사용 중지할 쉼표로 구분된 알고리즘입니다. 이 값을 none 으로 설정하면 알고리즘이 사용 중지되지 않습니다. 기본적으로 사용 중지된 알고리즘은 취약점 또는 성능 문제를 갖는 것으로 알려져 있으므로 주의해서 사용해야 합니다. 예를 들면 SSLv3, RC4. 입니다. |
extraFilesToStage |
작업자에 스테이징할 파일의 쉼표로 구분된 Cloud Storage 경로 또는 Secret Manager 보안 비밀입니다. 이러한 파일은 각 작업자의 /extra_files 디렉터리에 저장됩니다. 예를 들면 gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id> 입니다. |
JDBC to BigQuery 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the JDBC to BigQuery template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
gcloud
셸 또는 터미널에서 템플릿을 실행합니다.
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Jdbc_to_BigQuery \ --region REGION_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
다음을 바꿉니다.
JOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
REGION_NAME
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)DRIVER_PATHS
: JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로DRIVER_CLASS_NAME
: 드라이브 클래스 이름JDBC_CONNECTION_URL
: JDBC 연결 URLSOURCE_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를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 projects.templates.launch
를 참조하세요.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/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
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)DRIVER_PATHS
: JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로DRIVER_CLASS_NAME
: 드라이브 클래스 이름JDBC_CONNECTION_URL
: JDBC 연결 URLSOURCE_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 암호화 키
Java Database Connectivity(JDBC) to Pub/Sub
Java Database Connectivity(JDBC) to Pub/Sub 템플릿은 JDBC 소스에서 데이터를 수집하고 결과 레코드를 JSON 문자열로 기존 Pub/Sub 주제에 쓰는 일괄 파이프라인입니다.
파이프라인 요구사항:
- 파이프라인을 실행하기 전에 JDBC 소스가 있어야 합니다.
- 파이프라인을 실행하기 전에 Cloud Pub/Sub 출력 주제가 있어야 합니다.
템플릿 매개변수
매개변수 | 설명 |
---|---|
driverClassName |
JDBC 드라이버 클래스 이름입니다. 예를 들면 com.mysql.jdbc.Driver 입니다. |
connectionUrl |
JDBC 연결 URL 문자열입니다. 예를 들면 jdbc:mysql://some-host:3306/sampledb 입니다. Base64로 인코딩된 문자열로 전달한 후 Cloud KMS 키로 암호화할 수 있습니다. |
driverJars |
JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로입니다. 예를 들면 gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar 입니다. |
username |
(선택사항) JDBC 연결에 사용할 사용자 이름입니다. Cloud KMS 키로 암호화된 Base64 인코딩 문자열로 전달할 수 있습니다. |
password |
(선택사항) JDBC 연결에 사용할 비밀번호입니다. Cloud KMS 키로 암호화된 Base64 인코딩 문자열로 전달할 수 있습니다. |
connectionProperties |
(선택사항) JDBC 연결에 사용할 속성 문자열입니다. 문자열 형식은 [propertyName=property;]* 여야 합니다. 예를 들면 unicode=true;characterEncoding=UTF-8 입니다. |
query |
데이터를 추출하기 위해 소스에서 실행될 쿼리입니다. 예를 들면 select * from sampledb.sample_table 입니다. |
outputTopic |
게시할 Pub/Sub 주제이며 projects/<project>/topics/<topic> 형식입니다. |
KMSEncryptionKey |
(선택사항) 사용자 이름, 비밀번호, 연결 문자열을 복호화하는 Cloud KMS 암호화 키입니다. Cloud KMS 키가 전달되면 사용자 이름, 비밀번호, 연결 문자열이 모두 암호화되어 전달되어야 합니다. |
extraFilesToStage |
작업자에 스테이징할 파일의 쉼표로 구분된 Cloud Storage 경로 또는 Secret Manager 보안 비밀입니다. 이러한 파일은 각 작업자의 /extra_files 디렉터리에 저장됩니다. 예를 들면 gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id> 입니다. |
Java Database Connectivity(JDBC) to Pub/Sub 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the JDBC to Pub/Sub template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
gcloud
셸 또는 터미널에서 템플릿을 실행합니다.
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/flex/Jdbc_to_PubSub \ --region REGION_NAME \ --parameters \ driverClassName=DRIVER_CLASS_NAME,\ connectionURL=JDBC_CONNECTION_URL,\ driverJars=DRIVER_PATHS,\ username=CONNECTION_USERNAME,\ password=CONNECTION_PASSWORD,\ connectionProperties=CONNECTION_PROPERTIES,\ query=SOURCE_SQL_QUERY,\ outputTopic=OUTPUT_TOPIC,\ KMSEncryptionKey=KMS_ENCRYPTION_KEY
다음을 바꿉니다.
JOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
REGION_NAME
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)DRIVER_CLASS_NAME
: 드라이버 클래스 이름JDBC_CONNECTION_URL
: JDBC 연결 URLDRIVER_PATHS
: JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로CONNECTION_USERNAME
: JDBC 연결 사용자 이름CONNECTION_PASSWORD
: JDBC 연결 비밀번호CONNECTION_PROPERTIES
: JDBC 연결 속성(필요한 경우)SOURCE_SQL_QUERY
: 소스 데이터베이스에서 실행할 SQL 쿼리OUTPUT_TOPIC
: 게시할 Pub/SubKMS_ENCRYPTION_KEY
: Cloud KMS 암호화 키
API
REST API를 사용하여 템플릿을 실행하려면 HTTP POST 요청을 전송합니다. API 및 승인 범위에 대한 자세한 내용은 projects.templates.launch
를 참조하세요.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "jobName": "JOB_NAME", "parameters": { "driverClassName": "DRIVER_CLASS_NAME", "connectionURL": "JDBC_CONNECTION_URL", "driverJars": "DRIVER_PATHS", "username": "CONNECTION_USERNAME", "password": "CONNECTION_PASSWORD", "connectionProperties": "CONNECTION_PROPERTIES", "query": "SOURCE_SQL_QUERY", "outputTopic": "OUTPUT_TOPIC", "KMSEncryptionKey":"KMS_ENCRYPTION_KEY" }, "environment": { "zone": "us-central1-f" }, }
다음을 바꿉니다.
PROJECT_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)DRIVER_CLASS_NAME
: 드라이버 클래스 이름JDBC_CONNECTION_URL
: JDBC 연결 URLDRIVER_PATHS
: JDBC 드라이버의 쉼표로 구분된 Cloud Storage 경로CONNECTION_USERNAME
: JDBC 연결 사용자 이름CONNECTION_PASSWORD
: JDBC 연결 비밀번호CONNECTION_PROPERTIES
: JDBC 연결 속성(필요한 경우)SOURCE_SQL_QUERY
: 소스 데이터베이스에서 실행할 SQL 쿼리OUTPUT_TOPIC
: 게시할 Pub/SubKMS_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에 복제합니다.
파이프라인 요구사항:
- 파이프라인을 실행하기 전에 대상 Bigtable 테이블이 있어야 합니다.
- Dataflow 작업자와 Apache Cassandra 노드 간 네트워크 연결이 필요합니다.
유형 변환
Apache Cassandra to Cloud Bigtable 템플릿은 Apache Cassandra 데이터 유형을 자동으로 Cloud Bigtable의 데이터 유형으로 변환합니다.
Cloud Bigtable과 Apache Cassandra에서 대부분의 기본 유형은 동일하게 표현되지만 다음 기본 유형은 다르게 표현됩니다.
Date
와Timestamp
는DateTime
객체로 변환됩니다.UUID
는String
으로 변환됩니다.Varint
는BigDecimal
로 변환됩니다.
또한 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 테이블이 복사되는 Bigtable 인스턴스의 Google Cloud 프로젝트 ID입니다. |
bigtableInstanceId |
Apache Cassandra 테이블을 복사할 Bigtable 인스턴스 ID |
bigtableTableId |
Apache Cassandra 테이블을 복사할 Bigtable 테이블의 이름 |
defaultColumnFamily |
(선택 사항) Bigtable 테이블의 column family 이름(기본값 : default ) |
rowKeySeparator |
(선택사항) row-key를 빌드하는 데 사용되는 구분 기호. 기본값은 # 입니다. |
Apache Cassandra to Cloud Bigtable 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the Cassandra to Cloud Bigtable template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
gcloud
셸 또는 터미널에서 템플릿을 실행합니다.
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable \ --region REGION_NAME \ --parameters \ bigtableProjectId=BIGTABLE_PROJECT_ID,\ bigtableInstanceId=BIGTABLE_INSTANCE_ID,\ bigtableTableId=BIGTABLE_TABLE_ID,\ cassandraHosts=CASSANDRA_HOSTS,\ cassandraKeyspace=CASSANDRA_KEYSPACE,\ cassandraTable=CASSANDRA_TABLE
다음을 바꿉니다.
JOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
REGION_NAME
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)BIGTABLE_PROJECT_ID
: Cloud Bigtable이 있는 프로젝트 IDBIGTABLE_INSTANCE_ID
: Cloud Bigtable 인스턴스 IDBIGTABLE_TABLE_ID
: Cloud Bigtable 테이블 이름CASSANDRA_HOSTS
: Apache Cassandra 호스트 목록. 여러 호스트가 제공된 경우 쉼표를 이스케이프하는 방법에 대한 안내를 따르세요.CASSANDRA_KEYSPACE
: 테이블이 있는 Apache Cassandra 키스페이스CASSANDRA_TABLE
: 마이그레이션해야 하는 Apache Cassandra 테이블
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/Cassandra_To_Cloud_Bigtable { "jobName": "JOB_NAME", "parameters": { "bigtableProjectId": "BIGTABLE_PROJECT_ID", "bigtableInstanceId": "BIGTABLE_INSTANCE_ID", "bigtableTableId": "BIGTABLE_TABLE_ID", "cassandraHosts": "CASSANDRA_HOSTS", "cassandraKeyspace": "CASSANDRA_KEYSPACE", "cassandraTable": "CASSANDRA_TABLE" }, "environment": { "zone": "us-central1-f" } }
다음을 바꿉니다.
PROJET_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)BIGTABLE_PROJECT_ID
: Cloud Bigtable이 있는 프로젝트 IDBIGTABLE_INSTANCE_ID
: Cloud Bigtable 인스턴스 IDBIGTABLE_TABLE_ID
: Cloud Bigtable 테이블 이름CASSANDRA_HOSTS
: Apache Cassandra 호스트 목록. 여러 호스트가 제공된 경우 쉼표를 이스케이프하는 방법에 대한 안내를 따르세요.CASSANDRA_KEYSPACE
: 테이블이 있는 Apache Cassandra 키스페이스CASSANDRA_TABLE
: 마이그레이션해야 하는 Apache Cassandra 테이블
MongoDB to BigQuery
MongoDB to BigQuery 템플릿은 MongoDB에서 문서를 읽고 userOption
매개변수에 지정된 대로 BigQuery에 쓰는 일괄 파이프라인입니다.
파이프라인 요구사항
- 대상 BigQuery 데이터 세트가 있어야 합니다.
- Dataflow 작업자 머신에서 소스 MongoDB 인스턴스에 액세스할 수 있어야 합니다.
템플릿 매개변수
매개변수 | 설명 |
---|---|
mongoDbUri |
mongodb+srv://:@ 형식의 MongoDB 연결 URI입니다. |
database |
컬렉션을 읽을 MongoDB의 데이터베이스입니다. 예를 들면 my-db 입니다. |
collection |
MongoDB 데이터베이스 내부의 컬렉션 이름입니다. 예를 들면 my-collection 입니다. |
outputTableSpec |
쓸 BigQuery 테이블입니다. 예를 들면 bigquery-project:dataset.output_table 입니다. |
userOption |
FLATTEN 또는 NONE 입니다. FLATTEN 은 문서를 첫 번째 수준으로 평면화합니다. NONE 는 전체 문서를 JSON 문자열로 저장합니다. |
MongoDB to BigQuery 템플릿 실행
콘솔
- Dataflow 템플릿에서 작업 만들기 페이지로 이동합니다. 템플릿에서 작업 만들기로 이동
- 작업 이름 필드에 고유한 작업 이름을 입력합니다.
- 선택사항: 리전 엔드포인트의 드롭다운 메뉴에서 값을 선택합니다. 기본 리전 엔드포인트는
us-central1
입니다.Dataflow 작업을 실행할 수 있는 리전 목록은 Dataflow 위치를 참조하세요.
- Dataflow 템플릿 드롭다운 메뉴에서 the MongoDB to BigQuery template을 선택합니다.
- 제공된 매개변수 필드에 매개변수 값을 입력합니다.
- 작업 실행을 클릭합니다.
gcloud
셸 또는 터미널에서 템플릿을 실행합니다.
gcloud beta dataflow flex-template run JOB_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery \ --parameters \ outputTableSpec=OUTPUT_TABLE_SPEC,\ mongoDbUri=MONGO_DB_URI,\ database=DATABASE,\ collection=COLLECTION,\ userOption=USER_OPTION
다음을 바꿉니다.
PROJECT_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름REGION_NAME
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
OUTPUT_TABLE_SPEC
: 대상 BigQuery 테이블 이름MONGO_DB_URI
: MongoDB URIDATABASE
: MongoDB 데이터베이스COLLECTION
: MongoDB 컬렉션USER_OPTION
: FLATTEN 또는 NONE
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", "mongoDbUri": "MONGO_DB_URI", "database": "DATABASE", "collection": "COLLECTION", "userOption": "USER_OPTION" }, "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery", } }
다음을 바꿉니다.
PROJECT_ID
: Dataflow 작업을 실행할 Cloud 프로젝트 IDJOB_NAME
: 선택한 고유한 작업 이름LOCATION
: Dataflow 작업을 배포할 리전 엔드포인트(예:us-central1
)VERSION
: 사용할 템플릿 버전다음 값을 사용할 수 있습니다.
latest
: 버킷의 날짜가 지정되지 않은 상위 폴더(gs://dataflow-templates/latest/)에서 사용할 수 있는 최신 버전의 템플릿을 사용합니다.- 버전 이름(예:
2021-09-20-00_RC00
): 버킷의 날짜가 지정된 해당 상위 폴더(gs://dataflow-templates/)에 중첩되어 있는 특정 버전의 템플릿을 사용합니다.
OUTPUT_TABLE_SPEC
: 대상 BigQuery 테이블 이름MONGO_DB_URI
: MongoDB URIDATABASE
: MongoDB 데이터베이스COLLECTION
: MongoDB 컬렉션USER_OPTION
: FLATTEN 또는 NONE