Part0_Data_Engineering

패스트 캠퍼스에서 수강하는 데이터 엔지니어링 강의 내용의 정리본이다.

Part0_Data_Engineering

목차

  • Step 1. 데이터 엔지니어링
  • Step 2. 데이터 엔지니어링의 필요성
  • Step 3. 데이터 아키텍쳐시 고려사항
  • Step 4. 데이터 파이프라인
  • Step 5. 자동화의 이해

Step 1. 데이터 엔지니어링

데이터 분석가들이 필요로 하는 어떤 데이터가 비즈니스에 필요한지, 그 데이터를 통해 어떤 분석을 할 수 있는지 환경을 구축

데이터 전처리, 추출, 정제 등 가장 많은 시간이 소요

Step 2. 데이터 엔지니어링의 필요성

데이터가 존재하지 않으면 데이터 분석이 불가능하기에그래서 데이터를 갖추고, 어떻게 활용할지 생각이 필요하다.

특히 비지니스 모델과 연관이 많이 되어있기 때문에 비지니스 모델과 맞는 어떤 데이터를 가져오고 어떻게 활용할지에 대해 고민해야한다.

Step 3. 데이터 아키텍쳐시 고려사항

1) 비지니스 모델 상 가장 중요한 데이터 ?

비용 대비 비지니스 임팩트가 가장 높은 데이터를 확보하는 것

2) 데이터 거버넌스

  • 원칙 : 데이터를 유지 관리하기 위한 가이드 보안, 품질, 변경관리

  • 조직 : 데이터를 관리할 조직의 역할과 책임 데이터 관리자, 데이터 아키텍트

  • 프로세스 : 데이터 관리를 위한 시스템 작업 절차, 모니터 및 측정

3) 유연하고 변화 가능한 환경 구축

특정 기술 및 솔루션에 고정되지 않는 새로운 기술를 빠르게 적용 할 수 있는 아키텍쳐를 만드는 것이 필요하다.

즉 생성되는 데이터의 형식이 변화할 수 있는 것처럼 그에 맞는 툴들과 솔루션들도 빠르게 변화할 수 잇는 시스템을 구축해야 한다.

4) Real Time(실시간) 데이터 핸들링 가능 시스템

밀리세컨 단위의 데이터이던 하루에 한번 업데이트 되는 데이터든 아키텍쳐는 모든 스피드의 데이터를 핸들링 가능해야 함

5) Sercurity

내부와 외부 모든 곳에서부터 발생할 수 있는 위험 요소 들을 파악하여 어떻게 데이터를 안전하게 관리할 수 있는지 아키텍쳐 안에 포함

6) 셀프 서비스 환경 구축

데이터 엔지니어 한명만 엑세스가 가능한 데이터 시스템은 확장성이 없는 데이터 분석 환경

Step 4. 데이터 파이프라인

데이터 파이프라인 이란

데이터를 한 장소에서 다른 장소로 옮기는 것을 의미 e.g. API -> DB -> DB -> BI Tool

image

1) 필요한 경우

  • 다양한 데이터 소스들로부터 많은 데이터를 생성하고 저장하는 서비스
  • 실시간 혹은 높은 수준의 데이터 분석이 필요한 비즈니스 모델
  • 클라우드 환경으로 데이터를 저장

2) 구축시 고려 사항

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

Step 5. 자동화의 이해

데이터 프로세싱 자동화?

필요한 데이터를 추출, 수집, 정제하는 프로세싱을 최소한의 사람 인풋으로 머신이 운영하는 것을 의미.

e.g. spotify 데이터를 하루에 한번 API를 통해서 클라우드 DB로 가져올 경우 매번 사람이 데이터 파이프라인을 작동하는 것이 아닌 크론탭 등 머신 스케쥴링을 자동화

고려사항

  • 데이터 프로세싱 스텝
  • 에러 핸들링 및 모니터링
  • 트리거 / 스케쥴링