데이터 엔지니어링/데이터 플랫폼

[데이터플랫폼] 데이터 파이프라인이란

pythaac 2022. 4. 24. 20:11

1. 데이터 엔지니어링 개요파트 - 데이터 파이프라인이란

https://www.youtube.com/watch?v=HR3dpnJRk6M&list=PLbd9zR_lqq9exGduT3rsOsGWZZwwzaqrb&index=1 

 

데이터 파이프라인이란

  • 데이터를 한 장소에서 다른 장소로 옮기는 것
    • API -> Database
    • Database -> Database
    • Database -> BI Tool

 

데이터 파이프라인이 필요한 이유

  • 데이터 가공
    - 데이터 소스로부터 데이터를 생성/저장
  • 데이터 공유
    - 영역/부서별 고립된 데이터를 통합
  • 데이터 응용
    - 데이터 분석이 필요한 비즈니스 모델에서 사용
  • 데이터 저장
    - 클라우드 환경으로 데이터 저장

 

데이터 파이프라인 예시

  • 데이터 파이프라인
    • REST API에서 AWS Lambda로 데이터를 가져옴
      - AWS Lambda : 서버리스 서비스
    • API Gateway에서 전달받은 데이터를 Amazon Kinesis에서 데이터 프로세싱을 하여 Amazon S3로 저장
      - API Gateway : API 서버 앞단에서 모든 API 서버들
      - Amazon Kinesis : 데이터 프로세싱 시스템
      - Amazon S3 : 저장소
    • Amazon Athena로 데이터 분석
      - Amazon Athena : 분석 시스템
    • Front-end에서 시각화
  • 생각해볼 수 있는 것들
    • Amazon Lambda의 스케줄링
      - 하루에 1번 작동할 것인지, 1분에 1번 작동할 것인지
    • 분석 스케줄링
      - 데이터가 저장이 됐을 겨우에만 분석을 하겠다
    • 캐싱
      - Amazon S3에서 계속 데이터를 가져오는 것이 아니라, DynamoDB에 저장

 

구축시 고려사항

  • Scalability
    - 데이터가 기하급수적으로 늘어났을 때도 작동하는지?
  • Stablility
    - 에러, 데이터 플로우 등 다양한 모니터링 관리
  • Security
    - 데이터 이동간 보안에 대한 리스크는 무엇인지?

 

2. 0 데이터파이프라인 이해하기

https://www.youtube.com/watch?v=cXNOR00e1gM&list=PLbd9zR_lqq9exGduT3rsOsGWZZwwzaqrb&index=2 

 

데이터 엔지니어의 역할

  • Data Lake Management Platform
    • 다양한 소스에서 데이터를 가져와 데이터를 조직화하는 플랫폼
    • 이 플랫폼에서 다양한 데이터를 다루는 것이 데이터 엔지니어의 역할
  • 1. 다양한 소스에서 데이터를 가져옴 (Ingest)
    • 다양한 소스 
      • Database
      • IoT
      • SNS
      • 공공 데이터
      • 외부 클라우드 데이터
    • 데이터 수집의 자동화
      • Batch
        - 주기적으로 데이터를 가져옴
        - Bulk Data Movement
      • Stream
        - 실시간으로 데이터를 가져옴
        - Dynamic Data Movement
  • 2. 가져온 데이터를 가공 (Prepare)
    • 데이터 품질이 개선됨
  • 3. 필요한 데이터를 보강/가공 (Enrich)
    • 새로운 데이터를 만들어냄

 

데이터 파이프라인

  • 디지털 변환
    - 데이터 수집 및 가공, 저장을 포함하는 일련의 과정
  • 데이터 레이크 (Data Lake)
    - 여러 데이터 source에서 데이터가 한 곳으로 모이는 모양을 표현
  • 데이터 수집, 가공, 처리(시각화)
    • 수집
      • 파일
        - csv, binary
      • 데이터베이스
        - SQL, NoSQL
      • 웹 데이터
        - JSON, XML