이 페이지에서는 워크플로를 사용하여 Batch에 저장된 작업 정보를 BigQuery 테이블로 내보내는 방법을 설명합니다. 특히 샘플 export-jobs 워크플로를 실행하는 방법과 BigQuery에서 결과 작업 정보를 보는 방법을 알아봅니다.
작업 정보를 내보내는 것은 작업이 자동으로 또는 수동으로 삭제된 후 정보를 보관하거나 Batch 외부에서 정보를 분석하려는 경우에 유용합니다. 또는 태스크 및 작업 상태 변경 정보만 BigQuery로 내보내려면 알림을 사용하여 작업 모니터링을 참고하세요.
다른 Google Cloud 서비스에 저장된 작업 정보를 내보내는 방법을 알아보려면 해당 서비스의 내보내기 문서를 참고하세요. 예를 들어 다음 페이지를 참고하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
Enable the BigQuery and Workflows APIs.
(선택사항) 작업 정보를 저장할 프로젝트의 기존 BigQuery 데이터 세트 또는 테이블을 식별합니다. 기존 테이블에 일치하는 스키마가 있어야 합니다.
또는 export-jobs 워크플로를 사용하여 새 데이터 세트 또는 테이블을 만들 수 있습니다.
-
다음을 수행하여 export-jobs 워크플로의 서비스 계정을 준비합니다.
- 새 서비스 계정을 만들거나 기존 서비스 계정을 식별합니다.
-
서비스 계정에 export-jobs 워크플로를 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 서비스 계정에 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
로그 작성:
로그 작성자(
roles/logging.logWriter
) -
BigQuery 데이터 세트 및 테이블 만들기 및 수정:
BigQuery 관리자(
roles/bigquery.admin
) -
Batch 작업 보기 및 삭제:
Batch 작업 편집자(
roles/batch.jobsEditor
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
로그 작성:
로그 작성자(
-
내보내기 작업 워크플로를 만들고, 배포하고, 실행하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.
-
작업 보기:
Batch 작업 뷰어(
roles/batch.jobsViewer
) -
서비스 계정 보기:
서비스 계정 보기(
roles/iam.serviceAccountViewer
) -
BigQuery 데이터 세트 및 테이블 보기:
BigQuery 데이터 뷰어(
roles/bigquery.dataViewer
) -
워크플로 생성, 배포, 실행:
워크플로 편집자(
roles/workflows.editor
)
-
작업 보기:
Batch 작업 뷰어(
-
프로젝트의 사용자가 내보낸 작업 정보를 볼 수 있는지 확인합니다.
사용자가 작업 정보를 내보내는 데 필요한 권한을 갖도록 하려면 관리자에게 사용자에게 테이블, 데이터 세트 또는 프로젝트에 대한 BigQuery 데이터 뷰어(
roles/bigquery.dataViewer
) IAM 역할을 부여해 달라고 요청하세요.
작업 정보 내보내기
이 섹션에서는 export-to-bigquery
코드 샘플의 export-jobs 워크플로를 사용하여 작업 정보를 내보내는 방법을 설명합니다.
export-jobs 워크플로는 지정된 리전에 있고 지정된 필터 기준을 충족하는 프로젝트 작업의 정보를 내보냅니다.
export-jobs 워크플로는 지정된 데이터 세트의 지정된 테이블로 작업 정보를 내보냅니다. 이 테이블은 프로젝트에 아직 없는 경우 워크플로에 의해 자동으로 생성됩니다. 기본적으로 export-jobs 워크플로는 내보낸 작업을 Batch에서도 삭제하지만 원하는 경우 작업을 삭제하지 않도록 export-jobs 워크플로를 수정할 수 있습니다.
사용하려는 각 export-jobs 워크플로에 대해 다음을 실행합니다.
- 워크플로 정의를 구성합니다.
- 워크플로를 만들고 배포합니다.
- 워크플로를 실행합니다. 지정된 작업을 내보낼 때마다 이 단계를 반복합니다.
워크플로 정의 구성
GitHub에서
export-to-bigquery-delete-batch-jobs.yaml
파일을 다운로드합니다.텍스트 편집기에서
export-to-bigquery-delete-batch-jobs.yaml
파일을 엽니다. 그런 다음 다음과 같이 수정합니다.sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
를 문자열 형식의 프로젝트 ID(예:"my-project-id"
)로 바꿉니다.sys.get_env("GOOGLE_CLOUD_LOCATION")
을 내보낼 작업이 포함된 리전으로 바꿉니다(예:"us-central1"
). 형식은 문자열입니다.(선택사항) 내보낼 작업을 지정하는 필터 기준을 수정합니다.
기본적으로 export-jobs 워크플로는 필터 기준
"(status.state:SUCCEEDED OR status.state:FAILED) AND create_time<=\"2023-05-01T00:00:00Z\""
를 지정합니다. 이 기본 필터 기준은SUCCEEDED
또는FAILED
상태에 있고2023-05-01T00:00:00Z
RFC 3339 타임스탬프 이전에 생성된 작업에 대해서만 정보를 내보냅니다.(선택사항)
default_dataset_id
를 export-jobs 워크플로에서 사용하거나 만들려는 데이터 세트의 다른 이름으로 바꿉니다.(선택사항)
default_table_id
를 export-jobs 워크플로에서 사용하거나 만들려는 테이블의 다른 이름으로 바꿉니다.내보낸 작업이 워크플로에 의해 삭제되지 않도록 하려면 다음을 실행합니다.
다음 줄을 삭제합니다.
- log_delete_step: call: sys.log args: text: ${"Deleting Batch job " + j.name} severity: NOTICE - delete_job: call: googleapis.batch.v1.projects.locations.jobs.delete args: name: ${j.name}
+ " and deleted"
를 삭제합니다.
파일을 저장합니다. 파일을 열어 둡니다.
워크플로 만들기 및 배포
Google Cloud 콘솔에서 Workflows 페이지로 이동합니다.
Workflows 페이지에서
만들기를 클릭합니다.워크플로 이름 필드에 워크플로의 이름을 입력합니다(예:
export-batch-jobs-us-central1
).서비스 계정 준비해 둔 서비스 계정을 선택합니다.
다음을 클릭합니다.
워크플로 편집기에서 샘플 워크플로를
export-to-bigquery-delete-batch-jobs.yaml
파일의 콘텐츠로 바꿉니다. 그런 다음 파일을 닫을 수 있습니다.배포를 클릭합니다. 워크플로 세부정보 페이지가 열립니다.
워크플로 실행
워크플로 세부정보 페이지에서
실행을 클릭합니다. 워크플로 실행 페이지가 열립니다.워크플로 실행 페이지가 열리면 실행을 클릭합니다.
열리는 실행 세부정보에서 워크플로 실행이 완료될 때까지 기다립니다. 예를 들어 몇 개의 작업을 내보내고 삭제하는 데 걸리는 실행 시간은 일반적으로 몇 초이지만, 많은 작업을 내보내고 삭제하는 경우 실행 시간이 더 오래 걸릴 수 있습니다.
워크플로 실행이 완료되면 출력 창에 결과가 표시됩니다.
내보낸 작업 정보 보기
이 섹션에서는 export-jobs 워크플로로 생성된 테이블 데이터를 보는 방법을 소개합니다. 예를 들어 다음 단계에 따라 워크플로가 성공적으로 실행되었는지 확인하고 테이블 데이터를 탐색할 수 있습니다. 내보낸 작업 정보를 확인하고 사용하는 방법(예: 쿼리 작성)에 관한 자세한 내용은 BigQuery 문서의 테이블 데이터 관리를 참고하세요.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
탐색기 패널에서 내보낸 작업 정보의 테이블을 엽니다.
- BigQuery 리소스 검색 필드에 내보내기 작업 워크플로의 테이블 이름을 입력합니다. 예를 들어 기본 테이블 이름은
default_table_id
입니다. - 테이블 이름을 클릭합니다. 테이블 세부정보 페이지가 열립니다.
테이블 세부정보 페이지에서 세부정보 탭을 클릭합니다.
세부정보 탭에서 최종 수정 시간 타임스탬프와 행 개수를 확인합니다.
테이블 세부정보 페이지에서 미리보기 탭을 클릭합니다.
- BigQuery 리소스 검색 필드에 내보내기 작업 워크플로의 테이블 이름을 입력합니다. 예를 들어 기본 테이블 이름은