[aws/ETL] AWS Glue Tutorial

김진만·2024년 3월 19일
0

DPU란?

DPU의 Pricing

  • Data Processint Unit 의 약자임 (젠슨 황-엔비디아 대표 언급)
    - 1 DPU = 4 vCPU & 16 GB of memory ( $0.44 per Hour )
  • Data Catalog
    - $1.00 per 100,000 objects per Month
  • Requests
    - 1M(1,000,000) 은 무료
    • $1.00 per 1M requests above 1M in a month

WorkFlow

csv -> Transform -> Parquet
  1. Bucket 생성( S3 )
  2. IAM 권한 부여(적절하게..)
  3. Glue 내에 DB 생성
  4. Crawler 생성 후 실행
  5. ETL Job 생성 후 실행(Extract, Transtorm and loads)

Checklist

Job Bookmark 확인
DB Procedure ( DW -> DM )
python( Landing Zone -> DW 로 CUD 작업 )
랜딩존의 이미지 메타데이터(URL) -> 웹URL
ETL 과정을 모니터링(Log)

Process

  1. 버킷에 iris.csv 테스트 데이터 생성 (s3://kimjm/test-csv-/iris.csv)
  2. database 생성( kimjm_test_postresql)
  3. crawler 생성( Data Sources 지정 -> 버킷 경로 )

Test WF(Work Flow)

trigger - node - trigger(any/all) -> node
1. trigger ( 스케쥴, on-demand )
2. forward
2-1. treigger( depends on 2 )

Data Lake Overall Flow

  1. ERP서버(REST API)에서 S3로 일단위로 추출
    • 증분(incremental), 증분테이블(CDC) or 타임스탬프 컬럼 기반
      - original.parquet = original.parquet + added.parquet(add는 날짜)
    • 모든 데이터 다 갖고 오기 (비효율적일듯)
      - original.parquet = original.parquet
  2. S3 to Data-Catalog
    • crawler 실행( bookmark: enabled)
  3. Data-Catalog( CDC만 있는)에 있는 증분 데이터를 DW에 반영
    • working_df = SparkSession.read(Data-Catalog)
    • original_df = SparkSession.read(Database)
      두 df를 join해서 없는 것은 filter로 drop하고,
profile
충분한 전기와 컴퓨터 한 대와 내 이 몸만 남아 있다면 지구를 재건할 수 있습니다.

0개의 댓글