책 & 스터디
데이터 파이프라인 핵심 가이드 1, 2챕터 요약
haong_
2022. 8. 2. 18:25
1. 데이터 파이프라인 소개
데이터 파이프라인이란?
- 다양한 소스에서 새로운 가치를 얻을 수 있는 대상으로 데이터를 옮기고 변환하는 일련의 과정이다. 분석, 리포팅, 머신러닝 능력의 기초가 된다.
- 데이터 파이프라인은 일반적으로 데이터 추출, 데이터 가공, 데이터 유효성 검사를 포함한 여러 단계로 구성되며, 때로는 데이터를 최종 목적지로 전달하기 전에 머신러닝 모델을 학습하거나 실행하는 단계가 있기도 하다.
한마디로 언제든지 필요한 데이터를 가져와 꺼내 쓸 수 있도록 데이터를 쌓아두는 파이프를 만드는 것이라고 보면된다.
데이터 엔지니어의 역할
- 클라우드 컴퓨팅과 Saas(Software as a service) 가 대중화되면서 조직의 데이터 소스가 폭발적으로 증가
- 머신러닝 모델과 데이터 과학 연구, 데이터에 대한 수요도 그 어느 때보다 높아짐
- 데이터 파이프라인을 구축하고 유지관리
- 데이터 과학자 및 분석가와 긴밀히 협력하여 데이터를 어떻게 처리해야 하는지 파악하고 요구사항을 확장 가능한 프로덕션 상태로 전환하는데 도움
- 고성능의 SQL 작성 방법을 알고 데이터 웨어하우징 및 데이터 모델링의 기본 사항 이해
- 리눅스 명령줄에 능숙, 응용 프로그램 로그 분석, 크론 작업 예약, 방화벽 및 기타 보안 설정의 문제 해결 작업 수행
분산 컴퓨팅
- 데이터 양이 많아지고 데이터를 신속하게 처리하고자 하는 요구사항이 늘어남 → 분산 컴퓨팅 플랫폼 사용
- 하둡 분산 파일 시스템(HDFS), 맵리듀스, 아파치 스파크(분산 처리 프레임워크)
데이터 파이프라인
- 원본에서 데이터를 추출하여 분석가가 사용할 수 있도록 단순한 데이터베이스 테이블이나 플랫 파일로 로드하는 것 이상을 수행
- 데이터를 한 번만 제공하는 것이 아니라 파이프라인을 구축하고 이를 안정적이고 안전하게 제시간에 제공하고 처리하는 인프라를 지원
2. 최신 데이터 인프라
데이터 소스의 다양성
시스템을 구축 할 때 데이터 수집을 고려하여 설계하여야 한다.(데이터 수집이 시스템에 의도하지 않는 부하를 가하는지, 데이터를 점진적(increment)로 로드 할 수 있는지 등)
인터페이스
- 애플리케이션 뒤에 있는 데이터베이스 (Postgres, MySQL)
- REST API와 같은 시스템 상단의 추상화 계층
- Apache Kafka와 같은 스트림 처리 플랫폼
- csv, 공유 네트워크 파일 시스템(NFS), 클라우드 스토리지 버킷
- 데이터 웨어하우스 / 데이터 레이크
- HDFS, HBase 데이터베이스의 데이터
데이터 구조
- RESP API의 JSON
- MySQL 데이터베이스의 잘 구성된 데이터
- MySQL 데이터 베이스 테이블의 열 내의 JSON
- 반정형화된 로그 데이터
- CSV, 고정 폭 형식(FWF) 및 기타 플랫 파일 형식
- 플랫 파일의 JSON
- Kafka의 스트림 출력
데이터 사이즈
- 대부분의 조직에서는 큰 데이터보다 작은 데이터세트를 더 중요하게 생각하며 사이즈가 크다고 가치가 높은 것은 아니다.
- 대용량, 소용량 두가지로만 나눠 생각하기 보다 스펙트럼 측면에서 생각하는 것이 좋다.
데이터 클렌징 작업과 유효성 검사
- garbage in, garbage out
- 지저분한 데이터
- 중복되거나 모호한 레코드
- 고립된 레코드
- 불완전하거나 누락된 레코드
- 텍스트 인코딩 오류
- 일치하지 않는 형식 ( - 가 포함된 전화번호와 없는 전화번호)
- 레이블이 잘못되었거나 레이블이 지정되지 않은 데이터
클라우드 데이터 웨어하우스 및 데이터 레이크
주요 퍼블릭 클라우드 공급업체(Amazon, Google, Microsoft)의 등장이 데이터 웨어하우징 환경을 변화 시켰다.
데이터 웨어하우스
- 사용자가 원하는 질문에 대답할 수 있는 데이터 분석 활동을 지원하기 위해 서로 다른 시스템의 데이터가 모델링되어 저장되는 데이터베이스
- 리포팅 및 분석 쿼리를 위해 데이터를 정형화, 최적화
데이터 레이크
- 데이터 웨어하우스처럼 데이터 구조나 쿼리 최적화가 필요 없는 데이터 저장소
- 대량의 데이터가 포함
- 리포팅 및 분석을 위해 데이터 저장
동일 데이터 생태계에서 데이터 웨어하우스와 데이터 레이크를 모두를 수용 할 수 있는 공간이 있음.
데이터 파이프라인이 둘 사이에서 데이터를 이동하는 경우 많음.
데이터 수집 도구
- Singer
- Stitch
- Fivetran
이러한 툴이 널리 보급되어 있음에도 비용, 직접 구축을 선호, 외부 공급업체 신뢰에 따른 보안적 위험의 경우 때문에 자체 프레임워크를 직접 개발하기도 한다.
데이터 변환 및 모델링 도구
데이터 변환
- ETL 또는 ELT 프로세스에서 Transform에 해당하는 용어이다.
데이터 모델링
- 보다 구체적인 데이터 변환 유형이다. 데이터 모델은 데이터 분석을 위해 데이터를 이해하고 최적화된 형식으로 정형화하고 정의한다
- 일반적으로 데이터 웨어하우스에서 하나 이상의 테이블로 표시.
워크플로 오케스트레이션 플랫폼
파이프라인에서 작업의 스케줄링 및 흐름을 관리해줌.
방향성 비순환 그래프 (DaGs)
- 파이프라인 단계는 항상 방향성을 가진다. 하나 또는 여러개의 작업으로 시작하여 특정 작업으로 끝난다.
- 모든 종속 작업이 완료되어야만 그 다음 작업이 실행.
- 비순환 그래프. 작업은 되돌아갈 수 없고, 다음 작업으로만 갈 수 있다.
데이터 인프라 커스터마이징
- 비용, 엔지니어링 리소스, 보안 및 법적 리스크 허용 범위와 그에 대한 트레이드오프를 이해해야 한다.