Book/빅데이터를 지탱하는 기술

빅데이터의 탐색 4-1. 벌크형과 스트리밍 형의 데이터 수집

쟈누이 2020. 12. 3. 01:38
반응형

데이터 전송에는 벌크형과 스트리밍 형의 두 종류의 도구가 사용된다.

 

1. 객체 스토리지와 데이터 수집

- 분산 스토리지에 데이터 읽어들이기

빅데이터는 대부분 확장성이 높은 분산 스토리지(distributed storage)에 저장된다.

분산형의 데이터베이스가 사용되는 경우도 있지만, 대부분은 대량으로 파일을 저장하기 위해

객체 스토리지(Object storage) 를 쓴다.

객체 스토리지는 다수의 컴퓨터를 사용하여 파일을 디스크에 복사함으로써 데이터의 중복화 및 부하 분산을 

실현한다.

 

대표적인 예시로 Hadoop 의 HDFS, 클라우드 서비스의 Amazon S3 가 있다.

객체 스토리지에서의 파일 읽고 쓰기는 네트워크를 거쳐서 실행한다. 데이터는 항상 여러 디스크에 복제되기 때문에 

일부 하드웨어가 고장나더라도 데이터 손실을 걱정할 필요는 없다.

객체 스토리지의 경우 데이터 양이 많을 때는 우수하지만, 소량의 데이터에 대해서는 매우 비효율적이다.

왜냐하면 각 스토리지간 통신을 하면서 데이터를 저장하기 때문에, 데이터양이 작을 경우 통신 오버해드가 너무 크기 때문이다.

 

- 데이터 수집

빅데이터로 자주 다루는 것은 시계열 데이터이며, 파일의 크기에 따라 모아서 큰 파일로 처리할 것인지,

쪼개서 실시간으로 처리할 것인지 정하는 것이 좋다. 

빅데이터는 나중에 처리하기 쉽도록 준비해둘 필요가 있는데, 이를 위해 데이터를 가공하여 집계 효율이 좋은

분산 스토리지를 만드는 일련의 프로세스를 데이터 수집 이라고 한다. 

 

 

1) 벌크형의 데이터 전송

- ETL 서버의 설치 필요성

데이터 전송 구조에는 벌크형과 스트리밍 형 두가지 종류가 존재함

기술적인 특성, 사용되는 도구도 전혀 다르므로 벌크형과 스트리밍 형의 성질을 이해한 다음 구분해서 사용해야 한다.

 

전통적인 데이터 웨어하우스에서 사용된 것은 '벌크형' 방식으로 데이터베이스나 파일 서버 또는 웹 서비스 등에서 데이터를 추출한다. 빅데이터를 다루는 경우 축적된 대량의 데이터가 있는 경우, 기존의 데이터베이스에서 데이터를 추출할 경우 벌크 형의 데이터 전송을 실시

 

데이터 전송을 위해서는 ETL 서버를 따로 설치해야한다. ETL 서버에는 구조화된 데이터 처리에 적합한 데이터 웨어하우스를 위한 ETL 도구를 통해 데이터를 전송한다.

 

- 파일 사이즈의 적정화는 간단하다

ETL 프로세스는 하루 또는 시간마다 장해진 간격으로 실행이 되므로 축적된 데이터는 하나로 모인다.

다수의 파일을 전송할 경우에는 최대한 모아서 전송하는 것이 효율적이고, 많은 양의 데이터를 전송할때는 여러 작은 테스크로 분해해서 한번에 많은 테스크가 실행되지 않도록 조정한다. 워크플로 관리도구를 사용하여 이 테스크를 관리하면 효율적으로 ETL 작업을 진행할 수 있다.

 

2) 데이터 전송의 워크플로

데이터 전송의 신뢰성이 중요한 경우에는 가능한 벌크형 도구를 사용하는 것이 좋다. 추후 재실행하기 쉽지 않은 스트리밍 형의 데이터 전송에 비해 벌크형 전송은 여러번 데이터 전송을 재 실행할 수 있다는 장점이 있다. 

 

벌크형의 데이터 전송은 워크플로 관리 도구와 궁합이 뛰어나다. 스트리밍 전송은 특성상 실시간 동작을 전제로 하기에 워크플로 작업으로 실행하지 않지만, 과거의 데이터를 가져오거나, 실패한 작업 재실행을 고려하면 벌크형 전송을 해야한다.

 

2. 스트리밍 형의 데이터 전송

- 계속해서 전송되는 작은 데이터를 취급하기 위한 데이터 전송

웹 브라우저, 모바일 앱, 센서 기기등의 디바이스에서 데이터를 수집한느 경우 스트리밍 형의 데이터 전송을 우선적으로 고려해본다. 스트리밍 전송의 경우 작은 데이터들이 실시간으로 전송되는 것이고, 이를 메시지 전송이라 불린다. 메시지 전송은 데이터량에 비해 통신을 위한 오버헤드가 커지기 때문에 이를 처리하는 서버는 높은 성능을 요구한다.

 

이러한 메시지는 NoSQL 또는 메시지 큐와 메시지 브로커 등의 중계 시스템에 저장햇다가 일정한 간격으로 추출하여 분산 스토리지에 저장할 수 있다. 

반응형