이 문서에서는 Pub/Sub 알림을 설정하여 작업 및 태스크 상태 변경을 모니터링하는 방법을 설명합니다. 이 알림은 다양한 사용 사례에 사용할 수 있습니다. 예를 들어 이 문서에서는 데이터를 분석하는 데 사용할 수 있는 BigQuery 테이블로 알림을 스트리밍하는 방법을 설명합니다. Pub/Sub 알림의 사용 사례에 대한 자세한 내용은 Pub/Sub 문서의 구독 유형 선택을 참조하세요.
또는 작업에 관한 모든 정보를 BigQuery로 내보내려면 작업 정보 내보내기를 참고하세요.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
- Batch 작업에 Pub/Sub 알림을 설정하려는 경우 다음을 수행하세요.
-
Enable the Pub/Sub API.
-
Pub/Sub 주제 및 구독을 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Pub/Sub 편집자(
roles/pubsub.editor
) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
- 추가 요구사항은 구성하기로 결정한 구독 유형에 따라 달라집니다. 예를 들어 알림을 BigQuery 테이블로 스트리밍하고 분석하려면 다음을 수행해야 합니다.
-
Enable the BigQuery API.
-
Pub/Sub 서비스 계정에서 Pub/Sub 알림을 BigQuery로 스트리밍하는 데 필요한 권한을 확보하려면 관리자에게 Pub/Sub 서비스 계정에 Pub/Sub 주제의 프로젝트에 대한 BigQuery Data 편집기(
roles/bigquery.dataEditor
) IAM 역할을 부여해 달라고 요청하세요.이 역할 할당에 대한 자세한 내용은 Pub/Sub 서비스 계정에 BigQuery 역할 할당을 참조하세요.
- BigQuery에서 알림을 분석하려는 모든 사용자에게 필요한 권한이 있는지 확인하세요.
BigQuery에서 Pub/Sub 알림을 쿼리하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
BigQuery 테이블의 프로젝트에 대한 BigQuery 작업 사용자(
roles/bigquery.jobUser
) -
BigQuery 테이블의 BigQuery 데이터 뷰어(
roles/bigquery.dataViewer
)
-
BigQuery 테이블의 프로젝트에 대한 BigQuery 작업 사용자(
-
Batch에 대한 Pub/Sub 알림 설정
Batch는 알림, 관측 가능성 또는 분석에 사용할 수 있는 작업 및 태스크 상태 변경에 대한 Pub/Sub 알림을 지원합니다.
하나 이상의 Batch 작업에 대한 Pub/Sub 알림을 설정하려면 다음 섹션에 설명된 단계를 완료하세요.
- Batch 작업에 대한 Pub/Sub 주제를 만들거나 식별합니다.
- 알림을 수신하고 사용하도록 주제에 대한 구독을 하나 이상 만듭니다.
- 주제에 대한 알림을 보내도록 작업을 구성합니다.
Batch에 대한 Pub/Sub 알림을 설정한 후 필요에 따라 특정 알림을 보내도록 각 작업을 구성할 수 있습니다. 작업 또는 태스크 상태가 변경될 때마다 알림을 받을 수도 있고 특정 작업 또는 태스크 상태에 대한 알림을 필터링할 수도 있습니다. 특히 Pub/Sub는 작업 또는 태스크의 첫 번째 상태에 대해서는 알림을 보내지 않고, 작업이 한 상태에서 다른 상태로 전환되는 경우에만 알림을 보냅니다. Pub/Sub 알림에 대해 구성할 수 있는 속성에 대한 자세한 내용은 Pub/Sub 상태 알림을 보내는 작업 만들기 및 실행을 참조하세요.
Batch에 대한 Pub/Sub 주제 만들기 또는 식별
Batch 알림에 사용할 새 Pub/Sub 주제를 만들거나 기존 Pub/Sub 주제를 식별합니다.
이 문서의 뒷부분에 설명된 대로 관리자가 이를 허용하는 추가 권한을 부여할 때까지 작업에서 이 Pub/Sub 주제에 대한 알림을 보낼 수 없습니다.
알림을 수신하고 사용하도록 구독 만들기
Pub/Sub 주제에 게시된 메시지를 수신하고 사용하려면 해당 주제에 대한 구독을 하나 이상 만들어야 합니다.
예를 들어 한 가지 옵션은 알림을 BigQuery로 스트리밍하도록 주제를 구성하는 것입니다. 그러면 알림을 게시하는 작업을 실행할 때 BigQuery 테이블에서 알림을 수신하고 분석할 수 있습니다. 자세한 내용은 이 문서에서 예: BigQuery에서 Pub/Sub 알림 수신 및 사용을 참조하세요.
그렇지 않은 경우 구독 및 기타 구독 옵션에 대해 자세히 알아보려면 Pub/Sub 문서에서 구독 개요를 참조하세요.
주제에 대한 알림을 보내도록 작업 구성
주제에 대한 Pub/Sub 알림을 보내는 작업을 구성하려면 Pub/Sub 상태 알림을 보내는 작업 만들기 및 실행 페이지의 안내를 따르세요. 특히 다음을 준수하세요.
- 아직 권한을 부여받지 않은 경우 관리자에게 Pub/Sub 주제에 대한 알림을 보내는 작업에 필요한 모든 권한을 부여해 달라고 요청합니다. 이러한 권한은 해당 페이지의 필요한 역할 섹션에 나열되어 있습니다.
- 작업의
notifications
필드를 정의하여 Pub/Sub 알림을 사용 설정하는 작업을 만들고 실행합니다.
예: BigQuery에서 Pub/Sub 알림 수신 및 사용
다음 섹션에서는 BigQuery에서 Pub/Sub 알림을 수신하고 사용하는 사용 사례 예시를 설명합니다. 주제의 Pub/Sub 알림을 BigQuery 테이블로 스트리밍하는 구독을 구성하면 작업 및 태스크 상태 변경 내역을 보관하고 해당 변경 사항을 쿼리할 수 있습니다.
BigQuery로 알림을 스트리밍하는 구독 구성
다음을 수행하여 주제에서 BigQuery 테이블로 알림을 스트리밍하는 Pub/Sub 구독을 구성합니다.
아직 수행하지 않았다면 Batch에 대한 Pub/Sub 주제를 만들거나 식별합니다.
아직 없으면 BigQuery 데이터 세트를 만듭니다.
다음 스키마 정의를 사용하여 BigQuery 테이블을 만듭니다.
[ { "name": "data", "type": "STRING" }, { "name": "subscription_name", "type": "STRING" }, { "name": "message_id", "type": "STRING" }, { "name": "attributes", "type": "JSON" }, { "name": "publish_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]
BigQuery로 스트리밍되는 Pub/Sub 구독을 만들고 다음 옵션을 지정합니다.
- 주제: Batch에 대한 Pub/Sub 주제를 선택합니다.
- 프로젝트: BigQuery 테이블이 포함된 프로젝트를 선택합니다.
- 데이터 세트: BigQuery 테이블이 포함된 데이터 세트를 선택합니다.
- 테이블: 이전 단계에서 만든 테이블을 선택합니다.
- 주제 스키마 사용을 선택합니다.
- 메타데이터 쓰기를 선택합니다.
이제 Pub/Sub 알림을 해당 주제로 보낼 때마다 Pub/Sub는 해당 알림을 BigQuery 테이블로 스트리밍합니다. Pub/Sub 알림을 보내도록 작업을 구성한 후 BigQuery에서 알림을 분석할 수 있습니다.
BigQuery에서 알림 분석
주제에 대한 BigQuery 테이블 구독을 구성하고 주제에 알림을 보내는 작업을 실행한 후 BigQuery에서 알림을 분석할 수 있습니다. BigQuery에서 알림을 분석하려면 BigQuery 테이블의 attributes
열에 대해 쿼리를 실행합니다. 쿼리할 수 있는 속성은 태스크 또는 작업에 대한 알림을 구성했는지 여부에 따라 달라집니다.
태스크 알림의 다음 속성을 쿼리할 수 있습니다.
JobUID
NewTaskState
Region
TaskName
TaskUID
Type
작업 알림의 다음 속성을 쿼리할 수 있습니다.
JobUID
JobName
NewJobState
Region
Type
예를 들어 다음 쿼리는 각 알림과 연결된 JobUID
를 보여줍니다.
select attributes.JobUID from `example-table`
다음 단계
- Pub/Sub 상태 알림을 보내는 작업 만들기 및 실행 방법 알아보기
- Pub/Sub 구독 자세히 알아보기
- BigQuery 분석 자세히 알아보기