해당 내용은 Datacamp의 Data engineering track을 정리했습니다.
Introduction to data engineering의 chapter 1에 대한 내용입니다.
해당 포스팅에는 아래의 내용을 포함하고 있습니다.
- 데이터 엔지니어링의 개념
- 데이터 엔지니어가 사용하는 툴에 대한 내용
- ETL
- Datacamp에서의 데이터 엔지니어링
1. What is data engineering?
만약 당신이 어떤 기업의 고객 이탈을 예측하는 데이터 과학자라고 가정해봅시다. 입사해보니, 데이터는 이곳저곳에 흩어져있으며, 분석에 최적화되어 있지 않습니다. 또한 레거시 코드(가독성이 떨어진 코드, 규약이 없는 경우, 임시로 코드를 작성한 경우)에 의해 데이터 손상이 일어나고 있습니다. 이러한 경우 누가 해결할 수 있을까요? 바로 데이터 엔지니어가 도움을 줄 수 있습니다.
데이터 엔지니어는 기본적으로 데이터 사이언티스트들이 작업하기 쉽도록 만들어 줍니다. 다양하게 흩어진 데이터들을 전처리해서 모아주고, 분석에 최적화된 데이터베이스를 제공해줍니다. 이 과정에서 손상된 데이터는 제거하는 등의 역할을 수행하게 됩니다.
데이터 엔지니어는 대규모 처리 시스템이나 데이터베이스를 구성, 유지, 테스트, 개발하는 업무를 담당하게 됩니다.
데이터 엔지니어 | 데이터 사이언티스트 |
확장가능한 데이터 아키텍처 개발 | 데이터로부터 패턴을 확인 |
데이터 수집 간소화 | 통계 모델링 |
데이터들을 한꺼번에 가져올 수 있는 프로세스 설정 | 머신러닝을 활용해서 예측 모델 개발 |
손상된 데이터 제거 | 비즈니스 프로세스 모니터링 |
클라우드 기술의 이해가 필요 | 데이터에서 이상치를 제거 |
2. Tools of the data engineer
데이터베이스는 많은 양의 데이터를 보유하는 컴퓨터 시스템입니다. 데이터 엔지니어가 주로 작업해야 할 부분이 이곳에 해당되기도 합니다. 또한 데이터베이스는 어플리케이션을 지원하기 위해 있기도 하고, 분석을 위해 사용되는 또 다른 데이터베이스도 존재합니다.
데이터베이스에서 데이터를 처리하는 방법에는 여러 가지가 존재합니다. 손상된 데이터를 제거하기도 하고, 데이터들의 평균을 구하는 등의 집계 함수를 적용하는 경우도 있으며, 다양한 데이터들을 결합하여 한 테이블로 만드는 작업을 하기도 합니다. 이 과정에서 데이터는 많은 클러스터에서 처리가 되게 됩니다. 보통 이렇게 클러스터에 의해 처리가 되는 구간은 spark를 활용할 수 있습니다.
데이터베이스는 어떤 과정을 수행하기 위해서는 특정 지점에 돌아갈 수 있도록 스케줄링을 지정하게 됩니다. 예를 들어, 어, 밤 12시가 되면 전 날의 데이터를 최신화를 한다던가, 다양한 작업을 예약할 수 있습니다. 어떤 작업의 경우 특정 순서에 의해서 처리가 되어야 할 때에는 그 순서를 지킬 수 있도록 지정해야 합니다. 이러한 작업들을 데이터 엔지니어가 관리하게 됩니다.
이렇게 다양한 데이터베이스 관련 작업을 위해 데이터베이스로는 대표적으로 MySQL, PostgreSQL 등이 있으며, 프로세싱 툴로는 Spark, HIVE 등이 있습니다. 스케줄링 툴로는 아파치 에어플로우 등이 존재합니다.
3. Cloud providers
클라우드 부분에 대한 설명은 이전에 들었던 강의와 내용이 동일해서 정리하지 않았습니다. 해당 내용을 참고하시는 것이 좋을 것 같습니다. 해당 링크는 여기를 눌러주세요.