로드 중...
검색 결과가 없습니다.

Google Cloud 콘솔에서 기술 적용

05

Building Batch Data Pipelines on Google Cloud - 한국어

700개 이상의 실습 및 과정 이용하기

Cloud Data Fusion 2.5를 사용한 파이프라인 그래프 빌드 및 실행

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

개요

이 튜토리얼에서는 Cloud Data Fusion의 Wrangler 및 데이터 파이프라인 기능을 사용하여 택시 주행 데이터를 추가 분석용으로 정리, 변환, 처리하는 방법을 설명합니다.

학습 내용

이 실습에서 학습할 내용은 다음과 같습니다.

  • Cloud Data Fusion을 2개의 데이터 소스에 연결
  • 기본 변환 적용
  • 2개의 데이터 소스 조인
  • 싱크에 데이터 쓰기

소개

대부분의 경우 분석가가 유용한 정보를 확보하려면 여러 단계의 사전 처리 과정을 거친 데이터를 활용해야 합니다. 이러한 사전 처리 과정에는 예컨대 데이터 유형 조정, 이상치 삭제 또는 모호한 식별자를 의미 있는 항목으로 변환하는 과정이 포함될 수 있습니다. Cloud Data Fusion은 ETL/ELT 데이터 파이프라인을 효율적으로 빌드하기 위한 서비스입니다. Cloud Data Fusion은 Cloud Dataproc 클러스터를 사용하여 파이프라인의 모든 변환을 수행합니다.

이 튜토리얼에서는 BigQuery에 저장된 NYC TLC 택시 주행 데이터 세트 하위 집합을 예로 들어 Cloud Data Fusion 사용 방법을 설명합니다.

설정 및 요건

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

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

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

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

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

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

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

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

Google Cloud Shell 활성화하기

Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.

Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.

  2. 계속을 클릭합니다.

환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  • 다음 명령어를 사용하여 사용 중인 계정 이름을 나열할 수 있습니다.
gcloud auth list

출력:

Credentialed accounts: - @.com (active)

출력 예시:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 다음 명령어를 사용하여 프로젝트 ID를 나열할 수 있습니다.
gcloud config list project

출력:

[core] project =

출력 예시:

[core] project = qwiklabs-gcp-44776a13dea667a6 참고: gcloud 전체 문서는 gcloud CLI 개요 가이드를 참조하세요.

프로젝트 권한 확인

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

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

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

참고: 계정이 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. Cloud Data Fusion 인스턴스 만들기

Cloud Data Fusion 인스턴스를 만드는 구체적인 방법은 Cloud Data Fusion 인스턴스 만들기 가이드에서 확인할 수 있습니다. 필수 단계는 다음과 같습니다.

  1. 학습 환경이 올바르게 구성되었는지 확인하려면 Cloud Data Fusion API를 먼저 중지했다가 다시 시작해야 합니다. Cloud Shell에서 아래 명령어를 실행합니다. 완료하는 데 몇 분 정도 걸릴 수 있습니다.
gcloud services disable datafusion.googleapis.com

출력에 작업이 정상적으로 마무리되었다고 표시됩니다.

이제 Cloud Data Fusion API에 대한 연결을 다시 시작합니다.

  1. Google Cloud Console에서 상단 검색창에 Cloud Data Fusion API를 입력합니다. Cloud Data Fusion API에 대한 검색 결과를 클릭합니다.

  2. 로드된 페이지에서 사용을 클릭합니다.

  3. API가 다시 사용 설정되면 페이지가 새로고침되면서 API 사용량 및 성능에 관한 기타 세부정보와 함께 API 사용 중지 옵션이 표시됩니다.

  4. 탐색 메뉴에서 Data Fusion을 선택합니다.

  5. Cloud Data Fusion 인스턴스를 만들려면 인스턴스 만들기를 클릭합니다.

  6. 인스턴스 이름을 입력합니다.

  7. 버전 유형으로는 기본을 선택합니다.

  8. 승인 섹션에서 권한 부여를 클릭합니다.

  9. 나머지 모든 입력란은 기본값으로 두고 만들기를 클릭합니다.

참고: 인스턴스를 만드는 데 15분 정도 걸립니다.
  1. 인스턴스가 생성되면 인스턴스에 연결된 서비스 계정에 프로젝트에 대한 권한을 부여하는 단계를 추가로 수행해야 합니다. 인스턴스 이름을 클릭하여 인스턴스 세부정보 페이지로 이동합니다.

  2. 클립보드에 서비스 계정을 복사합니다.

  3. GCP 콘솔에서 IAM 및 관리자 > IAM으로 이동합니다.

  4. IAM 권한 페이지에서 +액세스 권한 부여를 클릭하여 앞서 복사한 서비스 계정을 새로운 주 구성원으로 추가하고 Cloud Data Fusion API 서비스 에이전트 역할을 부여합니다.

  1. 저장을 클릭합니다.

작업 2. 데이터 로드하기

Cloud Data Fusion 인스턴스가 준비되고 실행되면 Cloud Data Fusion 사용을 시작할 수 있습니다. 하지만 Cloud Data Fusion에서 데이터 처리를 시작하려면 몇 가지 예비 단계를 거쳐야 합니다.

  1. 이 예시에서는 Cloud Data Fusion이 스토리지 버킷에 있는 데이터를 읽습니다. Cloud Shell 콘솔에서 다음 명령어를 실행하여 새 버킷을 만들고 관련 데이터를 버킷에 복사합니다.
export BUCKET=$GOOGLE_CLOUD_PROJECT gcloud storage buckets create gs://$BUCKET gcloud storage cp gs://cloud-training/OCBL017/ny-taxi-2018-sample.csv gs://$BUCKET 참고: 생성된 버킷의 이름은 프로젝트 ID입니다.
  1. 명령줄에서 다음 명령어를 실행하여 Cloud Data Fusion이 만들 임시 스토리지 항목을 위한 버킷을 생성합니다.
gcloud storage buckets create gs://$BUCKET-temp 참고: 생성된 버킷의 이름은 프로젝트 ID 뒤에 '-temp'가 추가된 형식입니다.
  1. Data Fusion 인스턴스 페이지 또는 인스턴스의 세부정보 페이지에서 인스턴스 보기 링크를 클릭합니다. 사용자 이름을 클릭합니다. 서비스를 둘러볼지 묻는 메시지가 나타나면 아니요를 클릭합니다. 이제 Cloud Data Fusion UI가 나타날 것입니다.
참고: 페이지를 빨리 로드하려면 Cloud Fusion UI 페이지를 다시 로드하거나 새로고침해야 할 수 있습니다.
  1. Wrangler는 대화형의 시각적 도구로, 전체 데이터 세트를 대상으로 대규모 병렬 처리 작업을 디스패치하기 전에 소량의 데이터 하위 집합에 변환을 적용하여 그 영향을 볼 수 있게 해줍니다. Cloud Data Fusion UI에서 Wrangler를 선택합니다. 왼쪽에 표시되는 패널에서 Cloud Storage 연결을 포함해 사전 구성된 데이터 연결을 살펴볼 수 있습니다.

  2. GCS에서 Cloud Storage 기본값을 선택합니다.

  3. 프로젝트 이름에 해당하는 버킷을 클릭합니다.

  4. ny-taxi-2018-sample.csv를 선택합니다. 데이터가 Wrangler 화면에서 행/열 형식으로 로드됩니다.

  5. Parsing Options(파싱 옵션) 창에서 Use First Row as Header(첫 번째 행을 헤더로 사용)True로 설정합니다. 데이터가 여러 열로 분할됩니다.

  6. 확인을 클릭합니다.

작업 3. 데이터 정리하기

이제 택시 데이터를 파싱하고 정리하기 위한 몇 가지 변환을 수행합니다.

  1. trip_distance 열 옆의 아래쪽 화살표를 클릭하고 데이터 유형 변경을 선택한 다음 부동 소수점 수를 클릭하고 total_amount 열에서도 이 작업을 반복합니다.

  2. pickup_location_id 열 옆의 아래쪽 화살표를 클릭하고 데이터 유형 변경을 선택한 다음 문자열을 클릭합니다.

  3. 데이터를 자세히 살펴보면 음수 주행 거리 같은 이상치를 찾을 수 있습니다. Wrangler의 필터링 기능을 사용하면 이러한 음수 값을 방지할 수 있습니다. trip_distance 열 옆에 있는 아래쪽 화살표를 클릭하고 Filter(필터)를 선택합니다. If 구문으로 커스텀 조건을 클릭하고 >0.0을 입력합니다.

  1. 적용을 클릭합니다.

작업 4. 파이프라인 생성하기

이제 기본적인 데이터 정리가 완료되었고 데이터 하위 집합에서 변환을 실행했습니다. 이제 일괄 파이프라인을 만들어 모든 데이터에 변환을 실행할 수 있습니다.

Cloud Data Fusion은 시각적으로 빌드된 파이프라인을 Apache Spark 또는 맵리듀스 프로그램으로 변환하여 임시 Cloud Dataproc 클러스터에서 병렬로 변환을 실행합니다. 이로써 인프라 및 기술 문제에 신경 쓸 필요 없이 방대한 양의 데이터에 대한 복잡한 변환을 확장 가능하고 안정적인 방법으로 손쉽게 실행할 수 있습니다.

  1. Google Cloud Fusion UI의 오른쪽 상단에서 Create a Pipeline(파이프라인 만들기)을 클릭합니다.

  2. 대화상자가 나타나면 일괄 파이프라인을 선택합니다.

  3. Data Pipelines UI에서 Wrangler 노드에 연결된 GCSFile 소스 노드를 볼 수 있습니다. Wrangler 노드에는 지시문 문법으로 캡처되어 Wrangler 뷰에 적용한 모든 변환이 포함되어 있습니다. Wrangler 노드에 마우스를 가져가 속성을 선택합니다.

.

  1. 이 단계에서 Wrangler 버튼을 클릭하면 더 많은 변환을 적용할 수 있습니다. 이름 옆에 있는 빨간색 휴지통 아이콘을 눌러 extra 열을 삭제합니다. 오른쪽 상단의 검증을 클릭하여 오류가 있는지 확인합니다. Wrangler 도구를 닫으려면 오른쪽 상단에 있는 X 버튼을 클릭합니다.

작업 5: 데이터 소스 추가하기

택시 데이터에는 pickup_location_id처럼 분석가가 즉시 파악할 수 없는 몇 가지 복잡한 열이 있습니다. pickup_location_id 열을 해당하는 위치 이름에 매핑하는 데이터 소스를 파이프라인에 추가하겠습니다. 매핑 정보는 BigQuery 테이블에 저장됩니다.

  1. 별도의 탭에서 Cloud 콘솔의 BigQuery UI를 엽니다. 'Cloud 콘솔의 BigQuery에 오신 것을 환영합니다' 시작 페이지에서 완료를 클릭합니다.

  2. BigQuery UI의 탐색기 섹션에서 GCP 프로젝트 ID 옆에 있는 점 3개를 클릭합니다(Qwiklabs로 시작됨).

  3. 메뉴가 표시되면 데이터 세트 만들기를 클릭합니다.

  4. 데이터 세트 ID 입력란에 trips를 입력합니다.

  5. 데이터 세트 만들기를 클릭합니다.

  6. 새로 만든 데이터 세트에서 원하는 테이블을 만들려면 더보기 > 쿼리 설정으로 이동합니다. 이 프로세스를 통해 Cloud Data Fusion에서 테이블에 액세스할 수 있습니다.

  7. 쿼리 결과의 대상 테이블 설정에 해당하는 항목을 선택합니다. 데이터 세트의 경우 trips를 입력하고 드롭다운에서 선택합니다. 테이블 IDzone_id_mapping을 입력합니다. 저장을 클릭합니다.

  1. 쿼리 편집기에 다음 쿼리를 입력하고 실행을 클릭합니다.
SELECT zone_id, zone_name, borough FROM `bigquery-public-data.new_york_taxi_trips.taxi_zone_geom`

이 테이블에서는 zone_id가 해당 영역 이름과 자치구에 매핑된 것을 볼 수 있습니다.

  1. 이제 이 BigQuery 테이블에 액세스하기 위해 파이프라인에 소스를 추가하겠습니다. Cloud Data Fusion이 열려 있는 탭으로 돌아가 왼쪽의 플러그인 팔레트에 있는 소스 섹션에서 BigQuery를 선택합니다. BigQuery 소스 노드가 2개의 다른 노드와 함께 캔버스에 표시됩니다.

  2. 새로운 BigQuery 소스 노드에 마우스를 가져간 후 Properties(속성)를 클릭합니다.

  3. 참조 이름을 구성하려면 zone_mapping을 입력합니다. 이 이름은 계보 용도로 이 데이터 소스를 식별하는 데 사용됩니다.

  1. BigQuery 데이터 세트 구성과 테이블 구성은 몇 단계 전에 BigQuery에서 설정한 데이터 세트와 테이블입니다(tripszone_id_mapping). 임시 버킷 이름으로는 작업 2에서 생성한 버킷에 해당하는 프로젝트 이름에 '-temp'를 뒤에 붙여 입력합니다.

  1. BigQuery에서 이 테이블의 스키마를 채우려면 스키마 얻기를 클릭합니다. 이 필드는 마법사의 오른쪽에 표시됩니다.

  2. 오른쪽 상단의 검증을 클릭하여 오류가 있는지 확인합니다. BigQuery 속성 창을 닫으려면 오른쪽 상단에서 X 버튼을 클릭합니다.

작업 6: 소스 2개 조인하기

이제 보다 의미 있는 출력을 생성하기 위해 2개의 데이터 소스(택시 운행 데이터 및 영역 이름)를 조인할 수 있습니다.

  1. 플러그인 팔레트의 애널리틱스 섹션 아래에서 Joiner(조이너)를 선택합니다. Joiner 노드가 캔버스에 표시됩니다.

  2. Wrangler 노드와 BigQuery 노드를 Joiner 노드에 연결하려면 소스 노드의 오른쪽 가장자리에 있는 연결 화살표(>)를 드래그하여 대상 노드 위에 놓습니다.

  1. Joiner 노드를 구성하는 방법은 SQL JOIN 문법과 비슷하며 다음 안내를 따르면 됩니다.
  • JoinerProperties(속성)를 클릭합니다.

  • 라벨을 Joiner로 둡니다.

  • Join Type(조인 유형)Inner(내부)로 변경합니다.

  • Wrangler 노드의 pickup_location_id 열이 BigQuery 노드의 zone_id 열에 조인되도록 조인 조건을 설정합니다.

  • 이렇게 연결된 조인의 스키마를 생성하려면 스키마 가져오기를 클릭합니다.

  • 오른쪽의 출력 스키마 테이블에서 빨간색 휴지통 아이콘을 눌러서 zone_idpickup_location_id 필드를 삭제합니다.

  • 오른쪽 상단의 검증을 클릭하여 오류가 있는지 확인합니다. 오른쪽 상단에서 X 버튼을 클릭해 창을 닫습니다.

작업 7. BigQuery에 출력 저장하기

파이프라인 결과를 BigQuery 테이블에 저장합니다. 데이터를 저장하는 위치를 싱크라고 합니다.

  1. 플러그인 팔레트의 Sink(싱크) 섹션에서 BigQuery를 선택합니다.

  2. Joiner 노드를 BigQuery 노드에 연결합니다. 소스 노드의 오른쪽 가장자리에 있는 연결 화살표(>)를 드래그하여 대상 노드에 놓습니다.

  1. BigQuery2 노드에 마우스를 가져가서 연 다음 속성을 클릭합니다. 그런 다음 아래와 같이 노드를 구성합니다. 기존 BigQuery 소스와 유사한 구성을 사용합니다. Reference Name(참조 이름) 필드에 bq_insert를 제공합니다. 그런 다음 Dataset(데이터 세트)에는 trips를 입력하고 Temporary Bucket Name(임시 버킷 이름)에는 프로젝트 이름에 '-temp'를 붙여 입력합니다. 이 파이프라인 실행을 위해 생성되는 새 테이블에 결과가 작성됩니다. 테이블 필드에 trips_pickup_name을 입력합니다.

  2. 오른쪽 상단의 검증을 클릭하여 오류가 있는지 확인합니다. 오른쪽 상단에서 X 버튼을 클릭해 창을 닫습니다.

작업 8. 파이프라인 배포하고 실행하기

이제 첫 번째 파이프라인을 만들었으므로 파이프라인을 배포하고 실행할 수 있습니다.

  1. Data Fusion UI의 왼쪽 상단에서 파이프라인 이름을 지정하고 저장을 클릭합니다.

  1. 이제 파이프라인을 배포합니다. 페이지 오른쪽 상단에서 배포를 클릭합니다.

  1. 다음 화면에서 실행을 클릭하여 데이터 처리를 시작합니다.

파이프라인을 실행할 때 Cloud Data Fusion은 임시 Cloud Dataproc 클러스터를 프로비저닝하고, 이 파이프라인을 실행한 다음, 클러스터를 해체합니다. 이 과정에 몇 분 정도 소요될 수 있습니다. 이 시간 동안 파이프라인 전환 상태가 프로비저닝 중에서 시작 중으로, 시작 중에서 실행 중성공으로 진행되는 과정을 확인할 수 있습니다.

참고: 파이프라인 전환에 성공할 때까지 10~15분이 걸릴 수 있습니다.

작업 9. 결과 보기

파이프라인을 실행한 후 다음 단계에 따라 결과를 확인합니다.

  • BigQuery가 열려 있는 탭으로 돌아갑니다. 아래의 쿼리를 실행하여 trips_pickup_name 테이블의 값을 확인합니다.

    SELECT * FROM `trips.trips_pickup_name`

    BQ RESULTS

실습 종료하기

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

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

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

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