데이터 파이프라인이란?
데이터 파이프라인은 다양한 소스에서 새로운 가치를 얻을 수 있는 대상으로 데이터를 옮기고 변환하는 일련의 과정이다.
=> 이는 분석, 리포팅, 머신러닝 능력의 기초가 됨
데이터 파이프라인의 복잡성은 원본 데이터의 크기와 상태, 구조 및 분석 프로젝트의 요구상항에 따라서도 달라짐
=> 가장 단순한 형태의 파이프라인은 REST API처럼 단일 소스에서 데이터를 추출하고 데이터 웨어하우스의 SQL 테이블과 같은 대상으로 데이터를 로드하는 것임!
실제로 파이프라인은 일반적으로 데이터 추출, 데이터 가공, 데이터 유효성 검사를 포함한 여러 단계로 구성되며, 때로는 데이터를 최종 목적지로 전달하기 전에 머신러닝 모델을 학습하거나 실행하는 단계가 있기도 함
누가 파이프라인을 구축할까?
1. 클라우드 컴퓨팅 SaaS(Software as a Service)가 대중화되면서 조직에서 파악해야 할 데이터 소스가 폭발적으로 증가
2. 머신러닝 모델과 데이터 과학 연구, 시간에 민감한 통찰력을 제공하는 데이터에 대한 수요 증가
이런 상황속에서 데이터 엔지니어는 분석 생태계를 뒷받침하는 데이터 파이프라인을 구축하고 유지관리하는 데 전문적인 역량을 갖추고 있다
데이터 엔지니어의 목적은 단순히 데이터를 데이터 웨어하우스에 로드하는 것이 아니라 데이터 과학자 및 분석가와 긴밀히 협력하여 데이터를 어떻게 처리해야 하는지 파악하고 요구사항을 확장 가능한 프로덕션 상태로 전환하는 데 도움을 줌!
데이터 엔지니어의 특정 기술은 조직에서 사용하는 기술 스택에 따라서 달라지지만 우수한 데이터 엔지니어가 보유하고 있는 공통적인 기술이 있다
1. SQL과 데이터 웨어하우징 기초
숙련된 데이터 엔지니어는 고성능의 SQL 작성 방법을 알고 데이터 웨어하우징 및 데이터 모델링의 기본 사항을 이해한다
2. 파이썬 또는 자바
데이터 엔지니어가 능숙하게 사용하는 언어는 팀에서 사용하는 스택에 따라 달라지지만,
아무리 좋은 툴을 보유하고 있더라도 '코드 없이' 작업을 수행할 수는 없다!
=> 파이썬과 자바가 현재 데이터 엔지니어링에서 우위를 점하고 있지만 고(Go)와 같은 신예들이 등장하고 있음
3. 분산 컴퓨팅
데이터 양이 많아지고 데이터를 신속하게 처리하고자 하는 요구사항이 늘어나면서 데이터 엔지니어들은 분산 컴퓨팅 플랫폼을 사용하기 시작했다
(분산 컴퓨팅은 여러 시스템의 성능을 결합하여 대량의 데이터를 효율적으로 저장, 처리 및 분석함)
분석에서 분산 컴퓨팅의 대표적인 예는 하둡 분산 파일 시스템(HDFS)을 통한 분산 파일 스토리지, 아파치 스파크등 여러 분산 처리 프레임워크가 존재한다.
=> 모든 데이터 파이프라인이 분산 컴퓨팅을 사용해야 하는 것은 아니지만, 데이터 엔지니어는 이런 프레임워크를 언제 어떻게 활용해야 하는지 알아야함
4. 기본 시스템 관리
데이터 엔지니어는 리눅스 명령줄에 능숙해야 하며 응용 프로그램 로그 분석, 방화벽 및 기타 보안 설정의 문제 해결과 같은 작업을 수행할 수 있어야 함
AWS나 Azure, Google Cloud와 같은 클라우드 제공업체에서 전반적으로 작업하는 경우에도 해당 기술을 사용해서 클라우드 서비스와 함께 데이터 파이프라인을 배포하게 됨
왜 데이터 파이프라인을 구축할까?
분석 외부에 있는 대부분 사람들은 분석 워크플로의 최종 결과물만을 보기 때문에 자신에게 보이는 것을 생성하기 위해 봉지 않는 복잡한 기계가 있다는 것을 인식하지 못한다
=> 데이터 분석가가 생성하는 모든 대시보드와 데이터 과학자가 개발한 각 예측 모델에는 뒷단에서 작동하는 데이터 파이프라인이 있다!
데이터 파이프라인은 단순히 원본에서 데이터를 추출하여 분석가가 사용할 수 있도록 단순한 데이터베이스 테이블이나 플랫 파일로 로드하는 것 이상을 수행한다
(원본 데이터는 정리, 정형화, 정규화, 결합, 집계, 마스킹 또는 보안을 위해 정제됨)
데이터 분석가나 과학자가 프로젝트를 시작할 때 데이터 처리, 다양한 정보 출처, 데이터 준비에 분석 재능을 낭비할 위험이 크기 때문에
데이터 파이프라인을 구축해서 적절한 데이터가 제공되도록 보장하여 나머지 분석 조직이 가장 잘 하는 일에 집중할 수 있게 해준다!
어떻게 파이프라인을 구축할까?
데이터 엔지니어의 등장과 함께 최근 데이터 파이프라인을 구축하고 지원하기 위한 수많은 툴이 등장하고 있다
=> 오픈소스, 상업용, 자체 개발 제품 (파이프라인이 작성된 언어도 전부 다름)
파이프라인은 단순히 구축되는 것이 아니라 모니터링, 유지 관리 및 확장된다
=> 데이터 엔지니어는 데이터를 한 번만 제공하는 것이 아니라 파이프라인을 구축하고 이를 안정적이고 안전하게 제시간에 제공하고 처리하는 인프라를 지원해야 함
'Data Engineering > Data Pipeline' 카테고리의 다른 글
데이터 수집 : 데이터 로드 (1) | 2024.07.03 |
---|---|
데이터 수집 : 데이터 추출 (MongoDB, REST API, 카프카 및 Debezium) (1) | 2024.07.02 |
데이터 수집 : 데이터 추출 (MySQL) (1) | 2024.06.29 |
일반적인 데이터 파이프라인 패턴 (1) | 2024.05.15 |
최신 데이터 인프라 (0) | 2024.05.12 |