마짱짱의 지식창고
[GCP] Dataprep을 이용한 파이프라인 구축 본문
0. 개요
Dataprep(Trifacta) 은 분석을 위해 정형 및 비정형 데이터를 시각적으로 탐색, 정리 및 준비하기 위한 지능형 데이터 서비스입니다.이 포스팅에서는 Cloud Dataprep UI를 탐색하여 결과를 BigQuery로 출력하는 데이터 변환 파이프라인을 빌드합니다.
https://cloud.google.com/dataprep?hl=ko
- BigQuery 데이터세트를 Cloud Dataprep에 연결합니다.
- Cloud Dataprep으로 데이터세트 품질을 살펴보세요.
- Cloud Dataprep으로 데이터 변환 파이프라인을 만드세요.
- BigQuery에 대한 변환 작업 출력을 실행합니다.
사용할 dataset은 BigQuery에 로드된 Google Merchandise Store 에 대한 수백만 개의 Google Analytics 세션 레코드가 있는 전자상거래 데이터세트 입니다.
1. Dataprep 열기
dataprep으로 이동하게되면 협업 파트너사인 Trifacta 약관 동의를 해야합니다.
접근권한 허용
약관허용
저장소 설정화면인데 Default로 진행하겠습니다.
Dataprep Console 화면
2. BigQuery Dataset 만들기
이 포스팅은 주로 Cloud Dataprep에 중점을 두지만 파이프라인에 대한 데이터세트 수집을 위한 엔드포인트 및 파이프라인 완료 시 출력 대상으로 BigQuery가 필요합니다.
GCP > BigQuery > Project의 메뉴 > Creat Dataset 선택
Dataset ID 정의 후 생성
#standardSQL
CREATE OR REPLACE TABLE ecommerce.all_sessions_raw_dataprep
OPTIONS(
description="Raw data from analyst team to ingest into Cloud Dataprep"
) AS
SELECT * FROM `data-to-insights.ecommerce.all_sessions_raw`
WHERE date = '20170801'; # limiting to one day of data 56k rows for this lab
Sample Data를 생성한 Dataset의 table로 만들기
3. BigQuery Data를 Dataprep으로 연결하기
Data Prep > Create a flow 클릭
상단 Untitled flow 클릭하여 Name 및 Description 설정하기
+ 기호를 클릭
우측 상단 BigQuery 클릭
Dataset 클릭
가져올 Table클릭후 Import&Add to Flow 클릭하면 연결 됐습니다.
4. UI로 가져온 Data 필드 탐색
Edit recipe 클릭
Data를 쉽게 볼 수 있습니다.
기능설명은 아래 부분에서 보여드리겠습니다.
5. Data 정리
이 작업에서는 사용하지 않는 열을 삭제하고, 중복을 제거하고, 계산된 필드를 만들고, 원치 않는 행을 필터링하여 데이터를 정리합니다.
productSKU 열 데이터 유형 변환
현재 productSKU Column 이 INT 로 설정되어 있기에 빨갛게 보입니다.
그렇기에 String으로 바꾸도록 하겠습니다.
Column 옆 아래화살표 > Change type > String
수정완료
사용하지 않는 열 삭제
itemQuantity, item Revenue Column은 null값도 있고 필요없다고 가정하에 삭제하도록 하겠습니다.
해당 Column 아래화살표 > Delete
행 중복 제거
소스 데이터세트에 중복된 세션 값이 포함되어 있을 수 있다는 경우에 중복제거를 통해 수정하도록 하겠습니다.
상단 항목 > 필터 > 중복제거 클릭
수익이 없는 세션 필터링
Null 값 필터링
totalTransactionRevenue Cloumn 처럼 항목을 회색부분은 Null 값을 의미하는데 클릭하면 해당 행이 모두 선택 된다.
우측 추천사항중 Delete rows 를 추가
Column에서 해당하는 값만 보
데이터 세트에는 PAGE (페이지 보기용) 또는 EVENT ("제품 카테고리 보기" 또는 "장바구니에 추가됨"과 같은 트리거된 이벤트용)와 같은 다양한 유형의 세션이 포함됩니다. 세션 페이지뷰를 이중으로 계산하지 않으려면 페이지뷰 관련 히트만 포함하도록 필터를 추가
type에서 Page 막대를 클릭 후 우측 추천패널에서 Keep rows 추가하기
고유한 세션 ID에 대한 새 열 만들기
샘플에서 fullVisitorID 및 visitId 필드를 연결하여 각 세션에 대한 고유 ID를 생성해보기
상단 항목중 columns 병합 클릭
원하는 Column 선택하면 값이 붙어서 합쳐지고 Preview처럼 칼럼이 새로 생성됨
New Column Name에 이름 새로 설정해주기
특정 값에 대한 정의하기
샘플 예시처럼 값이 0,1,2,3,4 이런식으로 표현 되지만 사실은
0 = Unkown, 1=click 등으로 표현하고 싶을 때 사용합니다.
상단 Conditions 클릭후 case on single column 클릭
우측에 원하는 Column 선택 후 해당하는 값마다 정의를 해주면
좌측 Preview에서 어떻게 표현되는지 알 수 있다.
열의 값 조정
totalTransactionRevenue Column처럼 숫자를 다시 계산해서 표현할 수 있습니다.
예를들어 28850000 -> 2885
해당 Column > Calculate > Custom formula 클릭
우측 패널에서 Formula 에 계산식을 써주고 새로운 Column 이름을 작성 후 추가
지금까지 수정한 내용 확인
DB를 새롭게 저장하기 전 지금까지 수정한 내용을 우측 Recipe 패널에서 확인할 수 있다.
우측상단 Run 누르게 되면 실행 환경 세팅이 나온다.
6. Cloud Dataprep 작업을 BigQuery로 실행
현재까지 한 작업을 다시 BigQuery로 실행해보자
구동환경을 Dataflow+bigquery 선택
Publishing Actions에서 create-csv가 기본일 텐데 edit 클릭
BigQuery > ecommerce Dataset 선택 후 create new table 선택
생성할 테이블 이름 정의 후 이후 dataset은 어떻게 할건지 선택
해당 포스팅에선 Drop the table every run 선택 후 맨 아래 Update 클릭
그리고 나머진 Default로 두고 Run 클릭
클릭
진행순서에 따른 화면을 볼 수 있음
BigQuery 콘솔화면에서도 정상적으로 확인
---
출처
'Cloud > GCP' 카테고리의 다른 글
[GCP] MySQL용 Amazon RDS에서 Cloud SQL로 마이그레이션 (0) | 2023.03.06 |
---|---|
[GCP] Dataflow, BigQuery, GCS를 이용하여 ETL Pipeline 구축 (0) | 2023.02.23 |
[GCP] GKE에 Cloud Deploy를 사용하여 CD환경 구축하기 (0) | 2023.02.20 |
[GCP] BigQuery Omni - AWS S3 연동하여 쿼리 날리기 (2) | 2023.02.17 |
[GCP] Cloud Run으로 배포된 Application을 Canary 배포테스트 (0) | 2023.02.15 |