시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Load the data
/ 20
Setting up Pub/Sub Topic
/ 20
Add a Pub/Sub subscription
/ 20
Add Cloud Data Fusion API Service Agent role to service account
/ 20
Build and execute runtime pipeline
/ 20
일괄 파이프라인 외에도 Data Fusion을 사용하면 이벤트가 생성될 때 이를 처리할 수 있는 실시간 파이프라인을 만들 수 있습니다. 현재 실시간 파이프라인은 Cloud Dataproc 클러스터에서 Apache Spark 스트리밍을 사용하여 실행됩니다. 이 실습에서는 Data Fusion을 사용하여 스트리밍 파이프라인을 빌드하는 방법을 배웁니다.
Cloud Pub/Sub 주제에서 읽고 이벤트를 처리하며 일부 변환을 실행하고 출력을 BigQuery에 쓰는 파이프라인을 만들게 됩니다.
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
시크릿 창을 사용하여 Google Skills에 로그인합니다.
실습 사용 가능 시간(예: 02:00:00)을 참고하여 해당 시간 내에 완료합니다.
일시중지 기능은 없습니다. 필요한 경우 다시 시작할 수 있지만 처음부터 시작해야 합니다.
준비가 되면 실습 시작을 클릭합니다.
실습 사용자 인증 정보(사용자 이름 및 비밀번호)를 기록해 두세요. Google Cloud 콘솔에 로그인할 때 이 정보를 사용해야 합니다.
Google 콘솔 열기를 클릭합니다.
다른 계정 사용을 클릭한 다음, 안내 메시지에 이 실습에 대한 사용자 인증 정보를 복사하여 붙여넣습니다.
다른 사용자 인증 정보를 사용하는 경우 오류가 발생하거나 요금이 부과됩니다.
약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
임시 계정이므로 이 실습이 진행되는 동안만 계정이 유지됩니다.
Cloud Shell은 여러 개발 도구가 포함된 가상 머신입니다. 5GB의 영구적인 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다. gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 탭 자동 완성을 지원합니다.
Google Cloud Console의 탐색창에서 Cloud Shell 활성화()를 클릭합니다.
계속을 클릭합니다.
환경을 프로비저닝하고 연결하는 데는 몇 분 정도 소요됩니다. 연결되면 사용자 인증도 처리되어 프로젝트가 PROJECT_ID로 설정됩니다. 예를 들면 다음과 같습니다.
활성 계정 이름을 나열합니다.
(출력)
(출력 예시)
프로젝트 ID를 나열합니다.
(출력)
(출력 예시)
Google Cloud에서 작업을 시작하기 전에 프로젝트가 Identity and Access Management(IAM) 내에서 올바른 권한을 보유하고 있는지 확인해야 합니다.
Google Cloud 콘솔의 탐색 메뉴()에서 IAM 및 관리자 > IAM을 클릭합니다.
기본 컴퓨팅 서비스 계정 {project-number}-compute@developer.gserviceaccount.com이 있고 editor 역할이 할당되어 있는지 확인하세요. 계정 프리픽스는 프로젝트 번호이며, 이 번호는 탐색 메뉴 > Cloud 개요에서 확인할 수 있습니다.
계정이 IAM에 없거나 editor 역할이 없는 경우 아래의 단계에 따라 필요한 역할을 할당합니다.
Google Cloud 콘솔의 탐색 메뉴에서 Cloud 개요를 클릭합니다.
프로젝트 정보 카드에서 프로젝트 번호를 복사합니다.
탐색 메뉴에서 IAM 및 관리자 > IAM을 클릭합니다.
IAM 페이지 상단에서 추가를 클릭합니다.
새 주 구성원 필드에 다음을 입력합니다.
{project-number}는 프로젝트 번호로 바꿉니다.
역할 선택에서 기본 (또는 프로젝트) > 편집자를 선택합니다.
저장을 클릭합니다.
필요한 API에 액세스할 수 있도록 Dataflow API에 대한 연결을 다시 시작합니다.
Cloud 콘솔의 상단 검색창에 'Dataflow API'를 입력합니다. Dataflow API에 대한 검색 결과를 클릭합니다.
관리를 클릭합니다.
API 사용 중지를 클릭합니다.
확인을 요청하는 메시지가 표시되면 사용 중지를 클릭합니다.
또한 Cloud Storage 버킷에 동일한 샘플 트윗 파일을 스테이징해야 합니다. 이 실습의 마지막 부분에서는 버킷에서 Pub/Sub 주제로 데이터를 스트리밍합니다.
생성된 버킷의 이름은 프로젝트 ID와 동일합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
Pub/Sub를 사용하려면 데이터를 포함할 주제를 만들고 이 주제에 게시된 데이터에 액세스할 수 있는 구독을 만들어야 합니다.
Cloud 콘솔의 탐색 메뉴에서 모든 제품 보기를 클릭하고 분석 섹션에서 Pub/Sub를 클릭한 다음 주제를 선택합니다.
주제 만들기를 클릭합니다.
cdf_lab_topic으로 지정한 다음 만들기를 클릭합니다.내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
계속해서 주제 페이지에서 진행합니다. 이제 주제에 액세스할 수 있도록 구독을 만들어 보겠습니다.
cdf_lab_subscription 등 구독의 이름을 입력하고 '전송 유형'을 가져오기로 설정한 후 만들기를 클릭합니다.내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이제 다음 단계를 사용하여 인스턴스와 연결된 서비스 계정에 권한을 부여합니다.
Google Cloud 콘솔에서 IAM 및 관리자 > IAM으로 이동합니다.
Compute Engine 기본 서비스 계정 {project-number}-compute@developer.gserviceaccount.com이 있는지 확인하고 서비스 계정을 클립보드에 복사합니다.
IAM 권한 페이지에서 +액세스 권한 부여를 클릭합니다.
새 주 구성원 필드에 서비스 계정을 붙여넣습니다.
역할 선택 필드를 클릭하고 Cloud Data Fusion API 서비스 에이전트를 입력한 다음 선택합니다.
다른 역할 추가를 클릭합니다.
Dataproc 관리자 역할을 추가합니다.
저장을 클릭합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
콘솔의 탐색 메뉴에서 IAM 및 관리자 > IAM을 클릭합니다.
Google 제공 역할 부여 포함 체크박스를 선택합니다.
목록을 아래로 스크롤하여 service-{project-number}@gcp-sa-datafusion.iam.gserviceaccount.com과 같은 Google 관리 Cloud Data Fusion 서비스 계정을 찾은 후 서비스 계정 이름을 클립보드에 복사합니다.
다음으로 IAM 및 관리자 > 서비스 계정으로 이동합니다.
{project-number}-compute@developer.gserviceaccount.com과 같은 기본 Compute Engine 계정을 클릭하고 상단 탐색 메뉴에서 액세스 권한이 있는 주 구성원 탭을 선택합니다.
액세스 권한 부여 버튼을 클릭합니다.
새 주 구성원 필드에 앞서 복사한 서비스 계정을 붙여넣습니다.
역할 드롭다운 메뉴에서 서비스 계정 사용자를 선택합니다.
저장을 클릭합니다.
Cloud Data Fusion을 사용할 때는 Cloud Console과 별도의 Cloud Data Fusion UI를 모두 사용합니다. Cloud Console에서는 Cloud Console 프로젝트를 만들고, Cloud Data Fusion 인스턴스를 만들고 삭제할 수 있습니다. Cloud Data Fusion UI에서는 파이프라인 스튜디오 또는 Wrangler와 같은 다양한 페이지를 통해 Cloud Data Fusion 기능을 사용할 수 있습니다.
Cloud Data Fusion UI를 탐색하려면 다음 단계를 따르세요.
Cloud Data Fusion 컨트롤 센터에서 탐색 메뉴를 사용하여 왼쪽 메뉴를 표시한 다음 파이프라인 > 스튜디오를 선택합니다.
왼쪽 상단에서 드롭다운 메뉴를 사용하여 데이터 파이프라인 - 실시간을 선택합니다.
데이터로 작업할 때는 변환의 시작점으로 사용할 수 있도록 원시 데이터가 어떤 모습인지 확인할 수 있으면 편리합니다. 이를 위해 Wrangler를 사용하여 데이터를 준비하고 정리합니다. 이러한 데이터 중심 접근방식을 통해 변환을 빠르게 시각화할 수 있으며 실시간 피드백을 통해 올바른 방향으로 진행되고 있는지 확인할 수 있습니다.
플러그인 팔레트의 변환 섹션에서 Wrangler를 선택합니다. Wrangler 노드가 캔버스에 표시됩니다. 속성 버튼을 클릭하여 엽니다.
지시어 섹션 아래의 WRANGLE 버튼을 클릭합니다.
로드가 완료되면 왼쪽 메뉴에서 업로드를 클릭합니다. 다음으로 업로드 아이콘을 클릭하여 이전에 컴퓨터에 다운로드한 샘플 트윗 파일을 업로드합니다.
첫 번째 작업은 JSON 데이터를 행과 열로 분할된 테이블 형식으로 파싱하는 것입니다. 이렇게 하려면 첫 번째 열(body) 제목에서 드롭다운 아이콘을 선택한 다음 파싱 메뉴 항목을 선택하고, 하위 메뉴에서 JSON을 선택합니다. 팝업에서 깊이를 1로 설정한 다음 적용을 클릭합니다.
이전 단계를 반복하여 추가 변환을 위한 보다 의미 있는 데이터 구조를 확인합니다. body 열 드롭다운 아이콘을 클릭한 다음 파싱 > JSON을 선택하고 깊이를 1로 설정한 다음 적용을 클릭합니다.
UI를 사용하는 것 외에도 Wrangler 지시어 명령줄 상자에 변환 단계를 작성할 수 있습니다. 이 상자는 Wrangler UI의 하단에 표시됩니다(녹색 $ 프롬프트가 있는 명령어 콘솔을 찾습니다). 다음 단계에서 명령어 콘솔을 사용하여 일련의 변환 단계를 붙여넣습니다.
아래의 변환 단계를 모두 복사하여 Wrangler 지시어 명령줄 상자에 붙여넣어 추가합니다.
보시다시피 파이프라인 스튜디오로 돌아왔으며, 캔버스에 단일 노드가 배치되어 있습니다. 이 노드는 Wrangler에서 정의한 변환을 나타냅니다. 그러나 위에서 설명한 것처럼 사용자 노트북의 데이터 대표 샘플에 이러한 변환을 적용했으며 실제 프로덕션 위치의 데이터에는 적용하지 않았기 때문에 이 파이프라인에 연결된 소스가 없습니다.
다음 단계에서는 데이터가 실제로 위치할 곳을 지정해 보겠습니다.
플러그인 팔레트의 소스 섹션에서 PubSub를 선택합니다. PubSub 소스 노드가 캔버스에 표시됩니다. 속성 버튼을 클릭하여 엽니다.
아래와 같이 PubSub 소스의 다양한 속성을 지정합니다.
a. 참조 이름에 Twitter_Input_Stream을 입력합니다.
b. 구독에서 cdf_lab_subscription(이전에 만든 PubSub 구독의 이름)을 입력합니다.
c. 검증을 클릭하여 오류가 없는지 확인합니다.
d. 오른쪽 상단에서 X를 클릭하여 속성 상자를 닫습니다.
이전에 Wrangler에서 데이터 샘플을 사용했으므로 소스 열이 Wrangler에 body로 표시되었습니다. 그러나 PubSub 소스는 message라는 이름의 필드에서 이를 내보냅니다. 다음 단계에서 이 불일치를 수정합니다.
오른쪽 상단에서 X를 클릭하여 속성 상자를 닫습니다.
이제 소스와 변환을 파이프라인에 연결했으므로 싱크를 추가하여 파이프라인을 완성합니다. 왼쪽 측면 패널의 싱크 섹션에서 BigQuery를 선택합니다. BigQuery 싱크 노드가 캔버스에 표시됩니다.
Wrangler 노드에서 BigQuery 노드로 화살표를 드래그하여 Wrangler 노드를 BigQuery 노드에 연결합니다. 다음으로 BigQuery 노드 속성을 구성합니다.
BigQuery 노드 위에 마우스를 가져간 후 속성을 클릭합니다.
a. 참조 이름에 realtime_pipeline을 입력합니다.
b. 데이터 세트에 realtime을 입력합니다.
c. 테이블에 tweets를 입력합니다.
d. 검증을 클릭하여 오류가 없는지 확인합니다.
오른쪽 상단에서 X를 클릭하여 속성 상자를 닫습니다.
파이프라인 이름 지정을 클릭하고 Realtime_Pipeline을 이름으로 추가한 다음 저장을 클릭합니다.
배포 아이콘을 클릭한 다음 파이프라인을 시작합니다.
배포가 완료되면 실행을 클릭합니다. 파이프라인 상태가 실행 중으로 변경될 때까지 기다립니다. 몇 분 정도 걸릴 수 있습니다.
Dataflow 템플릿을 사용해 이벤트를 구독에 일괄 로드하여 이벤트를 전송합니다.
이제 템플릿을 기반으로 Dataflow 작업을 만들어 트윗 파일의 여러 메시지를 처리하고 앞서 만든 pubsub 주제에 게시합니다. Dataflow 작업 만들기 페이지에서 지속적으로 데이터 처리(스트리밍) 템플릿 아래의 Cloud Storage의 텍스트 파일을 Pub/Sub로를 사용합니다.
Cloud 콘솔로 돌아가서 탐색 메뉴로 이동하고 모든 제품 보기를 클릭한 후 분석 섹션에서 Dataflow를 클릭합니다.
상단 메뉴 바에서 템플릿에서 작업 만들기를 클릭합니다.
Cloud Dataflow 작업의 작업 이름으로 streaming-pipeline을 입력합니다.
Cloud Dataflow 템플릿에서 Cloud Storage의 텍스트 파일을 Pub/Sub로 템플릿을 선택합니다.
Cloud Storage 입력 파일 아래에 gs://<YOUR-BUCKET-NAME>/<FILE-NAME>을 입력합니다.
<YOUR-BUCKET-NAME>을 버킷 이름으로 바꾸고 <FILE-NAME>을 앞서 컴퓨터에 다운로드한 파일 이름으로 바꿉니다.
예: gs://qwiklabs-gcp-01-dfdf34926367/pubnub_tweets_2019-06-09-05-50_part-r-00000
projects/<PROJECT-ID>/topics/cdf_lab_topic을 입력합니다.PROJECT-ID를 실제 프로젝트 ID로 바꿔야 합니다.
<YOUR-BUCKET-NAME>/tmp/를 입력합니다.<YOUR-BUCKET-NAME>을 버킷 이름으로 바꿔야 합니다.
작업 실행 버튼을 클릭합니다.
Dataflow 작업을 실행하고 몇 분 정도 기다립니다. pubsub 구독에서 메시지를 확인하고 실시간 CDF 파이프라인을 통해 처리되는 것을 볼 수 있습니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이벤트가 Pub/Sub 주제에 로드되는 즉시 파이프라인에서 이벤트를 사용하기 시작합니다. 각 노드의 측정항목이 업데이트되는지 확인하세요.
Data Fusion 콘솔에서 파이프라인 측정항목이 변경될 때까지 기다립니다.
이 실습에서는 Cloud Pub/Sub에서 스트리밍 수신 메시지를 읽고 데이터를 처리하여 BigQuery에 기록하는 Data Fusion의 실시간 파이프라인을 설정하는 방법을 배웠습니다.
설명서 최종 업데이트: 2025년 2월 6일
실습 최종 테스트: 2025년 2월 6일
Copyright 2026 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.