일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- DBT
- spark
- CDC
- 카프카
- 도커
- 윈도우
- Materializations
- UI for kafka
- 쿠버네티스
- 파이썬
- KubernetesPodOperator
- kafka
- k9s
- query history
- polars
- 동적 차트
- mysql
- numpartitions
- 모바일
- Java
- bar cahrt
- airflow
- 크롤링
- spring boot
- freshness
- proerty
- dbt_project
- docker
- Python
- ksql
- Today
- Total
데이터 엔지니어 이것저것
데이터 파이프라인 본문
데이터 파이프라인이란?
- 다양한 소스에서 새로운 가치를 얻을 수 있는 대상으로 데이터를 옮기고 변환하는 일련의 과정
수집 인터페이스
- Postgresql, Mysql 같은 데이터 베이스
- REST API
- Kafka 같은 스트림 처리
- log, csv 같은 파일 및 기타 플랫 파일 시스템 또는 클라우드 스토리지 버킷(S3)
- 데이터 웨어하우스 또는 데이터 레이크
- HDFS, Hbase
데이터 구조
- REST API 의 JSON
- Mysql의 잘 구성된 데이터
- Mysql 열 내의 JSON
- 반 정형화 된 로그 데이터
- csv, fwf 및 기타 플랫 파일
- JSON
- Kafka 스트림 출력
데이터 웨어하우스
사용자가 원하는 질문에 대답할 수 있는 데이터 분석 활동을 지원하기 위해 서로 다른 시스템의 데이터가 모델링되어 저장되는 데이터베이스다. 데이터 웨어하우스의 데이터는 리포팅 및 분석 쿼리를 위해 정형화되고 최적화된다.
데이터 레이크
데이터가 저장되지만 데이터 웨어하우스처럼 데이터 구조나 쿼리 최적화가 필요 없는 곳이다.
다양한 데이터 유형뿐만 아니라 대량의 데이터가 포함될 가능성이 있다.
데이터 모델링과 데이터 변환
- 데이터 변환
데이터 변환은 ETL 또는 ELT 프로세스에 해당되는 광범위한 용어.
간단하게는 타임스탬프를 변환하는것부터 비지니스 로직을 통해 필터링된 여러 원본 열을 바탕으로 새로운 지표를 생성하는 것까지 여러 작업이 있다. - 데이터 모델링
보다 구체적인 데이터 변환, 데이터 모델은 데이터 분석을 위해 데이터를 이해하고 최적화된 형식으로 정형화 하고 정의 한다. 일반적으로 데이터 웨어하우스에서 하나 이상의 테이블로 표시
워크플로 오케스트레이션 플랫폼
아파치 에어플로우, 루지, 글루 같은 플랫폼은 좀 더 일반적인 용도로 설계되어 다양한 데이터 파이프라인에 사용된다.
일반적인 데이터 파이프라인 패턴
ETL 과 ELT
추출(extract), 로드(load), 변환(transform)
과거 데이터양이 적었을 때에는 추출과 거의 동시에 변환을 하여 저장을 하였으나,
데이터 양이 많아지고, 해당 스토리지와 컴퓨터 자원이 발전하여 일단 저장후 변환을 하는 방식으로 바뀌고 있다.
- EtLT
- 데이터 중복 제거
- URL 파라미터등 개별 구문 분석
- 민감한 데이터(개인정보 등) 마스킹 또는 난독화
데이터 분석을 위한 ELT
ELT는 가장 일반적으로 가장 최적의 패턴으로 되어있다.
변환 과정을 나중으로 넘김으로써 분석가에게 더 많은 옵션과 유연성을 제공할 수 있다.
데이터 과학을 위한 ELT
데이터 과학자는 데이터 분석가보다 더 세분화된(때론 원본) 데이터에 액세스해야 한다.
분석가가 지표를 생성하고, 대시보드를 강화하는 데이터 모델을 구축하는 동안 데이터 과학자는 데이터를 탐색하고 예측 모델을 구축한다.
데이터 변환 과정에서 분석가를 위한 일부 데이터 모델을 사용하여 이점을 얻을 수 있지만, 그보다 추출-로드 중에 획득한 많은 데이털르 분기하여 사용할 가능성이 높다.
데이터 제품 및 머신러닝을 위한 ELT
- 비디오 스트리밍 홈 화면을 구동하는 콘텐츠 추천 엔진
- 웹사이트의 개인화된 검색 엔진
- 리뷰에 대한 감성 분석을 수행하는 어플리케이션
머신러닝 파이프라인 단계
데이터 수집 -> 데이터 전처리 -> 모델 교육 -> 모델 배포
데이터 변환하기
ELT 패턴에서 데이터가 데이터 레이크 또는 데이터 웨어하스로 수집되며, 파이프라인의 다음 단계는 데이터 변환이다.
파이프 라인의 목적이 비지니스 통찰력 또는 분석을 생성하는 것이라면, 비 문맥적 변환 외에도 데이터가 데이터 모델로 추가 변환된다.
비문맥적 변환
- 테이블의 중복 레코드 제거
- 중복 수집으로 인한 경우
- 원본 시스템에서 중복 레코드가 실수로 생성된 경우
- backfilled 데이터가 로드된 후속 데이터와 겹치는 경우
- URL 매개변수 구문 분석
중복 제거의 경우 SQL로 제거하는것이 가장 좋다.
기본적으로 group by having count > 1
또는 ROW_NUMBER 파티션 기능을 사용할 수도 있다.
데이터를 언제 변환할 것인가
- 변환은 SQL 이외의 언어를 사용하여 수행하는것이 가장 쉽다
- 변환은 데이터 품질 문제를 해결한다
기본적으로 데이터 수집과 변환을 별도로 분리하는 것이 가장 좋다.
데이터 모델링 기초
주요 모델링 용어
측정 : 측정하고 싶은 것, eg) 고객 수와 수익의 달러 가치
속성 : 보고서 또는 대시보에서 필터링하거나, 그룹화 할려는 항복 eg) 날씨, 고객명, 국가 코드
데이터 모델의 세분성(granularity)
세분성은 데이터 모델에서 저장된 세부 정보 수준을 말한다.
eg) 매일 주문 수를 제공해야한다면, 일일 단위
가장 바쁜 시간대(주문 수)의 경우 시간단위
'기타' 카테고리의 다른 글
Dynamo: Amazon’s Highly Available Key-value Store (0) | 2022.11.21 |
---|---|
Delta Lake란? (0) | 2022.09.20 |
[미완성]토이프로젝트 : ? (음식 관련 주제) (0) | 2022.02.17 |
homelab (0) | 2022.01.25 |
NiFi란 (0) | 2022.01.02 |