Google 제공 유틸리티 템플릿

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

이 페이지에서는 유틸리티 템플릿을 다룹니다.

Bulk Compress Cloud Storage Files

Bulk Compress Cloud Storage Files 템플릿은 Cloud Storage의 파일을 지정된 위치에 압축하는 일괄 파이프라인입니다. 이 템플릿은 주기적인 보관처리 프로세스의 일환으로 큰 파일 배치를 압축해야 할 때 유용할 수 있습니다. 지원되는 압축 모드는 BZIP2, DEFLATE, GZIP, ZIP입니다. 대상 위치로의 파일 출력은 원래 파일 이름에 압축 모드 확장자를 추가하는 명명 스키마를 따릅니다. 추가되는 확장자는 .bzip2, .deflate, .gz, .zip 중 하나입니다.

압축 프로세스 중에 발생하는 오류는 파일 이름, 오류 메시지의 CSV 형식으로 오류 파일로 출력됩니다. 실행 중에 오류가 발생하지 않는 경우에도 오류 파일은 생성되지만 오류 레코드를 포함하지 않습니다.

이 파이프라인의 요구사항:

  • 압축은 BZIP2, DEFLATE, GZIP, ZIP 형식 중 하나여야 합니다.
  • 파이프라인을 실행하기 전에 출력 디렉토리가 있어야 합니다.

템플릿 매개변수

매개변수 설명
inputFilePattern 읽을 입력 파일 패턴입니다. 예를 들면 gs://bucket-name/uncompressed/*.txt입니다.
outputDirectory 출력을 쓸 위치입니다. 예를 들면 gs://bucket-name/compressed/입니다.
outputFailureFile 압축 프로세스 중에 발생하는 쓰기 오류에 사용할 오류 로그 출력 파일입니다. 예를 들면 gs://bucket-name/compressed/failed.csv입니다. 오류가 없는 경우에도 파일은 생성되지만 비어 있게 됩니다. 파일 콘텐츠는 CSV 형식(파일 이름, 오류)이며 압축에 실패한 파일이 한 줄에 하나씩 표시됩니다.
compression 일치하는 파일을 압축하는 데 사용된 압축 알고리즘입니다. BZIP2, DEFLATE, GZIP, ZIP 중 하나여야 합니다.

Bulk Compress Cloud Storage Files 템플릿 실행

콘솔

Google Cloud Platform Console에서 실행
  1. GCP Console에서 Cloud Dataflow 페이지로 이동합니다.
  2. Cloud Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. 템플릿에서 Cloud Platform Console 생성 작업 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 Bulk Compress Cloud Storage Files 템플릿을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

GCLOUD

gcloud 명령줄 도구에서 실행

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

이 예에서 다음 값을 바꿔야 합니다.

  • YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • YOUR_BUCKET_NAME을 Cloud Storage 버킷 이름으로 바꿉니다.
  • COMPRESSION을 원하는 압축 알고리즘으로 바꿉니다.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Bulk_Compress_GCS_Files \
    --parameters \
inputFilePattern=gs://YOUR_BUCKET_NAME/uncompressed/*.txt,\
outputDirectory=gs://YOUR_BUCKET_NAME/compressed,\
outputFailureFile=gs://YOUR_BUCKET_NAME/failed/failure.csv,\
compression=COMPRESSION

API

REST API에서 실행

이 템플릿을 실행할 때 다음과 같이 템플릿에 대한 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Bulk_Compress_GCS_Files

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

이 예에서 다음 값을 바꿔야 합니다.

  • YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • YOUR_BUCKET_NAME을 Cloud Storage 버킷 이름으로 바꿉니다.
  • COMPRESSION을 원하는 압축 알고리즘으로 바꿉니다.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Bulk_Compress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://YOUR_BUCKET_NAME/uncompressed/*.txt",
       "outputDirectory": "gs://YOUR_BUCKET_NAME/compressed",
       "outputFailureFile": "gs://YOUR_BUCKET_NAME/failed/failure.csv",
       "compression": "COMPRESSION"
   },
   "environment": { "zone": "us-central1-f" }
}

Bulk Decompress Cloud Storage Files

Bulk Decompress Cloud Storage Files 템플릿은 Cloud Storage의 파일을 지정된 위치로 압축 해제하는 일괄 파이프라인입니다. 이 기능은 이전 중에는 압축된 데이터를 사용하여 네트워크 대역폭 비용을 최소화하되, 이전 후에는 압축 해제된 데이터를 사용하여 분석 처리 속도를 최대화하려는 경우에 유용합니다. 파이프라인이 단일 실행 중에 여러 압축 모드를 자동으로 처리하며, 파일 확장자(.bzip2, .deflate, .gz, .zip)에 따라 사용할 압축 해제 모드가 결정됩니다.

파이프라인 요구사항

  • 압축 해제할 파일은 Bzip2, Deflate, Gzip, Zip 형식 중 하나여야 합니다.
  • 파이프라인을 실행하기 전에 출력 디렉토리가 있어야 합니다.

템플릿 매개변수

매개변수 설명
inputFilePattern 읽을 입력 파일 패턴입니다. 예를 들면 gs://bucket-name/compressed/*.gz입니다.
outputDirectory 출력을 쓸 위치입니다. 예를 들면 gs://bucket-name/decompressed입니다.
outputFailureFile 압축 해제 프로세스 중에 발생하는 쓰기 오류에 사용할 오류 로그 출력 파일입니다. 예를 들면 gs://bucket-name/decompressed/failed.csv입니다. 오류가 없는 경우에도 파일은 생성되지만 비어 있게 됩니다. 파일 콘텐츠는 CSV 형식(파일 이름, 오류)이며 압축 해제에 실패한 파일이 한 줄에 하나씩 표시됩니다.

Bulk Decompress Cloud Storage Files 템플릿 실행

콘솔

Google Cloud Platform Console에서 실행
  1. GCP Console에서 Cloud Dataflow 페이지로 이동합니다.
  2. Cloud Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. 템플릿에서 Cloud Platform Console 생성 작업 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 Bulk Decompress Cloud Storage Files 템플릿을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

GCLOUD

gcloud 명령줄 도구에서 실행

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

이 템플릿을 실행할 때 다음과 같이 템플릿에 대한 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Bulk_Decompress_GCS_Files

이 예에서 다음 값을 바꿔야 합니다.

  • YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • YOUR_BUCKET_NAME을 Cloud Storage 버킷 이름으로 바꿉니다.
  • OUTPUT_FAILURE_FILE_PATH를 오류 정보를 포함한 파일에 사용할 경로로 바꿉니다.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Bulk_Decompress_GCS_Files \
    --parameters \
inputFilePattern=gs://YOUR_BUCKET_NAME/compressed/*.gz,\
outputDirectory=gs://YOUR_BUCKET_NAME/decompressed,\
outputFailureFile=OUTPUT_FAILURE_FILE_PATH

API

REST API에서 실행

이 템플릿을 실행할 때 다음과 같이 템플릿에 대한 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Bulk_Decompress_GCS_Files

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

이 예에서 다음 값을 바꿔야 합니다.

  • YOUR_PROJECT_ID를 프로젝트 ID로 바꿉니다.
  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • YOUR_BUCKET_NAME을 Cloud Storage 버킷 이름으로 바꿉니다.
  • OUTPUT_FAILURE_FILE_PATH를 오류 정보를 포함한 파일에 사용할 경로로 바꿉니다.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Bulk_Decompress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://YOUR_BUCKET_NAME/compressed/*.gz",
       "outputDirectory": "gs://YOUR_BUCKET_NAME/decompressed",
       "outputFailureFile": "OUTPUT_FAILURE_FILE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Datastore Bulk Delete

Cloud Datastore Bulk Delete 템플릿은 지정된 GQL 쿼리를 이용하여 Datastore의 항목을 읽고 선택한 대상 프로젝트에서 일치하는 모든 항목을 삭제하는 파이프라인입니다. 이 파이프라인은 JSON 인코딩된 Datastore 항목을 자바스크립트 UDF(null 값을 반환하여 항목 필터링)로 선택적으로 전달할 수 있습니다.

이 파이프라인의 요구사항:

  • 실행하기 전에 프로젝트에서 Cloud Datastore를 설정해야 합니다.
  • 별도의 Datastore 인스턴스에서 읽고 삭제하는 경우 Dataflow 컨트롤러 서비스 계정에 한 인스턴스에서 읽고 다른 인스턴스에서 삭제할 수 있는 권한이 있어야 합니다.

템플릿 매개변수

매개변수 설명
datastoreReadGqlQuery 삭제 대상과 일치하는 항목을 지정하는 GQL 쿼리입니다. 예를 들면 'SELECT * FROM MyKind'입니다.
datastoreReadProjectId GQL 쿼리를 사용하여 대조에 사용되는 항목을 읽을 Cloud Datastore 인스턴스의 GCP 프로젝트 ID입니다.
datastoreDeleteProjectId 일치하는 항목을 삭제할 Cloud Datastore 인스턴스의 GCP 프로젝트 ID입니다. 동일한 Cloud Datastore 인스턴스에서 읽고 삭제하려는 경우 datastoreReadProjectId와 같을 수 있습니다.
datastoreReadNamespace [선택사항] 요청한 항목의 네임스페이스입니다. 기본 네임스페이스는 ""로 설정되어 있습니다.
javascriptTextTransformGcsPath [선택사항] 모든 자바스크립트 코드를 포함한 Cloud Storage 경로입니다(예: 'gs://mybucket/mytransforms/*.js'). UDF를 사용하지 않으려면 이 필드를 비워 두세요.
javascriptTextTransformFunctionName [선택사항] 호출할 함수의 이름입니다. 이 함수가 지정된 Datastore 항목에 대해 undefined 또는 null 값을 반환하는 경우 해당 항목은 삭제되지 않습니다. 자바스크립트 함수가 'function myTransform(inJson) { ...dostuff...}'이면 함수 이름은 'myTransform'입니다. UDF를 사용하지 않으려면 이 필드를 비워 두세요.

Cloud Datastore Bulk Delete 템플릿 실행

콘솔

Google Cloud Platform Console에서 실행
  1. GCP Console에서 Cloud Dataflow 페이지로 이동합니다.
  2. Cloud Dataflow 페이지로 이동
  3. 템플릿에서 작업 만들기를 클릭합니다.
  4. 템플릿에서 Cloud Platform Console 생성 작업 버튼
  5. Cloud Dataflow 템플릿 드롭다운 메뉴에서 Cloud Datastore Bulk Delete 템플릿을 선택합니다.
  6. 작업 이름 필드에 작업 이름을 입력합니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  7. 제공된 매개변수 필드에 매개변수 값을 입력합니다.
  8. 작업 실행을 클릭합니다.

GCLOUD

gcloud 명령줄 도구에서 실행

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

이 템플릿을 실행할 때 다음과 같이 템플릿에 대한 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Bulk_Decompress_GCS_Files

이 예에서 다음 값을 바꿔야 합니다.

  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • GQL_QUERY를 삭제 대상과 항목을 대조하는 데 사용할 쿼리로 바꿉니다.
  • DATASTORE_READ_AND_DELETE_PROJECT_ID를 Datastore 인스턴스 프로젝트 ID로 바꿉니다. 이 예는 동일한 Datastore 인스턴스에서 읽고 삭제합니다.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_Datastore_Delete \
    --parameters \
datastoreReadGqlQuery="GQL_QUERY",\
datastoreReadProjectId=DATASTORE_READ_AND_DELETE_PROJECT_ID,\
datastoreDeleteProjectId=DATASTORE_READ_AND_DELETE_PROJECT_ID

API

REST API에서 실행

이 템플릿을 실행할 때 다음과 같이 템플릿에 대한 Cloud Storage 경로가 필요합니다.

gs://dataflow-templates/VERSION/Bulk_Decompress_GCS_Files

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

이 예에서 다음 값을 바꿔야 합니다.

  • JOB_NAME을 원하는 작업 이름으로 바꿉니다. 작업 이름이 유효하려면 정규 표현식 [a-z]([-a-z0-9]{0,38}[a-z0-9])?와 일치해야 합니다.
  • GQL_QUERY를 삭제 대상과 항목을 대조하는 데 사용할 쿼리로 바꿉니다.
  • DATASTORE_READ_AND_DELETE_PROJECT_ID를 Datastore 인스턴스 프로젝트 ID로 바꿉니다. 이 예는 동일한 Datastore 인스턴스에서 읽고 삭제합니다.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_Datastore_Delete
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "GQL_QUERY",
       "datastoreReadProjectId": "READ_PROJECT_ID",
       "datastoreDeleteProjectId": "DELETE_PROJECT_ID"
   },
   "environment": { "zone": "us-central1-f" }
   }
}
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.