Generalist/data engineering

[AWS]AWS 기반 데이터분석 파이프라인 구축 - Analytics on AWS 워크숍[3]

홍원 2022. 5. 28. 18:42

전제조건


실습과정 미리보기

  • AWS Glue ETL을 사용하여 데이터를 처리하고 결과를 다시 S3에 저장
  • Glue 개발 엔드포인트와 Sagemaker 노트북을 사용하여 데이터 변환 단계를 진행(PySpark)

서비스명 서비스 설명 비고
AWS Glue dev endpoint AWS Glue 스크립트를 개발하고 테스트할 수 있는 환경 엔드포인트가 데이터 스토어에 액세스한 후 개발 엔드포인트에 연결하는 노트북을 생성. 노트북을 사용하여 ETL 스크립트를 작성하고 테스트할 수 있습니다.
AWS SageMaker jupyter notebook과 동일한 환경이나 aws 클라우드 플랫폼  

1. AWS Glue Dev Endpoint 생성

 PySpark를 사용하여 Glue ETL 스크립트를 대화식으로 개발하기 위해 AWS Glue Dev Endpoint를 생성

 

Data catalog - add endpoint 클릭

  • name : analyticsworkshopEndpoint1
  • role : AnalyticsworkshopGlueRole
  • Data processing units (DPUs): 2 (이렇게 하면 이 실습을 실행하는데 드는 비용이 절감됩니다)

  • 네트워킹 : 디폴트값
  • ssh public key : 디폴트값

새로운 Glue 개발 엔드포인트가 가동되는데 몇 분(6-10 분)이 걸립니다.

상태가 PROVISIONING에서 READY로 변경되는 것을 볼 수 있습니다.

다음 단계 전까지 이 작업을 기다려야합니다.


2. Glue endpoint 용 SageMaker 노트북 (Jupyter) 생성

SageMaker 노트북 (Jupyter) 생성합니다.

Create note 클릭

name : analyticsworkshopNotebook

endpoint : analyticsworkshopEndpoint1 (방금 생성한 엔드포인트)

role : create an IAM role을 선택하여 권한을 생성합니다. 하단 이름 : workshop

그 외의 값 : 디폴트 값으로 설정하고 create note book 클릭

 

몇 분(4-5 분) 소요됩니다: 노트북 생성 상태가 Starting에서 Ready로 변경 될 때까지 기다립니다.


3. Jupyter 노트북 실행

생성한 노트북을 실행 하기 전 analytics-workshop-notebook.ipynb 을 로컬에 다운 받습니다.

다운 한 후 노트북을 실행

실행 한 후 로컬에 다운받은 파일을 업로드합니다.

  • 업로드 된 파일 클릭시노트북의 오른쪽 상단에 'Sparkmagic (PySpark)' 이라고 표시되어 있는지 확인합니다.
  • 노트북의 내용을 실행합니다. 

yourname-analytics-workshop-bucket을 본인의 버켓이름으로 변경합니다.


4. 가공/변경된 S3 데이터 확인

  • .parquet 파일들이 폴더에 생성 되었는지 확인합니다.

현재 과정 되짚어보기

Glue 개발 엔드포인트와 Sagemaker 노트북을 사용하여 데이터 변환 단계를 진행(PySpark)하였다.


(추가 - 참고 항목)

Sagemaker를 활용하여 직접 코드로 변환한 작업을 Glue Studio의 그래픽 인터페이스를 사용하여 코드리스로 데이터 변환. 데이터 변환 워크플로우를 시각적으로 구성하고 AWS Glue의 Apache Spark 기반 서버리스 ETL 엔진에서 실행 가능

서비스명 서비스 설명 비고
Glue Studio Glue Studio의 그래픽 인터페이스를 사용하여 데이터 변환을 함 (코드리스)  

 


실습 과정 미리보기

  • AWS Glue에서 ETL (추출, 변환 및 로드) 작업을 쉽게 생성, 실행 및 모니터링 할 수있는 그래픽 인터페이스인 AWS Glue Data Studio를 사용

1. Glue Studio 실행

Glue Studio 실행 후 좌측 바 jobs -  blank canvas(빈 캔버스 부터 시작) - create 클릭

시작 화면

(1) Source - amazon S3 선택

data catalog table 을 이미 만들어 놓았기 때문에 data catalog table 선택

  • database : analyticsworkshopdb
  • table : raw 
  • 단, 이름을 바꾸어 줄 것임

node properties 탭에서 기존 name : amazon S3 을 'raw' 로 변경

 

(2) 같은 방법으로 reference_data 생성

raw 테이블과 reference_data 테이블 생성 모습

 

(3) 두 테이블을 join 하기 위해 target tab - join 선택

node parents 드롭 박스에서 reference_data 테이블을 선택하여 두 데이터를 join 시킴

단, 어떤 열로 join 을 할지 정해주지 않았기 때문에 오류 발생

transform tab에서 조인 조건을 track_id 로 설정

단, raw 테이블의 track_id 는 int 형, reference_data의 track_id 는 string 형 임에도 조인에 성공한 것 주의

 

(4) 조인된 데이터의 정리를 위해 transform - apply mappping 작업

필요 없는 열 drop 하기

단 사진의 맨 위 track_id 가 int 형 인걸 볼 수 있는데, 이를 string으로 변환

데이터 설정을 마쳤으니 저장 할 위치를 지정

(5) 변환된 데이터를 target-s3 버튼을 눌러 s3에 데이터를 저장

저장 포맷은 다음과 같음 (sagemaker의 실행 결과와 동일한 설정 단, 구분을 위해 processed-data2 버킷폴더에 저장)

  • Format : parquet
  • compression type : Snappy
  • S3 target location : s3://hongwon-analytics-workshop-bucket/data/processed-data2/
  • Data Catalog update options : 
    • Choose Create a table in the Data Catalog and on subsequent runs, update the schema and add new partitions
  • Database: analyticsworkshopdb
  • Table name: processed-data2

 

(6) 최종 설정을 위해 job detail 탭에서 name 과 iam role 을 지정

기타 세부설정은 다음과 같다

우측 하단의 RUN 버튼을 클릭해 코드리스로 데이터 변환을 시행


현재 과정 되짚어보기

sagemaker를 활용해 코드로 짠 작업을 Glue Studio 를 활용하여 코드리스 버전으로 실행

 


다음편 보러가기

2022.05.29 - [Specialist/AWS] - [AWS]AWS 기반 데이터분석 파이프라인 구축 - Analytics on AWS 워크숍[4]

 

[AWS]AWS 기반 데이터분석 파이프라인 구축 - Analytics on AWS 워크숍[4]

전제조건 [AWS] AWS 기반 데이터 파이프라인 구축 - Analytics on AWS 워크숍[3] 실습과정 미리보기 Amazon Athena의 표준 SQL 쿼리를 사용하여 Glue 카탈로그에 등록된 데이터를 탐색 Athena를 사용하여 Amazon Qui

khw742002.tistory.com