템플릿을 사용하여 데이터 처리

Dataplex는 Dataflow에서 제공하는 데이터 수집, 처리, 데이터 수명 주기 관리와 같은 일반적인 데이터 처리 작업을 수행하는 템플릿을 제공합니다. 이 가이드에서는 데이터 처리 템플릿을 구성하고 실행하는 방법을 설명합니다.

시작하기 전에

Dataplex 템플릿은 Dataflow를 기반으로 합니다. 템플릿을 사용하기 전에 Dataflow API를 사용 설정합니다.

Dataflow API 사용 설정

참고

  • 모든 템플릿은 일반적인 Dataflow 파이프라인 옵션을 지원합니다.

  • Dataplex는 데이터 파이프라인을 사용하여 템플릿으로 정의된 태스크를 예약합니다.

  • Google Cloud 콘솔 Dataplex 페이지에서 Dataplex를 통해 예약한 태스크만 볼 수 있습니다.

템플릿: 원시 데이터를 선별된 데이터로 변환

Dataplex 파일 형식 변환 템플릿은 Dataplex Cloud Storage 애셋 또는 CSV 또는 JSON 형식으로 저장된 Dataplex 항목 목록을 다른 Dataplex 애셋의 Parquet 또는 Avro 형식 데이터로 변환합니다. 파티션 레이아웃은 변환에 보존됩니다. 또한 출력 파일의 압축을 지원합니다.

템플릿 매개변수

매개변수 설명
inputAssetOrEntitiesList 입력 파일을 포함하는 Dataplex 애셋 또는 Dataplex 항목입니다. 이 매개변수는 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 또는 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>... 형식을 따라야 합니다.
outputFileFormat Cloud Storage의 출력 파일 형식입니다. 이 매개변수는 PARQUET 또는 AVRO 형식을 따라야 합니다.
outputAsset 출력 파일이 저장될 Cloud Storage 버킷이 포함된 Dataplex 애셋의 이름입니다. 이 매개변수는 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 형식이어야 합니다. Google Cloud 콘솔의 Dataplex 애셋 Details 탭에서 outputAsset을 확인할 수 있습니다.
outputFileCompression 선택사항: 출력 파일 압축. 이 매개변수의 기본값은 SNAPPY입니다. 매개변수의 다른 값은 UNCOMPRESSED, SNAPPY, GZIP, BZIP2일 수 있습니다. BZIP2PARQUET 파일에서 지원되지 않습니다.
writeDisposition 선택사항: 대상 파일이 이미 있는 경우 발생하는 작업을 지정합니다. 이 매개변수의 기본값은 대상 디렉터리에 없는 파일만 처리하도록 신호하는 SKIP입니다. 매개변수의 다른 값은 OVERWRITE(기존 파일을 덮어씀) 또는 FAIL(대상 파일이 하나 이상 있는 경우 아무 것도 처리하지 않고 오류 발생)일 수 있습니다.
updateDataplexMetadata

선택사항: 새로 생성된 항목의 Dataplex 메타데이터를 업데이트할지 여부입니다. 이 매개변수의 기본값은 false입니다.

사용 설정하면 파이프라인이 소스의 스키마를 대상 Dataplex 항목으로 자동 복사하고 자동 Dataplex 검색은 실행되지 않습니다. 소스(원시) 데이터의 스키마가 Dataplex에서 관리되는 경우 이 플래그를 사용합니다.

템플릿 실행

콘솔

  1. Google Cloud 콘솔에서 Dataplex 페이지로 이동합니다.

    Dataplex로 이동

  2. 프로세스 뷰로 이동합니다.

  3. 태스크 만들기를 클릭합니다.

  4. 선별된 형식으로 변환에서 태스크 만들기를 클릭합니다.

  5. Dataplex 레이크를 선택합니다.

  6. 태스크 이름을 제공합니다.

  7. 태스크 실행 리전을 선택합니다.

  8. 필수 매개변수를 입력합니다.

  9. 계속을 클릭합니다.

gcloud

다음을 바꿉니다.

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

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

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
outputAsset=OUTPUT_ASSET

REST API

다음을 바꿉니다.

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

HTTP POST 요청을 제출합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
  "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

템플릿: BigQuery 애셋에서 Cloud Storage 애셋으로 데이터 계층화

Dataplex BigQuery to Cloud Storage 템플릿은 데이터를 Dataplex 호환 레이아웃 및 형식으로 Dataplex BigQuery에서 Dataplex Cloud Storage 애셋에 복사합니다. BigQuery 데이터 세트 또는 복사할 BigQuery 테이블 목록을 지정할 수 있습니다. 유연성을 위해 이 템플릿은 지정된 수정 날짜보다 오래된 데이터를 복사할 수 있으며 복사 성공 후 BigQuery에서 데이터를 선택적으로 삭제할 수 있습니다.

파티션을 나눈 테이블을 BigQuery에서 Cloud Storage로 복사할 때 템플릿은 Cloud Storage 버킷에 Hive 스타일의 파티션을 만듭니다. Cloud Storage에 쓸 때 템플릿은 기존 파티션 열에 서픽스 _pid를 추가하여 새 파티션 키를 만듭니다. 이는 BigQuery의 데이터에 외부 테이블로 액세스하는 데 필요합니다. 현재 BigQuery는 Hive 스타일의 파티션 키를 기존 열과 동일하게 할 수 없습니다. 따라서 BigQuery에서 외부 테이블로 볼 때 복사된 테이블에는 파티션 키에 대한 추가 열이 있습니다. 나머지 데이터는 그대로 보존됩니다.

BigQuery에서 Cloud Storage로 파티션을 나눈 테이블을 복사하는 경우:

  • 이 템플릿은 Cloud Storage 버킷에 Hive 스타일 파티션을 만듭니다. 현재 BigQuery는 Hive 스타일의 파티션 키를 기존 열과 동일하게 할 수 없습니다. enforceSamePartitionKey 옵션을 사용하여 새 파티션 키를 만들거나 기존 파티션 키를 그대로 유지하면서 기존 열의 이름을 변경할 수 있습니다.
  • Dataplex 탐색은 BigQuery 테이블(및 Dataproc Metastore의 테이블)을 만들 때 파티션 유형을 string으로 등록합니다. 이로 인해 기존 파티션 필터에 영향을 미칠 수 있습니다.

단일 템플릿 실행에서 변환할 수 있는 테이블 및 파티션 수는 약 300개로 제한됩니다. 정확한 수는 테이블 이름 및 기타 요인에 따라 다릅니다.

템플릿 매개변수

매개변수 설명
sourceBigQueryDataset 데이터를 계층화할 BigQuery 데이터 세트입니다. 이 매개변수에는 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 형식의 Dataplex 애셋 이름 또는 projects/<name>/datasets/<dataset-id> 형식의 BigQuery 데이터 세트 ID가 포함되어야 합니다.
destinationStorageBucketAssetName 데이터를 계층화할 Cloud Storage 버킷의 Dataplex 애셋 이름입니다. 이 매개변수는 projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> 형식을 따라야 합니다.
tables 선택사항: 계층화할 BigQuery 테이블의 쉼표로 구분된 목록입니다. 목록이 제공되지 않으면 모든 테이블이 계층화됩니다. 테이블은 이름(프로젝트/데이터 세트 프리픽스 아님)만으로 지정되어야 하며 대소문자를 구분합니다.
exportDataModifiedBeforeDateTime 선택사항: 이 날짜(및 선택적 시간)보다 오래된 데이터를 이동하려면 이 매개변수를 사용합니다. 파티션을 나눈 BigQuery 테이블의 경우, 이 날짜/시간 전에 마지막으로 수정된 파티션을 이동합니다. 파티션을 나누지 않은 테이블의 경우 테이블이 이 날짜/시간 전에 마지막으로 수정된 경우 이동합니다. 지정하지 않으면 모든 테이블/파티션을 이동합니다. 날짜/시간은 기본적으로 기본 시간대로 파싱되지만 선택적 서픽스 Z+HH:mm이 지원됩니다. 이 매개변수는 YYYY-MM-DD, YYYY-MM-DDTHH:mm:ss 또는 YYYY-MM-DDTHH:mm:ss+03:00 형식을 따라야 합니다. 상대적 날짜/시간도 지원되며 -PnDTnHnMn.nS 형식을 따라야 합니다(이전 시간을 나타내는 -P로 시작해야 함).
fileFormat 선택사항: Cloud Storage의 출력 파일 형식입니다. 이 매개변수의 기본값은 PARQUET입니다. 매개변수의 다른 값은 AVRO일 수 있습니다.
fileCompression 선택사항: 출력 파일 압축. 이 매개변수의 기본값은 SNAPPY입니다. 매개변수의 다른 값은 UNCOMPRESSED, SNAPPY, GZIP, BZIP2일 수 있습니다. BZIP2PARQUET 파일에서 지원되지 않습니다.
deleteSourceData 선택사항: 내보내기에 성공한 후 BigQuery에서 소스 데이터를 삭제할지 여부입니다. 값은 true 또는 false일 수 있습니다. 이 매개변수의 기본값은 false입니다.
partitionIdRegExp 선택사항: 이 정규 표현식과 일치하는 파티션 ID가 있는 파티션만 처리합니다. 값이 제공되지 않은 경우 이 매개변수는 기본적으로 모두 처리합니다.
writeDisposition 선택사항: 대상 파일이 이미 있는 경우에 발생하는 작업을 지정합니다. 즉, 하나 이상의 테이블/파티션이 이미 사전 계층화되었습니다. 이 매개변수의 기본값은 SKIP으로, 아직 사전 계층화되지 않은 테이블/파티션만 처리하도록 지시합니다. 매개변수의 다른 값은 OVERWRITE(기존 파일을 덮어씀) 또는 FAIL(대상 파일이 하나 이상 있는 경우 아무 것도 처리하지 않고 오류 발생)일 수 있습니다.
enforceSamePartitionKey

선택사항: 동일한 파티션 키를 적용할지 여부 BigQuery 제한사항으로 인해 파티션을 나눈 외부 테이블의 파일 경로의 파티션 키는 파일의 열 중 하나와 이름이 같을 수 없습니다. 이 매개변수가 true(기본값)이면 대상 파일의 파티션 키가 원래 파티션 열 이름으로 설정되고 파일의 열 이름이 변경됩니다. false이면 파티션 키의 이름이 변경됩니다.

예를 들어 원본 테이블이 TSenforceSamePartitionKey=true라는 열에서 파티션을 나눈 경우 대상 파일 경로가 gs://<bucket>/TS=<partition ID>/<file>이고 파일의 열 이름이 TS_pkey로 변경됩니다. 따라서 이전 테이블 또는 새 테이블의 동일한 파티션에 대해 기존 쿼리를 실행할 수 있습니다.

enforceSamePartitionKey=false이면 대상 파일 경로는 gs://<bucket>/TS_pid=<partition ID>/<file>이지만 열 이름은 파일에서 TS로 유지됩니다.

updateDataplexMetadata

선택사항: 새로 생성된 항목의 Dataplex 메타데이터를 업데이트할지 여부입니다. 이 매개변수의 기본값은 false입니다.

사용 설정하면 파이프라인이 소스의 스키마를 대상 Dataplex 항목으로 자동 복사하고 자동 Dataplex 검색은 실행되지 않습니다. 소스 BigQuery 테이블의 스키마를 관리하는 경우 이 플래그를 사용하세요.

템플릿 실행

콘솔

  1. Google Cloud 콘솔에서 Dataplex 페이지로 이동합니다.

    Dataplex로 이동

  2. 프로세스 뷰로 이동합니다.

  3. 태스크 만들기를 클릭합니다.

  4. BQ에서 GCS 애셋으로 계층화에서 태스크 만들기를 클릭합니다.

  5. Dataplex 레이크를 선택합니다.

  6. 태스크 이름을 제공합니다.

  7. 태스크 실행 리전을 선택합니다.

  8. 필수 매개변수를 입력합니다.

  9. 계속을 클릭합니다.

gcloud

다음을 바꿉니다.

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket

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

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

REST API

다음을 바꿉니다.

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

HTTP POST 요청을 제출합니다.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
 "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

다른 Google Cloud 제공 또는 커스텀 Dataflow 템플릿 예약

Dataplex를 사용하면 콘솔에서 Google Cloud 제공 Dataflow 템플릿 또는 커스텀 Dataflow 템플릿을 예약하고 모니터링할 수 있습니다.

예약

콘솔

  1. Google Cloud 콘솔에서 Dataplex 페이지로 이동합니다.

    Dataplex로 이동

  2. 프로세스 뷰로 이동합니다.

  3. 태스크 만들기를 클릭합니다.

  4. Dataflow 파이프라인 작성에서 Dataflow 파이프라인 만들기를 클릭합니다.

  5. Dataplex 레이크를 선택합니다.

  6. 태스크 이름을 입력합니다.

  7. 태스크를 실행할 리전을 선택합니다.

  8. Dataflow 템플릿을 선택합니다.

  9. 필수 매개변수를 입력합니다.

  10. 계속을 클릭합니다.

모니터링

콘솔

  1. Google Cloud 콘솔에서 Dataplex 페이지로 이동합니다.

    Dataplex로 이동

  2. 프로세스 뷰로 이동합니다.

  3. Dataflow 파이프라인을 클릭합니다.

  4. 레이크 또는 파이프라인 이름으로 필터링합니다.