arrow_back

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

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

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

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

개요

이 실습에서는 Dataflow를 사용하여 Google Cloud Pub/Sub를 통해 제공되는 시뮬레이션된 트래픽 센서 데이터로부터 트래픽 이벤트를 수집하여 Bigtable 테이블에 씁니다.

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

목표

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

  • Dataflow 파이프라인을 실행하여 Pub/Sub에서 읽고 Bigtable에 쓰기
  • HBase 셸을 열어 Bigtable 데이터베이스 쿼리

설정

각 실습에서는 정해진 기간 동안 새 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에서 센서 시뮬레이터를 실행해야 합니다. 이 환경에는 파일이 여러 개 포함되어 있으며, 환경의 일부를 설정해야 합니다.

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

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

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

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

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

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

  • training-vm이 백그라운드에서 몇 가지 소프트웨어를 설치합니다. 새 디렉터리의 내용을 검토하여 설정이 완료되었는지 확인합니다.
ls /training

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

참고: 백그라운드 작업이 모두 완료되기까지 2~3분 정도 걸립니다. student-04-2324ale56789@training-vm:~$ ls /training bq-magic.sh project_env.sh sensor_magic.sh student-04-2324ale56789@training-vm:~$

코드 저장소 다운로드하기

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

환경 변수 설정하기

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

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

HBase 빠른 시작 파일 준비하기

  • training-vm SSH 터미널에서 스크립트를 실행하여 빠른 시작 파일을 다운로드하고 압축을 해제합니다(이 파일은 나중에 HBase 셸 실행에 사용됨).
cd ~/training-data-analyst/courses/streaming/process/sandiego ./install_quickstart.sh

'내 진행 상황 확인하기'를 클릭하여 목표를 확인합니다. training_vm 홈 디렉터리에 샘플 파일 복사하기

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

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

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

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

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

새 터미널 세션에는 필수 환경 변수가 없습니다. 다음 단계를 완료하여 이 변수를 설정합니다.

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

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

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

  1. 적절한 API와 권한이 설정되었는지 확인하려면 Cloud Shell에서 다음 코드 블록을 실행합니다.
gcloud services disable dataflow.googleapis.com --force gcloud services enable dataflow.googleapis.com
  1. 두 번째 training-vm SSH 터미널에서 이 실습에 해당하는 디렉터리로 이동합니다. Cloud Shell에서 또는 nano를 사용하여 스크립트를 검토합니다. 다음 코드를 변경하지 마세요.
cd ~/training-data-analyst/courses/streaming/process/sandiego nano run_oncloud.sh

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

이 스크립트에는 project id, bucket name, classname이라는 세 가지 인수가 필요하며, options라는 네 번째 인수가 필요할 수도 있습니다. 이 실습 부분에서는 파이프라인이 Cloud Bigtable에 쓰도록 지시하는 --bigtable 옵션을 사용하겠습니다.

  1. Ctrl+X를 눌러 종료합니다.

  2. 다음 명령어를 실행하여 Bigtable 인스턴스를 만듭니다.

cd ~/training-data-analyst/courses/streaming/process/sandiego export ZONE={{{project_0.startup_script.gcp_zone|Lab GCP Zone}}} ./create_cbt.sh
  1. Dataflow 파이프라인에 대해 다음 명령어를 실행하여 Pub/Sub에서 읽고 Cloud Bigtable에 씁니다.
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 CurrentConditions --bigtable

실행에 성공하면 다음과 유사한 결과가 출력됩니다.

[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 47.582 s [INFO] Finished at: 2018-06-08T21:25:32+00:00 [INFO] Final Memory: 58M/213M [INFO] ------------------------------------------------------------------------

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

작업 4: 파이프라인 살펴보기

  1. 콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴(탐색 메뉴 아이콘)에서 Dataflow를 클릭하고 새 파이프라인 작업을 클릭합니다. 파이프라인 작업이 나열되어 있고 오류 없이 실행되는지 확인합니다.

  2. 파이프라인 그래프에서 write:cbt 단계를 찾고 오른쪽에 있는 아래쪽 화살표를 클릭하여 작성기가 작동하는 것을 확인합니다. 해당 작성기를 클릭합니다. 단계 요약에서 Bigtable 옵션을 검토합니다.

작업 5. Bigtable 데이터 쿼리

  1. 두 번째 training-vm SSH 터미널에서 quickstart.sh 스크립트를 실행하여 HBase 셸을 실행합니다.
cd ~/training-data-analyst/courses/streaming/process/sandiego/quickstart ./quickstart.sh
  1. 스크립트가 완료되면 다음과 같은 HBase 셸 프롬프트가 표시됩니다.
hbase(main):001:0>
  1. HBase 셸 프롬프트에서 다음 쿼리를 입력하여 파이프라인으로 채운 Bigtable 테이블에서 2개의 행을 검색합니다. HBase 쿼리를 통해 결과를 반환하는 데 몇 분 정도 걸릴 수 있습니다.

반환된 행 목록이 표시될 때까지 'scan' 명령어를 반복합니다.

scan 'current_conditions', {'LIMIT' => 2}
  1. 출력을 검토합니다. 각 행이 열, 타임스탬프, 값 조합으로 구분되어 있는 것을 볼 수 있습니다.

  2. 다른 쿼리를 실행합니다. 이번에는 lane: speed 열만 살펴봅니다. 10개 행으로 제한하고 스캔할 시작 행과 끝 행의 rowid 패턴을 지정합니다.

scan 'current_conditions', {'LIMIT' => 10, STARTROW => '15#S#1', ENDROW => '15#S#999', COLUMN => 'lane:speed'}
  1. 출력을 검토합니다. 열, 타임스탬프, 값 조합이 10개 표시되며 모두 15번 고속도로에 해당하는 것을 볼 수 있습니다. 열이 lane:speed로 제한되어 있는 것도 볼 수 있습니다.

  2. 구문에 익숙하다면 다른 쿼리도 자유롭게 실행해 봅니다. 만족스러우면 quit을 입력하여 셸을 종료합니다.

quit

작업 6. 삭제

  1. 두 번째 training-vm SSH 터미널에서 다음 스크립트를 실행하여 Bigtable 인스턴스를 삭제합니다.
cd ~/training-data-analyst/courses/streaming/process/sandiego ./delete_cbt.sh

확인하라는 메시지가 나타나면 Y를 입력합니다.

  1. Cloud 콘솔의 Dataflow 페이지에서 파이프라인 작업 이름을 클릭합니다.

  2. 상단 메뉴 바에서 중지를 클릭합니다. 취소를 선택한 후 작업 중지를 클릭합니다.

  3. 게시자가 있는 첫 번째 SSH 터미널로 돌아가고 Ctrl+C를 입력하여 중지합니다.

  4. BigQuery 콘솔에서 demos 데이터 세트 옆에 있는 점 세 개를 클릭한 후 삭제를 클릭합니다.

  5. delete를 입력한 후 삭제를 클릭합니다.

실습 종료하기

실습을 완료하면 실습 종료를 클릭합니다. 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개만 가능

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

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

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