arrow_back

스트리밍 데이터 처리: 스트리밍 데이터 파이프라인

로그인 가입
700개 이상의 실습 및 과정 이용하기

스트리밍 데이터 처리: 스트리밍 데이터 파이프라인

실습 1시간 30분 universal_currency_alt 크레딧 5개 show_chart 입문
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
700개 이상의 실습 및 과정 이용하기

개요

이 실습에서는 Dataflow를 사용하여 Google Cloud PubSub를 통해 제공되는 시뮬레이션된 트래픽 센서 데이터로부터 트래픽 이벤트를 수집하고, 작업 가능한 평균값으로 처리한 다음, 나중에 분석할 수 있도록 원시 데이터를 BigQuery에 저장합니다. Dataflow 파이프라인을 시작하고, 모니터링하고, 최적화하는 방법을 학습합니다.

참고: 이 문서를 작성할 당시에는 DataFlow Python SDK에서 스트리밍 파이프라인을 사용할 수 없었습니다. 따라서 스트리밍 실습이 Java로 작성되었습니다.

목표

이 실습에서는 다음 작업을 수행합니다.

  • Dataflow 실행 및 Dataflow 작업 실행하기
  • Dataflow 파이프라인의 변환을 통해 데이터 요소가 전달되는 방법 이해하기
  • Pub/Sub 및 BigQuery에 Dataflow 연결하기
  • 입력 데이터가 최적의 방식으로 처리되도록 Dataflow 자동 확장이 컴퓨팅 리소스를 조정하는 방법 관찰 및 이해하기
  • Dataflow에 의해 생성된 로깅 정보를 찾을 수 있는 위치 알아보기
  • Cloud Monitoring을 사용하여 측정항목 살펴보기, 알림 및 대시보드 만들기

설정

각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.

  1. 시크릿 창을 사용하여 Qwiklabs에 로그인합니다.

  2. 실습 사용 가능 시간(예: 1:15:00)을 참고하여 해당 시간 내에 완료합니다.
    일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.

  3. 준비가 되면 실습 시작을 클릭합니다.

  4. 실습 사용자 인증 정보(사용자 이름비밀번호)를 기록해 두세요. Google Cloud Console에 로그인합니다.

  5. Google Console 열기를 클릭합니다.

  6. 다른 계정 사용을 클릭한 다음, 안내 메시지에 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
    다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.

  7. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.

프로젝트 권한 확인

Google Cloud에서 작업을 시작하기 전에 프로젝트가 Identity and Access Management(IAM) 내에서 올바른 권한을 보유하고 있는지 확인해야 합니다.

  1. Google Cloud 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 IAM 및 관리자 > IAM을 선택합니다.

  2. 기본 컴퓨팅 서비스 계정 {project-number}-compute@developer.gserviceaccount.com이 있고 editor 역할이 할당되어 있는지 확인하세요. 계정 프리픽스는 프로젝트 번호이며, 이 번호는 탐색 메뉴 > Cloud 개요 > 대시보드에서 확인할 수 있습니다.

Compute Engine 기본 서비스 계정 이름과 편집자 상태가 강조 표시된 권한 탭 페이지

참고: 계정이 IAM에 없거나 editor 역할이 없는 경우 다음 단계에 따라 필요한 역할을 할당합니다.
  1. Google Cloud 콘솔의 탐색 메뉴에서 Cloud 개요 > 대시보드를 클릭합니다.
  2. 프로젝트 번호(예: 729328892908)를 복사합니다.
  3. 탐색 메뉴에서 IAM 및 관리자 > IAM을 선택합니다.
  4. 역할 테이블 상단에서 주 구성원별로 보기 아래에 있는 액세스 권한 부여를 클릭합니다.
  5. 새 주 구성원 필드에 다음을 입력합니다.
{project-number}-compute@developer.gserviceaccount.com
  1. {project-number}는 프로젝트 번호로 바꿉니다.
  2. 역할 필드에서 프로젝트(또는 기본) > 편집자를 선택합니다.
  3. 저장을 클릭합니다.

작업 1. 준비

여러분은 학습용 VM에서 센서 시뮬레이터를 실행하게 됩니다. 실습 1에서는 수동으로 Pub/Sub 구성요소를 설치했습니다. 이번 실습에서는 해당 프로세스 중 일부가 자동화되어 있습니다.

SSH 터미널을 열고 학습용 VM에 연결하기

  1. 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 Compute Engine > VM 인스턴스를 클릭합니다.

  2. training-vm 인스턴스가 있는 줄을 찾습니다.

  3. 맨 오른쪽에 있는 연결에서 SSH를 클릭하여 터미널 창을 엽니다.

  4. 이 실습에서는 training-vm에 CLI 명령어를 입력합니다.

초기화가 완료되었는지 확인하기

training-vm이 백그라운드에서 몇 가지 소프트웨어를 설치합니다.

  • 새 디렉터리의 내용을 검토하여 설정이 완료되었는지 확인합니다.
ls /training

목록(ls) 명령어 결과가 아래 이미지와 같이 표시되면 설정이 완료된 것입니다. 전체 목록이 표시되지 않는 경우 몇 분 정도 기다린 후 다시 시도하세요.

VM 폴더

참고: 모든 백그라운드 작업이 완료되려면 2~3분 정도 걸립니다.

코드 저장소 다운로드하기

  • 다음으로 이 실험에서 사용할 코드 저장소를 새로고침합니다.
git clone https://github.com/GoogleCloudPlatform/training-data-analyst

환경 변수 설정하기

  • training-vm SSH 터미널에서 다음을 입력합니다.
source /training/project_env.sh

이 스크립트는 DEVSHELL_PROJECT_IDBUCKET 환경 변수를 설정합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 코드 저장소 다운로드하기

작업 2: BigQuery 데이터 세트 및 Cloud Storage 버킷 만들기

Dataflow 파이프라인은 나중에 생성되어 BigQuery 데이터 세트에 있는 테이블에 기록됩니다.

BigQuery 콘솔 열기

  1. Google Cloud Console에서 탐색 메뉴 > BigQuery를 선택합니다.

Cloud Console의 BigQuery에 오신 것을 환영합니다라는 메시지 상자가 열립니다. 이 메시지 상자에서는 빠른 시작 가이드 링크 및 UI 업데이트 목록을 확인할 수 있습니다.

  1. 완료를 클릭합니다.

BigQuery 데이터 세트 만들기

  1. 데이터 세트를 만들려면 프로젝트 ID 옆에 있는 작업 보기 아이콘을 클릭하고 데이터 세트 만들기를 선택합니다.

  2. 다음으로 데이터 세트 ID의 이름을 demos로 지정하고 다른 옵션은 모두 기본값으로 둔 후 데이터 세트 만들기를 클릭합니다.

Cloud Storage 버킷 확인하기

프로젝트 ID와 동일한 이름을 가진 버킷이 이미 존재할 것입니다.

  1. 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 Cloud Storage > 버킷을 클릭합니다.

  2. 다음 값을 확인합니다.

속성

(값 입력 또는 지정된 옵션 선택)

이름

기본 스토리지 클래스

리전

위치

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. BigQuery 데이터 세트 만들기

작업 3. Pub/Sub로 트래픽 센서 데이터 시뮬레이션

  • training-vm SSH 터미널에서 센서 시뮬레이터를 시작합니다. 스크립트는 CSV 파일에서 샘플 데이터를 읽어 Pub/Sub에 게시합니다.
/training/sensor_magic.sh

이 명령어는 1시간 분량의 데이터를 1분 안에 보냅니다. 스크립트가 현재 터미널에서 계속 실행되도록 둡니다.

두 번째 SSH 터미널을 열고 학습용 VM에 연결하기

  1. training-vm SSH 터미널의 오른쪽 상단에서 톱니바퀴 모양 버튼(설정 아이콘)을 클릭하고 드롭다운 메뉴에서 training-vm로의 새로운 연결을 선택합니다. 새 터미널 창이 열립니다.

  2. 새 터미널 세션에는 필수 환경 변수가 없습니다. 다음 명령을 실행하여 설정합니다.

  3. training-vm SSH 터미널에서 다음을 입력합니다.

source /training/project_env.sh

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Pub/Sub로 트래픽 센서 데이터 시뮬레이션하기

작업 4. Dataflow 파이프라인 실행

이 프로젝트에 Google Cloud Dataflow API가 사용 설정되었는지 확인하기

  1. 적절한 API와 권한이 설정되었는지 확인하려면 Cloud Shell에서 다음 코드 블록을 실행합니다.
gcloud services disable dataflow.googleapis.com --force gcloud services enable dataflow.googleapis.com
  1. 두 번째 training-vm SSH 터미널로 돌아갑니다. 이 실습의 디렉터리로 변경합니다.
cd ~/training-data-analyst/courses/streaming/process/sandiego
  1. Dataflow 파이프라인을 만들고 실행한 스크립트를 식별합니다.
cat run_oncloud.sh
  1. GitHub에서 소스 코드를 보려면 다음 URL을 복사하여 새 브라우저 탭에 붙여넣습니다.
https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/streaming/process/sandiego/run_oncloud.sh
  1. 이 스크립트에는 project id, bucket name, classname이라는 세 가지 인수가 필요합니다.

네 번째 선택 가능한 인수는 options입니다. options 인수에 대한 내용은 이 실습의 뒷부분에서 설명하겠습니다.

프로젝트 ID

버킷 이름

클래스 이름

<집계를 실행하는 Java 파일>

options

<옵션>

classname의 경우 4개의 Java 파일 중에서 선택할 수 있습니다. 각각 Pub/Sub에서 트래픽 데이터를 읽고 서로 다른 집계/계산을 실행합니다.

  1. Java 디렉터리로 이동합니다. AverageSpeeds.java 소스 파일을 확인합니다.
cd ~/training-data-analyst/courses/streaming/process/sandiego/src/main/java/com/google/cloud/training/dataanalyst/sandiego cat AverageSpeeds.java

이 스크립트는 어떤 역할을 하나요?

파일을 닫고 계속합니다. 애플리케이션을 실행할 때 이 소스 코드를 참조하고 싶을 수 있습니다. 새 브라우저 탭을 열고 AverageSpeeds.java 파일을 GitHub에서 보면 액세스하기가 편합니다.

  1. GitHub에서 소스 코드를 보려면 다음 URL을 복사하여 브라우저 탭에 붙여넣습니다.
https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/courses/streaming/process/sandiego/src/main/java/com/google/cloud/training/dataanalyst/sandiego/AverageSpeeds.java

이 브라우저 탭은 열어 두세요. 이 실습의 나중 단계에서 소스 코드를 다시 참조하게 됩니다.

  1. training-vm SSH 터미널로 돌아갑니다. Dataflow 파이프라인에 대해 다음 명령어를 실행하여 Pub/Sub에서 읽고 BigQuery에 씁니다.
cd ~/training-data-analyst/courses/streaming/process/sandiego export REGION={{{project_0.startup_script.gcp_region|Lab GCP Region}}} ./run_oncloud.sh $DEVSHELL_PROJECT_ID $BUCKET AverageSpeeds

이 스크립트는 maven을 사용하여 Java로 Dataflow 스트리밍 파이프라인을 빌드합니다.

완료 시 다음과 유사한 결과가 출력됩니다.

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 45.542 s [INFO] Finished at: 2018-06-08T16:51:30+00:00 [INFO] Final Memory: 56M/216M [INFO] ------------------------------------------------------------------------

작업 5. 파이프라인 살펴보기

이 Dataflow 파이프라인은 Pub/Sub 주제의 메시지를 읽고, 입력 메시지의 JSON을 파싱하며, 기본 출력을 하나 생성하고, BigQuery에 씁니다.

  1. 콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴(탐색 메뉴 아이콘)에서 Dataflow를 클릭하고 진행 상태를 모니터링할 작업을 클릭합니다.

예:

Dataflow 작업 모니터링 창

참고: Dataflow 작업이 실패했다면 ./run_oncloud.sh $DEVSHELL_PROJECT_ID $BUCKET AverageSpeeds 명령어를 다시 실행합니다.
  1. 파이프라인이 실행되면 탐색 메뉴(탐색 메뉴 아이콘)에서 Pub/Sub > 주제를 클릭합니다.

  2. 주제 이름 줄에서 sandiego 주제를 살펴봅니다.

  3. 탐색 메뉴(탐색 메뉴 아이콘)로 돌아가 Dataflow를 클릭하고 작업을 클릭합니다.

  4. GitHub 브라우저 탭에 있는 AverageSpeeds.java 코드와 Dataflow 작업 페이지에 있는 파이프라인 그래프를 비교합니다.

  5. 그래프에서 GetMessages 파이프라인 단계를 찾은 다음 AverageSpeeds.java 파일에서 이에 해당하는 코드를 찾습니다. 이는 Pub/Sub 주제에서 읽는 파이프라인 단계입니다. 이 단계는 읽은 Pub/Sub 메시지에 해당하는 Strings 컬렉션을 만듭니다.

  • 구독이 생성된 것이 보이나요?
  • 코드가 어떻게 메시지를 Pub/Sub로부터 가져오나요?
  1. 그래프 및 코드에서 기간 파이프라인 단계를 찾습니다. 이 파이프라인 단계에서는 파이프라인 매개변수에 지정된 기간을 만듭니다(이 경우 슬라이딩 기간). 이 기간이 끝날 때까지 이전 단계의 트래픽 데이터가 누적된 후에 추가 변환을 위해 다음 단계로 전달됩니다.
  • 기간 간격이란 무엇인가요?
  • 새 기간은 얼마나 자주 생성되나요?
  1. 그래프에서 BySensorAvgBySensor 파이프라인 단계를 찾은 다음 AverageSpeeds.java 파일에서 이에 해당하는 코드 스니펫을 찾습니다. BySensor는 기간 내의 모든 이벤트를 센서 ID별로 그룹화하고, AvgBySensor는 각 그룹의 평균 속도를 계산합니다.

  2. 그래프 및 코드에서 ToBQRow 파이프라인 단계를 찾습니다. 이 단계에서는 이전 단계에서 계산한 평균값과 차선 정보를 포함하는 '행'을 만듭니다.

참고: 실제로는 ToBQRow 단계에서 다른 작업이 수행될 수도 있습니다. 예를 들어 계산된 평균값을 사전 정의된 임곗값과 비교하고, 비교 결과를 Cloud Logging에 기록할 수 있습니다.
  1. 파이프라인 그래프와 소스 코드 모두에서 BigQueryIO.Write를 찾습니다. 이 단계는 파이프라인에서 가져온 행을 BigQuery 테이블에 씁니다. WriteDisposition.WRITE_APPEND 쓰기 방식을 선택했기 때문에 새 레코드가 테이블에 추가됩니다.

  2. BigQuery 웹 UI 탭으로 돌아간 다음, 브라우저를 새로고침합니다.

  3. 프로젝트 이름 및 생성한 데모 데이터 세트를 찾습니다. 데이터 세트 이름 demos 왼쪽에 작은 화살표가 활성화되고 이를 클릭하면 average_speeds 테이블이 표시됩니다.

  4. BigQuery에 average_speeds 테이블이 나타날 때까지 몇 분 정도 걸립니다.

예:

새로운 averagespeeds 테이블이 표시됨

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Dataflow 파이프라인 실행하기

작업 6. 처리율 확인

Dataflow 파이프라인을 모니터링하고 개선할 때는 파이프라인이 1초에 몇 개의 요소를 처리하는지, 시스템 지연이 어느 정도 발생하는지, 지금까지 얼마나 많은 데이터 요소를 처리했는지 알아내는 작업을 공통적으로 수행합니다. 이 활동에서는 Cloud 콘솔에서 처리된 요소 및 시간에 대한 정보를 확인할 수 있는 위치를 학습합니다.

  1. 콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴(탐색 메뉴 아이콘)에서 Dataflow를 클릭하고 진행 상태를 모니터링할 작업을 클릭합니다(파이프라인 이름에 사용자 이름이 있음).

  2. 그래프에서 GetMessages 파이프라인 노드를 선택하고 오른쪽에 있는 단계 측정항목을 봅니다.

  • 시스템 지연시간은 스트리밍 파이프라인에 대한 중요한 측정항목입니다. 데이터 요소가 변환 단계의 입력에 '도착'한 이후 처리될 때까지 대기 중인 시간을 나타냅니다.
  • 출력 컬렉션 아래에 있는 추가된 요소 측정항목은 이 단계에서 얼마나 많은 데이터 요소가 나갔는지를 알려줍니다. 파이프라인의 Pub/Sub 메시지 읽기 단계에서는 이 측정항목이 Pub/Sub IO 커넥터가 주제에서 읽은 Pub/Sub 메시지의 수도 나타냅니다.
  1. 그래프에서 기간 노드를 선택합니다. 기간 단계의 입력 컬렉션에 있는 추가된 요소 측정항목이 이전 단계인 GetMessages의 출력 컬렉션에 있는 추가된 요소 측정항목과 얼마나 일치하는지 관찰합니다.

작업 7. BigQuery 출력 검토

  1. BigQuery 웹 UI로 돌아갑니다.
참고: 스트리밍 데이터 및 테이블이 즉시 나타나지 않을 수 있으며, 아직 스트리밍 버퍼에 있는 데이터의 경우 미리보기 기능을 사용하지 못할 수도 있습니다.

미리보기를 클릭하면 'This table has records in the streaming buffer that may not be visible in the preview(이 테이블의 일부 레코드가 스트리밍 버퍼에 있어 미리보기를 표시하지 못할 수 있습니다).'라는 메시지가 표시됩니다. 계속해서 쿼리를 실행하여 데이터를 볼 수는 있습니다.
  1. 쿼리 편집기 창에 다음 쿼리를 입력하거나 복사하여 붙여넣습니다. 다음 쿼리를 사용하여 Dataflow 작업의 출력을 관찰합니다. 실행을 클릭합니다.
SELECT * FROM `demos.average_speeds` ORDER BY timestamp DESC LIMIT 100
  1. 다음 SQL을 실행하여 테이블에 적용된 마지막 업데이트 내용을 찾습니다.
SELECT MAX(timestamp) FROM `demos.average_speeds`
  1. 다음으로는 BigQuery의 시간 이동 기능을 사용하여 시간 단위로 이전 시점의 테이블 상태를 참조해보겠습니다.

아래 쿼리는 10분 전 존재했던 average_speeds 테이블의 행 하위 집합을 반환합니다.

쿼리를 통해 행을 요청했지만 해당 테이블의 지정된 시점에 참조 포인트가 존재하지 않는 경우 다음과 같은 오류 메시지가 표시됩니다.

Invalid snapshot time 1633691170651 for Table PROJECT:DATASET.TABLE__

이 오류가 표시된다면 분 값을 낮춰 시간 이동 범위를 줄여보세요.

SELECT * FROM `demos.average_speeds` FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 10 MINUTE) ORDER BY timestamp DESC LIMIT 100

작업 8. 자동 확장 관찰 및 이해

수신 Pub/Sub 메시지의 백로그를 처리하기 위해 Dataflow가 작업자 수를 조정하는 방법을 관찰합니다.

  1. 콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴(탐색 메뉴 아이콘)에서 Dataflow를 클릭하고 파이프라인 작업을 클릭합니다.

  2. 오른쪽의 작업 측정항목 패널을 살펴본 후 자동 확장 섹션을 검토합니다. Pub/Sub 주제의 메시지를 처리하는 데 현재 얼마나 많은 작업자가 사용되고 있나요?

  3. 기록 더보기를 클릭하고 파이프라인 실행 중 다양한 시점에서 얼마나 많은 작업자가 사용되었는지 검토합니다.

  4. 실습 초반에 시작된 트래픽 센서 시뮬레이터의 데이터를 통해 Pub/Sub 주제로 초당 수백 개의 메시지가 생성됩니다. 이로 인해 Dataflow에서 파이프라인의 시스템 지연을 최적의 수준으로 유지하기 위해 작업자 수를 늘립니다.

  5. 기록 더보기를 클릭합니다. 작업자 풀에서 Dataflow가 작업자 수를 어떻게 변경했는지 확인할 수 있습니다 상태 열에는 변경 이유가 설명되어 있습니다.

Dataflow 작업 세부정보

작업 9. 센서 데이터 시뮬레이션 스크립트 새로고침

참고: 교육 실습 환경에는 할당량 제한이 있습니다. 센서 데이터 시뮬레이션 스크립트를 너무 오래 실행하면 할당량 제한을 초과하게 되므로 세션의 사용자 인증 정보가 일시정지됩니다.
  1. 센서 데이터 스크립트가 실행 중인 training-vm SSH 터미널로 돌아갑니다.

  2. 정보: 게시 중이라는 메시지가 표시되면 스크립트가 아직 실행 중인 것입니다. Ctrl+C를 눌러 중지합니다. 그런 다음 명령어를 실행하여 스크립트를 다시 시작합니다.

cd ~/training-data-analyst/courses/streaming/publish ./send_sensor_data.py --speedFactor=60 --project $DEVSHELL_PROJECT_ID 다음 3~8단계는 Ctrl+C를 사용하여 스크립트를 중지할 수 없는 경우에만 필요합니다. 스크립트가 할당량 제한을 넘긴 경우 'credentials could not be refreshed(사용자 인증 정보를 새로고침할 수 없습니다)'라는 내용의 오류 메시지가 반복적으로 표시되며 Ctrl+C가 작동하지 않습니다. 이 경우 SSH 터미널을 종료하고 아래 3~8단계를 따릅니다.
  1. 새 SSH 터미널을 엽니다. 새 세션에는 새로운 할당량이 적용됩니다.

  2. 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 Compute Engine > VM 인스턴스를 클릭합니다.

  3. training-vm 인스턴스가 있는 줄을 찾습니다.

  4. 맨 오른쪽에 있는 연결에서 SSH를 클릭하여 새 터미널 창을 엽니다.

  5. training-vm SSH 터미널에서 다음을 입력하여 환경 변수를 만듭니다.

source /training/project_env.sh
  1. 다음 명령어를 사용하여 새로운 센서 시뮬레이터를 시작합니다.
cd ~/training-data-analyst/courses/streaming/publish ./send_sensor_data.py --speedFactor=60 --project $DEVSHELL_PROJECT_ID

작업 10. Cloud Monitoring 통합

Cloud Monitoring과 Dataflow가 통합되어 사용자는 Cloud Monitoring 내에서 시스템 지연시간(스트리밍 작업의 경우), 작업 상태(실패, 성공), 요소 개수, 사용자 카운터 등의 Dataflow 작업 측정항목에 액세스할 수 있습니다.

Cloud Monitoring의 통합 기능

  • Dataflow 측정항목 살펴보기: 사용 가능한 Dataflow 파이프라인 측정항목을 살펴보고 차트로 시각화합니다.

몇 가지 일반적인 Dataflow 측정항목은 다음과 같습니다.

측정항목 특징
작업 상태 30초마다와 업데이트 시 enum으로 보고되는 작업 상태(실패, 성공)
경과 시간 30초마다 보고되는 작업 경과 시간(초 단위로 측정됨)
시스템 지연시간 전체 파이프라인의 최대 지연(초 단위로 보고됨)
현재 vCPU 개수 작업에 사용되는 가상 CPU의 현재 개수(값이 변경될 때마다 업데이트됨)
예상 바이트 수 PCollection당 처리되는 바이트 수
  • Monitoring 대시보드에서 Dataflow 측정항목을 차트로 표시: 대시보드를 만들고 Dataflow 측정항목을 시계열 차트로 표시합니다.
  • 알림 구성: 작업 또는 리소스 그룹 수준 측정항목에 대한 임곗값을 정의하고 해당 측정항목이 지정된 값에 도달하면 알림을 받습니다. Monitoring 알림을 통해 긴 스트리밍 시스템 지연이나 작업 실패와 같은 다양한 상태에 대해 알림을 받습니다.
  • 사용자 지정 측정항목 모니터링: Dataflow는 Dataflow 측정항목 외에도 사용자 지정 측정항목(SDK 애그리게이터)을 Monitoring UI에서 Monitoring 커스텀 카운터로 노출하여 차트 및 알림에 사용할 수 있도록 합니다. Dataflow 파이프라인에 정의된 애그리게이터는 Monitoring에 커스텀 측정항목으로 보고됩니다. Dataflow는 사용자 대신 새로운 커스텀 측정항목을 정의하고 약 30초마다 증분 업데이트를 Monitoring에 보고합니다.

작업 11. 측정항목 살펴보기

Cloud Monitoring은 Google Cloud에서 별도로 제공되는 서비스입니다. 따라서 실습 계정에서 서비스를 초기화하려면 몇 가지 설정 단계를 거쳐야 합니다.

모니터링 작업 공간 작성

이제 Qwiklabs GCP 프로젝트와 연결된 모니터링 작업 공간을 설정합니다. 다음 단계는 모니터링 무료 평가판이있는 새 계정을 만듭니다.

  1. Google Cloud Platform 콘솔에서 탐색 메뉴 > 모니터링을 클릭하십시오.

  1. 작업 공간이 프로비저닝 될 때까지 기다리십시오.

모니터링 대시 보드가 열리면 작업 공간이 준비된 것입니다.

Monitoring_Overview.png

  1. 패널 왼쪽에서 측정항목 탐색기를 클릭합니다.

  2. 측정항목 탐색기의 리소스 및 측정항목에서 측정항목 선택을 클릭합니다.

  3. Dataflow 작업 > 작업을 선택합니다. 사용할 수 있는 Dataflow 관련 측정항목 목록이 표시됩니다. 데이터 워터마크 지연시간을 선택하고 적용을 클릭합니다.

  4. Cloud Monitoring에서 페이지 오른쪽에 그래프를 그립니다.

  5. 측정항목에서 재설정을 클릭하여 데이터 워터마크 지연시간 측정항목을 삭제합니다. 새로운 Dataflow 측정항목인 시스템 지연시간을 선택합니다.

참고: Dataflow에서 Monitoring에 제공하는 측정항목은 Google Cloud 측정항목 문서에 나와 있습니다. 페이지에서 Dataflow를 검색하면 됩니다. 앞서 살펴본 측정항목은 파이프라인 성능에 관한 유용한 지표입니다.

데이터 워터마크 지연시간: 파이프라인에서 완전히 처리된 가장 최근 데이터 항목의 기간(이벤트 타임스탬프 이후 경과된 시간)입니다.

시스템 지연시간: 데이터 항목이 현재 처리를 기다리고 있는 최대 시간(초)입니다.

작업 12. 알림 만들기

특정 측정항목이 지정된 임곗값을 초과할 때(예: 이 실습용 스트리밍 파이프라인의 시스템 지연이 사전 정의된 값을 초과할 때) 알림을 받으려면 Monitoring의 알림 메커니즘을 사용하면 됩니다.

알림 만들기

  1. Cloud Monitoring에서 알림을 클릭합니다.

  2. + 정책 만들기를 클릭합니다.

  3. 측정항목 선택 드롭다운을 클릭합니다. 활성 리소스 및 측정항목만 표시를 사용 중지로 전환합니다.

  4. 필터에 리소스 및 측정항목 이름으로 Dataflow 작업을 입력하고 Dataflow 작업 > 작업을 클릭합니다. 시스템 지연시간을 선택하고 적용을 클릭합니다.

  5. 트리거 구성을 클릭합니다.

  6. 임곗값 위치임곗값 초과로, 임곗값5로, 고급 옵션 > 재테스트 기간1분으로 설정합니다. 다음을 클릭합니다.

알림 추가하기

  1. 알림 채널 옆에 있는 드롭다운 화살표를 클릭한 다음 알림 채널 관리를 클릭합니다.

알림 채널 페이지가 새 탭에서 열립니다.

  1. 페이지를 아래로 스크롤하고 이메일에 대해 새로 추가를 클릭합니다.

  2. 이메일 채널 만들기 대화상자에서 이메일 주소 필드에 실습 사용자 이름을 입력하고 표시 이름을 추가합니다.

참고: 본인의 이메일 주소를 입력하면 프로젝트의 모든 리소스가 삭제될 때까지 알림을 받게 됩니다.
  1. 저장을 클릭합니다.

  2. 이전의 알림 정책 만들기 탭으로 돌아갑니다.

  3. 알림 채널을 다시 클릭한 다음 새로고침 아이콘을 클릭하여 이전 단계에서 지정한 표시 이름을 가져옵니다.

  4. 이제 표시 이름을 선택하고 확인을 클릭합니다.

  5. 알림 이름MyAlertPolicy로 설정합니다.

  6. 다음을 클릭합니다.

  7. 알림을 검토한 후 정책 만들기를 클릭합니다.

이벤트 보기

  1. Cloud Monitoring 탭에서 알림 > 정책을 클릭합니다.

  2. 측정항목 임곗값 조건에 의해 알림이 트리거될 때마다 Monitoring에서 이슈 및 이에 상응하는 이벤트가 생성됩니다. 이메일, SMS, 무선 호출기 등의 알림 도구에서 알림 메커니즘을 지정한 경우에도 알림이 발송됩니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 알림 만들기

작업 13. 대시보드 설정

Cloud Monitoring 대시보드를 사용하여 관련성이 가장 높은 Dataflow 차트가 포함된 대시보드를 쉽게 빌드할 수 있습니다.

  1. 왼쪽 창에서 대시보드를 클릭합니다.

  2. + 대시보드 만들기를 클릭합니다.

  3. 새 대시보드 이름My Dashboard를 입력합니다.

  4. 위젯 추가, 선 차트를 차례로 클릭합니다.

  5. 리소스 및 측정항목 아래의 dropdown 상자를 클릭합니다.

  6. Dataflow 작업 > 작업 > 시스템 지연시간을 선택하고 적용을 클릭합니다.

  7. 필터 패널에서 + 필터 추가를 클릭합니다.

  8. Label 필드에서 project_id를 선택한 다음 Value 필드에서 을(를) 선택하거나 입력합니다.

  9. 적용을 클릭합니다.

예:

대시보드 예시 스크린샷

원하는 경우 주제에 대한 Pub/Sub 게시율이나 구독 백로그(Dataflow 자동 확장 처리에 보내는 신호) 등 더 많은 차트를 대시보드에 추가할 수 있습니다.

실습 종료하기

실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.

실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.

별점의 의미는 다음과 같습니다.

  • 별표 1개 = 매우 불만족
  • 별표 2개 = 불만족
  • 별표 3개 = 중간
  • 별표 4개 = 만족
  • 별표 5개 = 매우 만족

의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.

의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.

Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.