데이터 엔지니어링의 바이블이라 할 수 있는 책 "빅데이터를 지탱하는 기술"을 학습하고 정리한 글입니다.
여기서는 "빅데이터 기술"이 기존의 솔루션과 어떻게 다른지와 새롭게 등장하는 용어들에 대하여 정리하겠습니다.
빅데이터 기술
- 분산 시스템을 활용해서 데이터를 가공해 나가는 구조
데이터 파이프라인
일반적으로 차례대로 전달해나가는 데이터로 구성된 시스템을 "데이터 파이프라인"이라고 합니다.
- 어디에서 데이터를 수집, 무엇을 실현하고 싶은지에 따라 변화
- 데이터 수집에서 워크플로 관리까지
데이터 수집
데이터 파이프라인의 시작은 데이터를 모으는 단계에서 부터 시작합니다.
데이터는 여러 장소에서 발생하며 각각 다 다른 형태를 보입니다.
- 데이터베이스에 쓰인 거래처 데이터
- 파일 서버에 축적된 로그 파일
- 스마트 폰에서 모여진 이벤트 데이터
- 센서 데이터
- 등등..
이렇게 수집된 데이터를 전송하는 방식은 크게 두가지가 있습니다.
- 벌크(bulk) 형
- 스트리밍(streaming) 형
벌크(bulk)형
이미 어딘가에 존재하는 데이터를 정리해 추출하는 방법입니다.
데이터베이스와 파일 서버 등에서 정기적으로 데이터를 수집하는데 사용합니다.
스트리밍(streaming)형
차례차례로 생성되는 데이터를 끊임없이 계속해서보내는 방법으로 모바일 애플리케이션과 임베디드 장비에서 수집하는데 사용됩니다.
스트림처리
스트리밍형 방법으로 받은 데이터를 실시간으로 처리하는 방법입니다.
과거 30분간 취합한 데이터를 집계하여 그래프를 만들려면 "시계열 DB"와 같은 실시간 처리를 위한 데이터베이스가 자주 사용됩니다.
그림에서 볼 수 있듯이 스트림처리를 한 데이터가 "시계열 DB"에 저장되는 것을 확인할 수 있습니다.
배치 처리
주기적으로 대량의 반복적인 데이터 작업을 하는 것을 말합니다.
스트림처리와 같이 데이터를 실시간으로 처리하는 것이 아니라 일괄적으로 모아 처리합니다.
일반적으로 하루가 끝날 때나 야간과 같이 컴퓨터 사용량이 적은 시간에 배치처리를 합니다.
분산 스토리지
벌크형이나 스트리밍형으로 수집된 데이터는 분산스토리지에 저장됩니다.
분산 스토리지란 여러 컴퓨터와 디스크로부터 구성된 스토리지 시스템을 말합니다.
- 대표적인 것은 "객체 스토리지"로 한 덩어리에 모인 데이터에 이름을 부여해서 파일로 저장하는 "Amazon S3"가 있습니다.
NoSQL 데이터 베이스 또한 분산 스토리지로 사용될 수 있습니다.
데이터를 다루는 많은 사람들은 SQL
을 이용하여 데이터를 집계하는데
분산 스토리지에서 SQL
로 데이터를 집계할 수 있습니다.
- Hive
- Presto
- Impala
분산 데이터 처리
분산 스토리지에 저장된 데이터를 처리하기 위해서는 분산 데이터 처리의 프레임워크가 필요합니다.
"MapReduce"가 사용된것이 바로 이부분입니다.
"MapReduce"는 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하였고, Hadoop
에도 적용이 되었습니다.
여러대의 저성능 컴퓨터로 구성된 클러스터 환경에서 데이터를 병렬로 처리하는 방식입니다.
100만큼의 일을 한개의 컴퓨터가 처리하는 것이 아니고 4대의 컴퓨터에 25씩 나누어서 처리하는 방식이라고 생각하면 됩니다.
분산 처리를 마친 데이터는 데이터마트나 외부 데이터 베이스, 데이터 웨어하우스에 저장됩니다.
이러한 과정을 "ETL(Extract-Transform-Load) 프로세스"라고 합니다.
"ETL 프로세스"는 데이터를 추출(Extract)하고 그것을 가공(Transform)한뒤 데이터 웨어하우스에 로드(Load)하는 것을 말합니다.
워크플로 관리
위에서 설명한 전체적인 데이터 파이프라인을 관리하기 위해서는 "airflow"와 같은 워크플로 관리 도구를 사용합니다.
매일 정해진 시간에 배치 처리를 스케쥴대로 실행하고 만약 오류가 발생한다면 관리자에게 통지하는 것을 목적으로 합니다.
'데이터 엔지니어링' 카테고리의 다른 글
[빅데이터를 지탱하는 기술] 빅데이터의 탐색 # 1 (0) | 2023.05.16 |
---|---|
[빅데이터를 지탱하는 기술] 빅데이터 시대의 데이터 분석 # 2 (0) | 2023.04.18 |
[빅데이터를 지탱하는 기술] 배경 (0) | 2023.04.11 |
[빅데이터를 지탱하는 기술] 트위터 API를 이용한 데이터 파이프라인 만들기 # 7 (0) | 2023.03.29 |
[빅데이터를 지탱하는 기술] 트위터 API를 이용한 데이터 파이프라인 만들기 # 6 (0) | 2023.03.28 |