이 페이지에서는 워크플로를 사용하여 Batch에 저장된 작업 정보를 BigQuery 테이블로 내보내는 방법을 설명합니다. 특히 샘플 export-jobs 워크플로 를 실행하는 방법과 BigQuery에서 결과 작업 정보를 보는 방법을 알아봅니다.
작업의 정보 내보내기는 작업이 자동으로 또는 수동으로 삭제된 후 정보를 보관하거나 Batch 외부에서 정보를 분석하려는 경우에 유용합니다. 또는 작업 및 작업 상태 변경 정보만 BigQuery로 내보내려면 대신 알림을 사용하여 작업 모니터링 을 참조하세요.
다른 서비스에 저장된 작업 정보를 내보내는 방법을 알아보려면 해당 서비스의 내보내기 문서를 참조하세요.Google Cloud 예를 들어 다음 페이지를 참조하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기 를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
BigQuery 및 Workflows API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한을 이미 보유하고 있을 가능성이 높습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할 부여 방법을 알아보세요.(선택사항) 작업 정보를 저장할 프로젝트의 기존 BigQuery 데이터 세트 또는 테이블을 식별합니다. 기존 테이블에는 일치하는 스키마가 있어야 합니다.
그렇지 않으면 export-jobs 워크플로를 사용하여 새 데이터 세트 또는 테이블을 만들 수 있습니다.
-
다음과 같이 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-jobs 워크플로를 사용하여 작업 정보를 내보내는 방법을 설명합니다. 이 워크플로는
export-to-bigquery 코드 샘플에서 가져온 것입니다.
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 OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\""을 지정합니다. 이 기본 필터 기준은SUCCEEDED,FAILED또는CANCELLED상태에 있고2023-05-01T00:00:00ZRFC 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 문서의 테이블 데이터 관리를 참조하세요.
BigQuery Google Cloud
탐색기 패널에서 내보낸 작업 정보의 테이블을 엽니다.
- BigQuery 리소스 검색 필드에 export-jobs 워크플로의 테이블 이름을 입력합니다. 예를 들어 기본 테이블 이름은
default_table_id입니다. - 테이블 이름을 클릭합니다. 테이블 세부정보 페이지가 열립니다.
테이블 세부정보 페이지에서 세부정보 탭을 클릭합니다.
세부정보 탭에서 최종 수정 시간 타임스탬프와 행 수 를 확인합니다.
테이블 세부정보 페이지에서 미리보기 탭을 클릭합니다.
- BigQuery 리소스 검색 필드에 export-jobs 워크플로의 테이블 이름을 입력합니다. 예를 들어 기본 테이블 이름은