실습 설정 안내 및 요구사항
계정과 진행 상황을 보호하세요. 이 실습을 실행하려면 항상 시크릿 브라우저 창과 실습 사용자 인증 정보를 사용하세요.

Dataflow를 사용한 서버리스 데이터 분석: 부 입력(Python)

실습 1시간 30분 universal_currency_alt 크레딧 5개 show_chart 고급
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
이 콘텐츠는 아직 휴대기기에 최적화되지 않음
최상의 경험을 위해 데스크톱 컴퓨터에서 이메일로 전송된 링크를 사용하여 방문하세요.

개요

이 실습에서는 BigQuery에 데이터를 로드하고 복잡한 쿼리를 실행하는 방법을 학습합니다. 그런 다음 Map 및 Reduce 작업과 부 입력 사용, BigQuery 스트리밍이 가능한 Dataflow 파이프라인을 실행합니다.

목표

이 실습에서는 BigQuery를 Dataflow의 데이터 소스로 사용하는 방법과 파이프라인의 결과를 다른 파이프라인의 부 입력으로 사용하는 방법을 학습합니다.

  • BigQuery에서 Dataflow로 데이터 읽어오기
  • 파이프라인의 출력을 다른 파이프라인의 부 입력으로 사용하기

설정

각 실습에서는 정해진 기간 동안 새 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. 준비

Dataflow 개발자 역할 할당하기

계정에 Dataflow 개발자 역할이 없다면 아래 단계에 따라 필요한 역할을 할당하세요.

  1. 탐색 메뉴에서 IAM 및 관리자 > IAM을 클릭합니다.

  2. 기본 Compute 서비스 계정 {project-number}-compute@developer.gserviceaccount.com을 선택합니다.

  3. 수정 옵션(오른쪽 끝에 있는 연필 아이콘)을 선택합니다.

  4. 다른 역할 추가를 클릭합니다.

  5. 역할 선택 상자 안쪽을 클릭합니다. 입력하여 필터링 선택기에서 Dataflow 개발자를 입력하여 선택합니다.

  6. 저장을 클릭합니다.

권한 수정 페이지

Dataflow API가 사용 설정되어 있는지 확인하기

  1. Google Cloud 콘솔 제목 표시줄에서 Cloud Shell 활성화를 클릭합니다. 메시지가 표시되면 계속을 클릭합니다.

  2. 다음 명령어를 실행하여 Dataflow API가 프로젝트에 확실하게 사용 설정되었는지 확인합니다. 메시지가 표시되면 승인을 클릭합니다.

gcloud services disable dataflow.googleapis.com gcloud services enable dataflow.googleapis.com

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

선별된 학습용 VM에서 모든 코드를 실행합니다.

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

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

  3. 맨 오른쪽에 있는 연결에서 SSH를 클릭하여 터미널 창을 엽니다. 메시지가 표시되면 승인을 클릭합니다.

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

코드 저장소 다운로드

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

Cloud Storage 버킷 만들기

다음 안내에 따라 버킷을 만듭니다.

  1. 콘솔의 탐색 메뉴에서 Cloud Storage > 버킷을 클릭합니다.
  2. + 만들기를 클릭합니다.
  3. 다음을 지정하고 나머지 설정은 기본값으로 둡니다.
속성 값(지정된 대로 값 입력 또는 옵션 선택)
이름
위치 유형 > 리전
  1. 만들기를 클릭합니다.

  2. 공개 액세스가 차단됨이라는 메시지가 표시되면 이 버킷에 공개 액세스 방지 적용을 선택하고 확인을 클릭합니다.

  3. training-vm SSH 터미널에서 다음을 입력하여 3개의 환경 변수를 만듭니다. 하나의 이름은 'BUCKET', 다른 하나의 이름은 'PROJECT', 마지막 하나의 이름은 'REGION'으로 지정합니다. 각 변수가 echo 명령어와 함께 있는지 확인합니다.

BUCKET="{{{project_0.project_id|project_place_holder_text}}}" echo $BUCKET PROJECT="{{{project_0.project_id|project_place_holder_text}}}" echo $PROJECT REGION="{{{project_0.startup_script.gcp_region|region_place_holder_text}}}" echo $REGION

작업 2. BigQuery 쿼리 사용해 보기

  1. 콘솔의 탐색 메뉴(탐색 메뉴 아이콘)에서 BigQuery를 클릭합니다.
  2. 메시지가 표시되면 완료를 클릭합니다.
  3. '+'(SQL 쿼리)를 클릭하고 다음 쿼리를 입력합니다.
SELECT content FROM `cloud-training-demos.github_repos.contents_java` LIMIT 10
  1. 실행을 클릭합니다.

무엇이 반환되나요?

BigQuery 테이블 cloud-training-demos.github_repos.contents_java에는 2016년 GitHub에 있는 모든 Java 파일의 콘텐츠와 일부 메타데이터가 포함되어 있습니다.

  1. 이 테이블의 Java 파일 수를 확인하려면 다음 쿼리를 입력하고 실행을 클릭합니다.
SELECT COUNT(*) FROM `cloud-training-demos.github_repos.contents_java`

이 데이터 세트에 몇 개의 파일이 있나요?

이 데이터 세트를 로컬에서 처리해야 하나요, 아니면 클라우드에서 처리해야 하나요?

작업 3. 파이프라인 코드 살펴보기

  1. training-vm SSH 터미널로 돌아가 /training-data-analyst/courses/data_analysis/lab2/python 디렉터리로 이동하여 JavaProjectsThatNeedHelp.py 파일을 확인합니다.

Nano를 사용해 파일을 확인합니다. 코드를 변경하지 마세요. Ctrl+X를 눌러 Nano를 종료합니다.

cd ~/training-data-analyst/courses/data_analysis/lab2/python nano JavaProjectsThatNeedHelp.py

코드를 읽을 때 이 다이어그램을 참조하세요. 파이프라인은 다음과 같습니다.

파이프라인 다이어그램

  1. 다음 질문에 답변합니다.
  • 맨 위에 있는 클래스 문서로 미루어 이 파이프라인의 목적은 무엇인가요?
  • 어디에서 콘텐츠를 가져오나요?
  • 파이프라인의 왼쪽은 어떤 역할을 하나요?
  • 파이프라인의 오른쪽은 어떤 역할을 하나요?
  • ToLines는 어떤 역할을 하나요? (힌트: BigQuery 결과의 콘텐츠 필드 참고)
  • ReadFromBQ의 결과가 다른 단계에 직접 전달되는 대신 명명된 PCollection에 저장되는 이유는 무엇인가요?
  • ReadFromBQ에서 생성되는 PCollection에 대해 수행되는 두 가지 작업은 무엇인가요?
  • 파일의 콘텐츠에서 서로 다른 줄에 3건의 FIXME 및 2건의 TODO가 있는 경우 얼마나 많은 도움 요청이 이에 연결되나요?
  • 파일이 com.google.devtools.build 패키지에 있는 경우 이에 연결되는 패키지는 무엇인가요?
  • popular_packages와 help_packages는 모두 명명된 PCollection이며 파이프라인의 Scores(부 입력) 단계에서 사용됩니다. 어떤 것이 주 입력이고, 어떤 것이 부 입력인가요?
  • Scores 단계에서 사용되는 메서드는 무엇인가요?
  • Scores 단계에서 변환되는 부 입력은 어떤 Python 데이터 유형인가요?
참고: 이 프로그램의 Java 버전은 Python 버전과 약간 다릅니다. Java SDK는 AsMap을 지원하고, Python SDK는 지원하지 않습니다. 대신 AsDict를 지원합니다. Java에서 PCollection은 사용되기 전에 준비 단계에서 뷰로 변환됩니다. Python에서는 PCollection이 사용되는 단계에서 변환이 일어납니다.

작업 4. 파이프라인 실행

  1. 프로그램을 사용하려면 BUCKET, PROJECT, REGION 값을 입력해야 하며 --DirectRunner를 사용하여 로컬에서 파이프라인을 실행할지, 아니면 --DataFlowRunner를 사용하여 클라우드에서 실행할지 정해야 합니다.

  2. training-vm SSH 터미널에 다음을 입력하여 파이프라인을 로컬에서 실행합니다.

python3 JavaProjectsThatNeedHelp.py --bucket $BUCKET --project $PROJECT --region $REGION --DirectRunner 참고: 'BeamDeprecationWarning'과 같은 경고가 표시될 경우 무시하고 계속 진행하세요.
  1. 파이프라인의 실행이 완료되면 탐색 메뉴(탐색 메뉴 아이콘)에서 Cloud Storage > 버킷을 클릭한 후 내 버킷을 클릭합니다. 결과는 javahelp 폴더에서 확인할 수 있습니다. Result 객체를 클릭하여 출력을 검토합니다.

  2. training-vm SSH 터미널에 다음을 입력하여 파이프라인을 클라우드에서 실행합니다.

python3 JavaProjectsThatNeedHelp.py --bucket $BUCKET --project $PROJECT --region $REGION --DataFlowRunner 참고: 'BeamDeprecationWarning'과 같은 경고가 표시될 경우 무시하고 계속 진행하세요.
  1. 콘솔의 브라우저 탭으로 돌아갑니다. 탐색 메뉴(탐색 메뉴 아이콘)에서 모든 제품 보기를 클릭하고 '분석' 섹션에서 Dataflow를 선택합니다.

  2. 작업을 클릭하여 진행 상황을 모니터링합니다.

  3. 파이프라인의 실행이 완료되면 탐색 메뉴(탐색 메뉴 아이콘)에서 Cloud Storage > 버킷을 클릭한 후 내 버킷을 클릭합니다. 결과는 javahelp 폴더에서 확인할 수 있습니다. Result 객체를 클릭하여 출력을 검토합니다. 파일 이름은 동일하지만 파일 생성 시간이 최근 시간임을 알 수 있습니다.

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

실습 종료하기

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

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

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

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

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

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

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

시작하기 전에

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

시크릿 브라우징 사용

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

콘솔에 로그인

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

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

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

감사합니다

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

한 번에 실습 1개만 가능

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

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

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