앎을 경계하기

[가짜연구소3기] Data Engineer

[가짜연구소 3기] 데이터 엔지니어링 - 3 The data pipeline

양갱맨 2021. 8. 22. 11:54

주제

데이터 파이프라인이 무엇인지, 무엇을 하는지, 왜 파이프라인이 중요한지, spotflix 사례를 통해 데이터파이프라인을 이해할 수 있었다.

ETL이 무엇이고 데이터파이프라인과의 차이에 대해 배웠다.


데이터 파이프라인

회사는 다양한 소스에서 데이터를 수집한다. 데이터 엔지니어는 수집된 데이터를 처리하고 저장한다.

이를 위해 파이프라인이 필요하다.

수집 - 처리 - 저장하는 일련의 과정을 효율적으로 자동화하게 되면 데이터 과학자는 정확하고 관련성 높은 최신의 데이터를 사용할 수 있게 된다.

이 과정이 쉽지 않기 때문에 데이터 엔지니어링의 역할이 중요해진다.

 

다시 한 번, 가상의 음악 스트리밍 회사 Spotflix를 보자.

Spotflix는 모바일에서 사용자의 행동, 청취 기록 등의 데이터를 수집할 수 있다.

모바일 앱 외에도 데스크탑 프로그램에서 데이터를 수집할 수도 있고 웹 사이트 자체에서도 데이터 수집이 가능하다.

그리고 회사 내 HR 관리 시스템과 같은 내부 사이트도 있을 것이다.

여러 소스(모바일, 데스크탑, 웹사이트)로부터 얻은 데이터는 데이터 레이크에 저장된다.

이 부분에서 3개의 파이프라인이 구축된다.

 

다음 데이터레이크의 데이터를 데이터베이스에 저장한다.

데이터베이스는 여러 개로 생성이 되는데, 예를 들어 아티스트 이름, 팔로우 수, 활동 정보 등을 포함하는 "artists" 데이터베이스가 있을 수 있고, 앨범 정보가 들어있는 "albums" 데이터베이스, 플레이리스트 이름, 포함된 노래, 생성날짜 등의 "playlists" 데이터베이스, 사용자 이름, 계정, 가입일 등의 "customers" 데이터베이스, spotflix의 직원 정보에 대한 "employees" 데이터베이스 등 여러 가지가 있을 수 있다.

총 9개의 파이프라인이 생성되었다.

이제 여기서 더 구체적으로 직원들을 부서 별로 다른 테이블을 구성하여 저장할 수 있다.

그리고 트랙 데이터베이스에 저장된 데이터가 올바른 형식인지 확인하여 데이터 과학자가 사용할 수 있는 깨끗한 데이터베이스를 새로 생성할 수 있다.

이런식으로 데이터 과학자가 분석을 하기 위해 데이터를 쉽게 사용할 수 있도록 세부적으로 처리하는 파이프라인을 구축하는 것이 데이터 엔지니어의 역할이다.

파이프라인은 데이터의 흐름을 효율적으로 만드는 것이라고 할 수 있다.

추출, 변환, 결합, 검증, 데이터 로딩은 자동화하고

사람의 개입, 에러, 데이터가 조직 내에서 흐르는 시간을 줄인다.


ETL과 파이프라인

"ETL"은 데이터 파이프라인을 설계할 때 사용되는 프레임워크이다.

  • E : extract data - 데이터 추출
  • T : Transform extracted data - 추출된 데이터 변환
  • L : Load transformed data to another database - 변환된 데이터를 새 데이터베이스에 로드

ETL은 데이터가 저장되기 전 수행되는 과정이다.

 

데이터 파이프라인은 한 시스템에서 다른 시스템으로 데이터를 옮기는 것이다.

  • ETL을 따를 수도 있고 아닐 수도 있다.
  • 데이터가 변환되지 않을 수 있다.
  • 응용 프로그램에 직접적으로 로딩될 수 있다.