로딩

데이터 엔지니어링 입문

Vincent Vankrunkelsven

Data Engineer, DataCamp

분석용 데이터베이스와 애플리케이션용 데이터베이스

분석

분석을 나타내는 아이콘

  • 집계 쿼리
  • 온라인 분석 처리(OLAP)

애플리케이션

애플리케이션을 나타내는 아이콘

  • 대량의 트랜잭션
  • 온라인 트랜잭션 처리(OLTP)
데이터 엔지니어링 입문

열 기반과 행 기반

분석

  • 열 기반(Column-oriented)

열 기반 저장 방식 예시

  • 일부 열에 대한 쿼리
  • 병렬 처리

애플리케이션

  • 행 기반(Row-oriented)

행 기반 저장 방식 예시

  • 레코드 단위로 저장
  • 트랜잭션 단위로 추가
  • 예: 고객 추가가 빠름
데이터 엔지니어링 입문

MPP 데이터베이스

대규모 병렬 처리 데이터베이스(Massively Parallel Processing Databases)

MPP 데이터베이스 다이어그램

 

  • Amazon Redshift
  • Azure SQL Data Warehouse
  • Google BigQuery
데이터 엔지니어링 입문

예시: Redshift

열 기반 저장 형식으로 파일 로드하기

# Pandas .to_parquet() method
df.to_parquet("s3://path/to/bucket/customer.parquet")
# PySpark .write.parquet() method
df.write.parquet("s3://path/to/bucket/customer.parquet")
COPY customer
FROM 's3://path/to/bucket/customer.parquet'
FORMAT as parquet
...
데이터 엔지니어링 입문

PostgreSQL로 로드하기

pandas.to_sql()

# Transformation on data
recommendations = transform_find_recommendatins(ratings_df)

# Load into PostgreSQL database
recommendations.to_sql("recommendations",
                       db_engine,
                       schema="store",
                       if_exists="replace")
데이터 엔지니어링 입문

연습해 봅시다!

데이터 엔지니어링 입문

Preparing Video For Download...