본문 바로가기

Data Science : Study/2. Data Engineering (FastCampus)

1강. 데이터 엔지니어링 개요

반응형

 

 

 

1. 데이터 시스템 옵션

관계형 데이터베이스 (ex. mysql)

- 목적: 데이터의 저장. 어떤 형식으로 저장할건지.

ex. sql:데이터를 어떻게 열람하고 유지할건지에 대한 방식.

NoSQL 데이터베이스 (ex. dynamo)

- 목적: 스키마(틀)가 없는 데이터의 저장.

ex. 메신저

 

spark

- 오픈소스 클러스터 컴퓨팅 프레임워크

- 리얼타임 데이터를 프로세싱하기에 좋다.

- java, python, scala, sql 환경 서포트하기 때문에 API 사용에 용이하다.

서버리스 프레임워크

- 유지, 관리해야 하는 서버를 띄워놓지 않아도 된다.

- function 같이 특정 trigger가 들어오면 실행됨.

 

 

 

2. 데이터 파이프라인

- 데이터를 한 장소에서 다른 장소로 옮기는 것.

  (API - DB, DB - DB, DB - BI tool)

- 데이터로 서비스를 제공한다면 파이프라인 필요.

- 각 영역에서 데이터가 있다면 데이터통합을 위해 파이프라인 필요.

ex. spotify - mysql

 

구축시 고려사항

- 데이터 양이 늘어났을 때도 잘 작동해야 한다.

- 에러, 데이터 플로우 등에 대한 안정적인 관리

- 파이프라인에 의해 데이터가 이동했을 때 보안에 대한 리스크

 

 

 

3. 데이터 프로세싱 자동화

추출, 수집, 정제를 최소한의 사람 input으로 머신이 운영

- 크론탭 등 머신 스케쥴링을 통해 자동화

 

고려할 사항

- 데이터 프로세싱 스텝 : 스텝이 순서대로 진행될 수 있도록.

  (뭐를 가져오고, 저장하고, 어떤 알고리즘을 돌리고, 그걸로 시각화를 할거고)

- 에러 핸들링 및 모니터링 : 재시도를 얼마나 할 건지, 퍼포먼스에 대한 모니터링

   * python : logging package

   * AWS : cloudwatch, data pipeline errors

- 트리거/스케쥴링 : 순서대로 진행될 수 있도록, 반복 주기

 

데이터 프로세싱 예시

① 저장 - S3 : 빅데이터저장소

② 처리 - 스파크, 아마존 EMR : 스파크와 하둡 처리기술에 특화된 서버(컴퓨팅 시스템)

③ 전처리된 것을 저장 - 레드시프트 : 분석에 특화된 DB

④ 처리 - RDS

⑤ 처리 - 아테나 : 서버리스

 

ad hoc 분석환경 구축

서비스를 지속적으로 빠르게 변화시키는데 필수

- 이니셜 데이터 삽입

- backfill : 데이터에 문제가 생겼을 때 다시 저장

automated

엔지니어링은 자동화에 가깝다. 결국 구축해야 하는 것은 자동화 시스템!

 

 

 

 

 

이런 내용이 더 있으면 좋겠다, 이건 뭐라는지 모르겠다, 그 외의 어떤 얘기든 댓글로 남겨주세요!

 

 

 

반응형