2 분 소요

 안녕하세요 마개입니다.
 자격증을 공부하고 있는데 기록은 거의 안하고 있었네요. 천천히 하나씩 기록해보겠습니다. 간단하게 정리하는 식으로 진행합니다. 첫번째로는 데이터엔지니어링 기초입니다.


AWS



데이터 타입

  • Structured Data
    • 정의된 스키마 구조로 구성된 정형 데이터
    • 데이터베이스 테이블, CSV, 스프레드시트
  • Unstructured Data
    • 사전 정의된 구조나 스키마가 없는 비정형 데이터
    • 텍스트 파일, 비디오/오디오 파일, 이미지
  • Semi-Structured Data
    • 정형 데이터처럼 구조화되어 있지 않지만 태그, 계층과 같은 구조의 반정형 데이터
    • XML과 JSON 파일, 로그 파일



빅데이터 3V

  • Volume
    • 데이터의 양과 사이즈
    • 기가바이트부터 페타바이트, 그 이상의 사이즈
  • Velocity
    • 신규 데이터를 수집하고 프로세스하는 속도
    • 고사양의 Velocity를 요구하는 것은 Real-Time 또는 NRT (Near Real-Time)으로 다뤄야함.
  • Variety
    • 다양한 타입의 데이터
    • 정형, 반정형, 비정형 데이터



Data Warehouses vs Data Lakes

  • Data Warehouse
    • 각기 다른 소스에서 온 데이터가 구조화된 포맷으로 저장된 중앙화된 레파지토리
    • ETL Process, Star / Snowflake 스키마
    • Amazon Redshift, Google BigQuery, Azure SQL Data Warehouse
  • Data Lake
    • 정형/비정형/반정형 데이터를 포함한 원래의 포맷을 가진 어마어마한 대량의 데이터를 가진 스토리지
    • 사전 정의된 스키마가 필요 없음.
    • Amazon S3, Azure Data Lake, HDFS
  • Data Lakehouse
    • Data Lake + Data Warehouse
    • 정형/비정형 데이터
    • Schema-on-write & Schema-on-read 허용
    • AWS Lake Formation, Delta Lake
  • Data Mesh
    • 데이터 거버넌스
    • 각 도메인 팀이 데이터 프로덕트를 가지는 형태. 도메인 기반 데이터 관리
  • ETL
    • Extract, Transform, Load
    • AWS Glue, Amazon MWAA, AWS Step Functions



데이터 파일 포맷

  • CSV
    • Comma-Separated Values
    • 각 라인은 행에 속하고 콤마(,)를 기준으로 나눠진 데이터들은 열에 해당하는 테이블 형태의 텍스트 기반 포맷
    • 작은 데이터셋에 적합하고 가시적으로 파악할 수 있는 데이터
    • SQL기반 데이터베이스, 엑셀, 파이썬, R
  • JSON
    • 텍스트 기반에 사람이 읽을 수 있는 포맷
    • Key-Value로 이루어진 정형 또는 반정형 데이터
    • 웹 서버와 클라이언트 사이의 데이터 교환
  • Avro
    • 데이터와 스키마를 모두 저장하는 바이너리 포맷
    • 빅데이터와 리얼타임 프로세싱에서 사용 가능
    • 시스템 간에 데이터 전송에 있어 직렬화가 편함
    • Apache Kafka, Spark, Flink, Hadoop Ecosystem
  • Parquet
    • 분석을 위해 최적화된 열 기반 스토리지 포맷
    • 효율적인 압축과 인코딩
    • I/O 운영과 최적화가 필요한 분산 시스템에 데이터를 저장할 때 필요
    • Hadoop, Spark, Hive, Impala, Redshift Spectrum


Data Lineage

  • Source부터 최종 목적지까지 데이터 생애주기를 통한 데이터의 흐름과 Transformation
  • 에러를 트래킹하기 좋음
  • 데이터가 어떻게 움직이고 변환되는지 이해가 쉬움


Schema Evolution

  • 현재 프로세스와 시스템의 방해 없이 데이터셋의 스키마를 변경할 수 있음
  • 이전 데이터와의 호환성이 좋음
  • Glue Schema Registry


Data Skew

  • 분산 처리 시스템에서 여러 노드 또는 파티션 간에 데이터 밸런스가 맞지 않는 상태를 말함. 특정 노드에 데이터가 많은 상태
  • 발생 원인
    • 적절하지 않은 파티셔닝 전략
    • 일시적인 skew
  • 해결책
    • Adaptive Partitioning
    • Salting
    • Repartitioning
    • Sampling
    • Custom Partitioning


Data Validation and Profiling

  • Completeness
  • Consistency
  • Accuracy
  • Integrity



SQL

Aggregation

  • COUNT
  • SUM
  • AVG
  • MAX / MIN


JOIN

  • INNER JOIN
  • LEFT OUTER JOIN
  • RIGHT OUTER JOIN
  • FULL OUTER JOIN
  • CROSS OUTER JOIN



GIT

Common git commands

  • git init
  • git config
  • git clone
  • git status
  • git add filename
  • git commit -m “Commit Message”
  • git log


Branching with git

  • git branch
  • git checkout branchname
  • git merge branchname
  • git branch -d branchname


Remote repositories

  • git remote add name url
  • git remote
  • git push remote branch
  • git pull remote branch


Undoing changes

  • git reset
  • git reset –hard
  • git revert commit


Advanced git

  • git stash
  • git rebase branch
  • git cherry-pick commit


Git collaboration and inspection

  • git blame file
  • git diff
  • git fetch


Git maintenance and data recovery

  • git fsck
  • git gc
  • git reflog