이 페이지에서는 워크플로를 사용하여 Batch에 저장된 작업 정보를 BigQuery 테이블로 내보내는 방법을 설명합니다. 특히 샘플 export-jobs 워크플로를 실행하는 방법과 BigQuery에서 결과 작업 정보를 보는 방법을 알아봅니다.
작업 정보를 내보내는 것은 작업이 자동으로 또는 수동으로 삭제된 후 정보를 보관하거나 Batch 외부에서 정보를 분석하려는 경우에 유용합니다. 또는 태스크 및 작업 상태 변경 정보만 BigQuery로 내보내려면 알림을 사용하여 작업 모니터링을 참고하세요.
다른Google Cloud 서비스에 저장된 작업 정보를 내보내는 방법을 알아보려면 해당 서비스의 내보내기 문서를 참고하세요. 예를 들어 다음 페이지를 참고하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
-
Enable the BigQuery and Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. (선택사항) 작업 정보를 저장할 프로젝트의 기존 BigQuery 데이터 세트 또는 테이블을 식별합니다. 기존 테이블에 일치하는 스키마가 있어야 합니다.
그렇지 않으면 export-jobs 워크플로를 사용하여 새 데이터 세트나 테이블을 만들 수 있습니다.
-
다음을 실행하여 내보내기 작업 워크플로의 서비스 계정을 준비합니다.
- 새 서비스 계정을 만들거나 기존 서비스 계정을 식별합니다.
-
서비스 계정에 export-jobs 워크플로를 실행하는 데 필요한 권한이 있는지 확인하려면 관리자에게 서비스 계정에 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
로그 작성:
로그 작성자 (
roles/logging.logWriter
) -
BigQuery 데이터 세트 및 테이블 만들기 및 수정:
BigQuery 관리자 (
roles/bigquery.admin
) -
Batch 작업 보기 및 삭제:
Batch 작업 편집자 (
roles/batch.jobsEditor
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
로그 작성:
로그 작성자 (
-
export-jobs 워크플로를 만들고, 배포하고, 실행하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 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 워크플로는 내보낸 작업을 배치에서 삭제하지만, 원한다면 작업을 삭제하지 않도록 export-jobs 워크플로를 수정할 수 있습니다.
사용하려는 각 export-jobs 워크플로에 대해 다음을 실행합니다.
- 워크플로 정의를 구성합니다.
- 워크플로를 만들고 배포합니다.
- 워크플로를 실행합니다. 지정된 작업을 내보내려면 이 단계를 반복합니다.
워크플로 정의 구성
텍스트 편집기에서
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 OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\""
를 지정합니다. 이 기본 필터 기준은SUCCEEDED
,FAILED
또는CANCELLED
상태에 있고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 리소스 검색 필드에 export-jobs 워크플로의 테이블 이름을 입력합니다. 예를 들어 기본 테이블 이름은
default_table_id
입니다. - 표 이름을 클릭합니다. 표 세부정보 페이지가 열립니다.
테이블 세부정보 페이지에서 세부정보 탭을 클릭합니다.
세부정보 탭에서 최종 수정 시간 타임스탬프와 행 수를 확인합니다.
테이블 세부정보 페이지에서 미리보기 탭을 클릭합니다.
- BigQuery 리소스 검색 필드에 export-jobs 워크플로의 테이블 이름을 입력합니다. 예를 들어 기본 테이블 이름은