항상 백엔드 개발자만 꿈 꾸어왔던 내가 새로운 목표를 가지게 되었다. 현재 회사에서 우연치 않게 데이터 엔지니어링 포지션을 맡게되면서 인입되는 정말로 많은 데이터를 대상으로 DE 작업을 인수인계 받고 작은 업무부터 시작하다보니 흥미가 생겼다.
내가 가진 백엔드 지식과 함께 DE 포지션으로의 전환을 위해서 조금 더 기록을 할 예정이다.
데이터를 활용하는 모든 사람들을 위해 데이터를 저장, 가공 처리하는 직군
우리가 물을 사용할 수 있도록 배관을 만들어주는 배관공분들과 맥락이 같다 (물 = 데이터, 배관 = 데이터 ETL 파이프라인)
운영되고 있는 Database는 서비스를 위한 데이터를 저장하고, 장애가 나면 안되지만 복잡한 연산의 쿼리를 날리고 연산이 심해진다면 Database 서비스가 정상적으로 동작하지 않을 수 있다.
따라서, Database 보다 Data Warehouse (데이터 창고)에 데이터를 저장하는 추세다.
E -> 서비스의 로그 데이터 추출
T -> 데이터를 잘 사용할 수 있도록 변환해준다. (CSV -> JSON 형식)
L -> 변환한 데이터를 데이터 웨어하우스에 로드
데이터를 처리하는 대표적인 2가지 방법
배치 (Batch)
실시간 (Realtime, Streaming)
데이터 웨어하우스란 많은 양의 데이터를 관리하기 쉽게 만들어진 거대한 데이터베이스라고 생각할 수 있다.
그런데 데이터 웨어하우스에 데이터를 옮기면 끝인걸까?
데이터 웨어하우스에는 수많은 Table이 존재하고, 데이터 분석을 하는 사람들이 SQL 쿼리문을 작성하게 된다.
그러나, 비즈니스에 따라 다르겠지만,
이런 경우를 해결하기 위해서 사진에 보이는 데이터 마트(Data Mart) 를 구축한다.
그 외에, 시각화를 위해서 Tableau 같은 기술을 사용하기도 하지만, DE의 업무는 환경을 만들어주고 시각화 같은 경우는 DA의 영역이 맞다.
Data Product : Data 관련 제품 서비스
같은 경우가 있다. DE의 역활이 데이터만 손보는게 아니고 점점 소프트웨어 개발자의 영역까지 확장한다고 생각하면 된다.
마지막 문장이 좀 중요한거같다. 결국 상황마다 사용되는 기술은 다르기에 어떤 기술 스택을 사용할때 어떤 상황이여서 이런 기술을 사용했다를 설명하는게 더 좋은거같다.
출처:
카일 유투브