반응형
지금까지의 내용에서는 데이터 파이프라인, 데이터 웨어하우스, 데이터 마트와 같이 전체 데이터 시스템을 설계하기 위해 필요한 개념들에 대해서 알아보았다. 이 챕터에서는 실제 데이터를 수집하고 스토리지에 저장하는 과정에 대해 배워보려 한다.
1. 벌크 형과 스트리밍 형의 데이터 수집
빅데이터 수집 방식에 대해 알아보기 전에 데이터가 저장되는 스토리지에 대한 기본 개념을 알아보자.
1-1. 빅데이터의 객체 스토리지
(1) 객체 스토리지(Object Storage)
- 객체 스토리지 구조
- 여러 대의 컴퓨터에서 파일을 여러 디스크에 복사하여 파일을 저장하는 방식
- 여러 디스크에 데이터를 복사하여 저장하기 때문에 데이터의 중복성을 가지고 있다.
- 하둡에서의 객체 스토리지는 HDFS 이며, 클라우드 서비스에서는 Amazon S3를 사용하고 있다.
(2) 객체 스토리지의 유의점
- 객체 스토리지에서는 네트워크를 통해 file read and write를 하므로, 소량의 데이터를 보관할 때는 객체 스토리지가 비효율적이다.
- 소량의 데이터를 계속 read and write 하게 되면 데이터양에 비해 통신 오버헤드가 커지기 때문이다.
그럼 빅데이터에서는 어떤 객체 분산 스토리지가 좋을까? 아래 두 가지 상황을 한번 고려해보자.
case1) 소량의 데이터가 계속 발생하는 경우 : 수시로 데이터가 객체 스토리지에 저장됨 → 빈번한 데이터 전송으로 스토리지 성능 저하 발생
case2) 지나치게 대량의 데이터가 한번에 발생하는 경우
: 데이터 저장을 위한 네트워크 전송 시간 증가 → 네트워크 관련 오류 발생률 증가 발생
결국, 적당한 규모 내에서의 데이터를 저장해야 객체 분산 스토리지의 효율성을 높일 수 있다. 이를 위해 수집한 데이터를 가공하여 효율이 높은 분산 스토리지를 만드는 과정을 ‘데이터 수집(Data Ingestion)’이라고 한다. 그럼 데이터 수집에서는 어떠한 단계적 과정과 개념이 있는지 알아보자.
1-2. 분산 스토리지로의 데이터 전송(벌크 형 / 스트리밍 형)
(1) 벌크 형 데이터 전송
- 데이터베이스, 파일 서버, 또는 웹 서비스에서 특정 방식(SQL, API, etc)을 통해 데이터를 추출하는 방식
- 과거의 전통적인 데이터 웨어하우스에서 사용하던 방식
- 일반적으로 벌크 형 데이터 전송에서는 ‘ETL 서버’를 이용한다.
- ETL 서버?
- SQL, API 등을 통해 추출한 데이터를 표준적인 포맷(=구조화된 데이터)으로 변환해주는 서버
- 일반적으로 ETL 도구, 스크립트 작성 등을 통해 데이터를 변환한다.
- 벌크 형 데이터 전송의 장점
- 데이터 전송 과정에서 오류 발생시 전송을 재실행 할 수 있다.
- 데이터 전송을 재실행 할 수 있어 신뢰성을 보장할 수 있다.
- 이러한 장점으로 정기적인 스케줄을 통해 실행되는 워크플로 관리 도구와 함께 사용된다.
(2) 스트리밍 형 데이터 전송
- 실시간으로 계속 전송되는 작은 데이터를 취급하는 방식
- 일반적으로 네트워크를 거쳐 전송되는 실시간 데이터를 취급한다.
- ex) 웹 브라우저, 스마트 기기, 디바이스에서 전송되는 데이터
- 스트리밍 형 데이터 전송에서의 메시지 배송(message delivery)?
- 스트리밍 형 데이터 전송의 공통점은 여러 클라이언트에서 실시간으로 작은 데이터가 전송되는 것이다.
- 이러한 전송 방식을 ‘메시지 배송’이라 하며 빈번한 전송으로 통신 오버헤드가 커지기 때문에 높은 성능의 서버를 요구하는 것이 특징이다.
- 작은 데이터를 계속해서 분산 스토리지에 바로 저장하는 것은 비효율적이므로 ‘메시지 큐(message queue)’와 ‘메시지 브로커(message broker)’에 일정 크기의 데이터가 모이면 분산 스토리지에 저장하게 된다.
📘참고 서적: [빅데이터를 지탱하는 기술]
니시다 케이스케 지음 / 정인식 옮김
반응형
'[기술서적]' 카테고리의 다른 글
[빅데이터를 지탱하는 기술] Chapter4.빅데이터의 축적 - (3) (0) | 2023.06.01 |
---|---|
[빅데이터를 지탱하는 기술] Chapter4.빅데이터의 축적 - (2) (0) | 2023.06.01 |
[빅데이터를 지탱하는 기술] Chapter3.빅데이터의 분산 처리 - (2) (0) | 2023.06.01 |
[빅데이터를 지탱하는 기술] Chapter3.빅데이터의 분산 처리 - (1) (0) | 2023.06.01 |
[빅데이터를 지탱하는 기술] Chapter2.빅데이터의 탐색 - (2) (0) | 2023.06.01 |