Dataflow 관리형 서비스를 사용하여 파이프라인을 실행하는 경우 Dataflow 명령줄 인터페이스를 사용하여 Dataflow 작업에 대한 정보를 가져올 수 있습니다. Dataflow 명령줄 인터페이스는 Google Cloud CLI의 명령줄 도구에 포함됩니다.
Google Cloud 콘솔을 사용하여 Dataflow 작업을 보고 상호작용하려면 Dataflow 모니터링 인터페이스를 사용합니다.
Dataflow 명령줄 구성요소 설치
로컬 터미널에서 Dataflow 명령줄 인터페이스를 사용하려면 Google Cloud CLI를 설치하고 구성합니다.
Cloud Shell의 경우 Dataflow 명령줄 인터페이스는 자동으로 사용 가능합니다.
명령어 실행
사용 가능한 명령어를 실행하여 Dataflow 명령줄 인터페이스와 상호작용합니다. 사용 가능한 Dataflow 명령어 목록을 보려면 셸 또는 터미널에 다음 명령어를 입력합니다.
gcloud dataflow --help
출력에서 볼 수 있듯이 Dataflow 명령어에는 flex-template
, jobs
, snapshots
sql
등 그룹 4개가 있습니다.
Flex 템플릿 명령어
flex-template
하위 명령어 그룹을 사용 설정하면 Dataflow Flex 템플릿으로 작업할 수 있습니다. 지원되는 작업은 다음과 같습니다.
build
: 지정된 매개변수에서 Flex 템플릿 파일을 빌드합니다.run
: 지정된 경로에서 작업을 실행합니다.
템플릿을 실행하려면 Cloud Storage 버킷에 저장되는 템플릿 사양 파일을 만들어야 합니다. 템플릿 사양 파일에는 SDK 정보 및 메타데이터와 같이 작업을 실행하는 데 필요한 모든 정보가 포함됩니다. 또한 metadata.json
파일에는 이름, 설명, 입력 매개변수와 같은 템플릿에 대한 정보가 포함됩니다. 템플릿 사양 파일을 만든 후 Java 또는 Python 중 하나를 사용하여 Flex 템플릿을 빌드할 수 있습니다.
Google Cloud CLI를 사용하여 Flex 템플릿 만들기 및 실행에 대한 자세한 내용은 Flex 템플릿 빌드 및 실행 튜토리얼을 참조하세요.
Jobs 명령어
jobs
하위 명령어 그룹을 사용하면 프로젝트에서 Dataflow 작업을 수행할 수 있습니다. 지원되는 작업은 다음과 같습니다.
cancel
: 명령줄 인수와 일치하는 모든 작업을 취소합니다.describe
: Get API에서 가져온 작업 객체를 출력합니다.drain
: 명령줄 인수와 일치하는 모든 작업을 드레이닝합니다.list
: 특정 프로젝트의 모든 작업을 나열하며 선택적으로 리전별로 필터링됩니다.run
: 지정된 경로에서 작업을 실행합니다.show
: 지정된 작업에 대한 간단한 설명을 표시합니다.
프로젝트의 모든 Dataflow 작업 목록을 가져오려면 셸 또는 터미널에서 다음 명령어를 실행합니다.
gcloud dataflow jobs list
이 명령어는 현재 작업 목록을 반환합니다. 다음은 샘플 출력입니다.
ID NAME TYPE CREATION_TIME STATE REGION 2015-06-03_16_39_22-4020553808241078833 wordcount-janedoe-0603233849 Batch 2015-06-03 16:39:22 Done us-central1 2015-06-03_16_38_28-4363652261786938862 wordcount-johndoe-0603233820 Batch 2015-06-03 16:38:28 Done us-central1 2015-05-21_16_24_11-17823098268333533078 bigquerytornadoes-johndoe-0521232402 Batch 2015-05-21 16:24:11 Done europe-west1 2015-05-21_13_38_06-16409850040969261121 bigquerytornadoes-johndoe-0521203801 Batch 2015-05-21 13:38:06 Done us-central1 2015-05-21_13_17_18-18349574013243942260 bigquerytornadoes-johndoe-0521201710 Batch 2015-05-21 13:17:18 Done europe-west1 2015-05-21_12_49_37-9791290545307959963 wordcount-johndoe-0521194928 Batch 2015-05-21 12:49:37 Done us-central1 2015-05-20_15_54_51-15905022415025455887 wordcount-johndoe-0520225444 Batch 2015-05-20 15:54:51 Failed us-central1 2015-05-20_15_47_02-14774624590029708464 wordcount-johndoe-0520224637 Batch 2015-05-20 15:47:02 Done us-central1
각 작업에 대해 표시되는 작업 ID
를 사용하여 describe
명령어를 실행하여 작업에 대한 추가 정보를 표시할 수 있습니다.
gcloud dataflow jobs describe JOB_ID
JOB_ID를 프로젝트의 Dataflow 작업 중 하나의 작업 ID
로 바꿉니다.
예를 들어 작업 ID 2015-02-09_11_39_40-15635991037808002875
의 명령어를 실행하는 경우 샘플 출력은 다음과 같습니다.
createTime: '2015-02-09T19:39:41.140Z' currentState: JOB_STATE_DONE currentStateTime: '2015-02-09T19:56:39.510Z' id: 2015-02-09_11_39_40-15635991037808002875 name: tfidf-bchambers-0209193926 projectId: google.com:clouddfe type: JOB_TYPE_BATCH
결과를 JSON 형식으로 지정하려면 --format=json
옵션을 사용하여 명령어를 실행합니다.
gcloud --format=json dataflow jobs describe JOB_ID
JOB_ID를 프로젝트의 Dataflow 작업 중 하나의 작업 ID
로 바꿉니다.
다음 샘플 출력은 JSON으로 형식 지정됩니다.
{ "createTime": "2015-02-09T19:39:41.140Z", "currentState": "JOB_STATE_DONE", "currentStateTime": "2015-02-09T19:56:39.510Z", "id": "2015-02-09_11_39_40-15635991037808002875", "name": "tfidf-bchambers-0209193926", "projectId": "google.com:clouddfe", "type": "JOB_TYPE_BATCH" }
스냅샷 명령어
snapshots
하위 명령어 그룹을 사용 설정하면 Dataflow 스냅샷으로 작업할 수 있습니다. 지원되는 작업은 다음과 같습니다.
create
: Dataflow 작업의 스냅샷을 만듭니다.delete
: Dataflow 스냅샷을 삭제합니다.describe
: Dataflow 스냅샷을 설명합니다.list
: 선택적으로 작업 ID로 필터링된 지정된 리전의 프로젝트에 있는 모든 Dataflow 스냅샷을 나열합니다.
Dataflow에서 스냅샷 사용에 대한 자세한 내용은 Dataflow 스냅샷 사용을 참조하세요.
SQL 명령어
sql
하위 명령어 그룹을 사용 설정하면 Dataflow SQL로 작업할 수 있습니다. gcloud Dataflow sql query
명령어는 Dataflow에서 사용자 지정 SQL 쿼리를 수락하고 실행합니다.
예를 들어 BigQuery 데이터 세트에서 읽고 다른 BigQuery 데이터 세트에 쓰는 Dataflow 작업에서 간단한 SQL 쿼리를 실행하려면 셸 또는 터미널에서 다음을 실행합니다.
gcloud dataflow sql query 'SELECT word FROM bigquery.table.PROJECT_ID.input_dataset.input_table where count > 3' --job-name=JOB_NAME \ --region=us-west1 \ --bigquery-dataset=OUTPUT_DATASET \ --bigquery-table=OUTPUT_TABLE
다음을 바꿉니다.
- PROJECT_ID: 프로젝트의 전역적으로 고유한 이름
- JOB_NAME: Dataflow 작업 이름
- OUTPUT_DATASET: 출력 데이터 세트의 이름
- OUTPUT_TABLE: 출력 테이블 이름
Dataflow SQL 작업을 시작하는 데 몇 분 정도 걸릴 수 있습니다. 작업을 만든 후에는 업데이트할 수 없습니다. Dataflow SQL 작업은 자동 확장을 사용하며 Dataflow가 자동으로 실행 모드를 일괄 또는 스트리밍으로 선택합니다. Dataflow SQL 작업의 경우 이 동작을 제어할 수 없습니다. Dataflow SQL 작업을 중지하려면 cancel
명령어를 사용합니다. drain
을 사용하여 Dataflow SQL 작업을 중지할 수 없습니다.
Dataflow에서 SQL 명령어를 사용하는 방법에 대한 자세한 내용은 Dataflow SQL 참조 및 gcloud Dataflow sql query
문서를 참조하세요.
리전에 명령어 사용
Dataflow 명령줄 인터페이스는 gcloud CLI 버전 176부터 리전을 지원합니다. 모든 명령어에 --region
옵션을 사용하여 작업을 관리하는 리전을 지정하십시오.
예를 들어 gcloud dataflow jobs list
는 모든 리전의 작업을 나열하지만 gcloud dataflow jobs list --region=europe-west1
는 europe-west1
에서 관리되는 작업만 나열합니다.