아래 포스팅은 DZone의 What Is a Data Pipeline? 을 번역하였습니다.
url : https://dzone.com/articles/what-is-a-data-pipeline
이번 포스팅에서는 데이터파이프라인에 대해서 정의하고 데이터파이프라인을 통해 추구하는 바를 알아보고자 한다.
데이터를 효과적으로 가져오는 것은 오늘날 Data-driven enterprise의 큰 숙제이다. 데이터를 어느 한 지점에서 특정공간까지 가져오는 데에 많은 장애물들(중복 유실 등)이 있으며 가져오려는 지점이 많아지면 많아질수록 더욱 문제가 복잡해진다.
데이터 파이프라인 : 효율을 위한 작업
데이터 파이프라인의 시작은 왜, 어디에서, 어떻게 데이터를 수집할 것인가에서 부터 시작한다.
데이터 파이프라인을 구축하기 위해서는 여러 소프트웨어적인 수동 작업들을 제거해야하며 Data가 각 지점을 순조롭게 흐르도록(flow) 만들어야 한다. Data의 추출(extracting), 변경(transforming), 결합(combining), 검증(validating) 그리고 적재(loading)하는 과정들을 자동화 하는 것이다. 또한 여러 데이터 스트림을 한번에 처리해야 한다. 이 모든 과정은 오늘날 data-driven enterprise에서 필수적이다.
데이터파이프라인은 모든 종류의 스키마의 데이터를 수용해야한다. 입수하고자 하는 파일이 static source든 real time source이든 데이터파이프라인에서는 해당 파일의 데이터는 작은 단위(chnk)로 들어와서 병렬로 처리된다.
데이터 파이프라인과 ETL의 차이는?
아마 이 글을 보는 독자는 ETL이라는 단어를 들어봤을 것이다. ETL은 추출(Extract), 변환(Transform), 적재(Load)의 줄임이다. ETL시스템은 하나의 시스템에서 data를 추출하고, data를 변환하여 database나 data warehouse에 적재한다. 레거시 ETL 파이프라인은 보통 배치로 작동하고 큰 덩어리의 data를 특정 시간에 한 공간에 저장하는 작업을 한다. 예를 새벽 12:30에 시스템 트래픽이 낮아질 때 배치가 돌아서 데이터를 모아 적재하는 작업이 있을 수 있다.
반면에, 데이터 파이프라인은 ETL을 서브셋으로 포함하는 광범위한 용어다. 데이터를 한 시스템에서 또다른 시스템으로 옮기는 작업을 뜻한다. 해당 데이터는 transform되는 경우도 있고 안하는 경우도 있다. 또한 실시간성으로 처리하는 것도 있고 배치성으로 처리할수도 있다. 데이터가 지속적으로 흘러서 업데이트되는 경우가 있는데 traffic 센서 모니터링과 같은 경우를 예로 들 수 있다. 데이터 파이프라인을 통해 가져온 데이터는 database나 data warehouse에 쌓지 않는 경우도 있고 혹은 다중으로 데이터를 쌓는 경우도 있다.
'빅데이터' 카테고리의 다른 글
스트림 프로세싱 with Faust - Table (0) | 2019.11.21 |
---|---|
스트림 프로세싱 with Faust - Processors, Operations (0) | 2019.11.21 |
스트림 프로세싱 with Faust - kafka consumer/producer (1) | 2019.11.21 |
AWS에서 공개한 Data validation library 소개 - Deequ (0) | 2019.09.27 |
Fluentd로 데이터파이프라인 구축하기 kafka→kafka→s3 (1) | 2019.09.17 |
Fluentd vs Telegraf 차이점 알아보기 (0) | 2019.09.16 |