빅 데이터의 3V+1V = Volume + Variety + Velocity + Value
|
빅 데이터의 성격 (3V = Volume, Variety, Velocity)
빅 데이터를 정의하는 기준으로 3V가 있다. 3V는 Volume, Variety, Velocity를 의미한다.
Volume은 빅 데이터의 크기를 나타낸다. 엄격하게 정의하고 있지는 않지만 일반적으로 빅 데이터는 30TB 혹은 그 이상의 데이터를 의미한다.
Variety는 빅 데이터의 다양성을 의미한다. Structured Data, Semi-Structured Data, Unstructured Data와 같은 다양한 성격의 데이터를 처리한다.
Velocity는 빅 데이터의 생성 및 처리가 빨라진 것을 의미한다.
3V에 Value를 더해 4V라고도 하며, Value는 빅 데이터를 활용해서 상당한 가치를 창출할 수 있다는 것을 의미한다.
빅 데이터 저장을 위한 전략: 분산 저장(Distributed Storage)
빅 데이터는 30TB 혹은 그 이상의 큰 규모의 데이터를 의미한다. 하지만, 시중에 나와 있는 단일 디스크(HDD, SSD)의 일반적인 크기가 1TB를 넘지 않는다. 따라서 빅 데이터를 저장하기 위해서는 단일 디스크의 시스템이 아니라 다수의 디스크를 병렬적으로 구성한 분산 저장 시스템이 필요하다.
분산 저장(Distributed Storage) 시스템은 다수의 디스크를 묶어서 관리한다. 그리고 빅 데이터를 일정 크기로 나누어서 분산된 디스크에 저장한다. 대표적으로 HDFS가 있으며, HDFS는 파일을 128MB의 블록으로 나누어서 디스크에 저장한다.
분산 저장에서 중요한 것은 데이터의 보존이다. 다수의 디스크를 묶어서 사용하는 과정에서 하나의 디스크가 고장 날 경우 분산 저장된 파일은 손상된다. 따라서 분산 저장 시스템에서는 파일을 블록 단위로 나눌 때, 블록의 복제본도 생성한다. 만일 특정 디스크에 문제가 발생하더라도 해당 디스크에 있는 블록의 복제본을 다른 디스크에서 찾아서 복원한다. 이러한 복원 시스템으로 1TB의 파일도 분산 저장 시스템에 저장될 때에는 3TB 혹은 4TB의 크기를 차지하게 된다. 따라서 분산 저장 시스템은 파일을 저장하는데 드는 비용(Storage Cost)을 고려하여서 설계된다.
분산 저장된 빅 데이터 처리하는 전략: 분산 병렬 처리(Distributed Parallel Processing)
분산되어 저장된 빅 데이터를 처리하기 위해서는 여러 디스크에 동시에 접근하여 처리하는 분산 병렬 처리(Distributed Parallel Processing)가 필요하다. 대표적인 분산 병렬 처리 기법으로는 Hadoop의 MapReduce 방법이 있다.
MapReduce는 분산된 디스크에서 필요한 처리를 하고 Shuffling 과정을 통해 일정한 키로 그룹핑한다. 동일한 키의 값들은 리듀스 단계에서 병합되어서 처리된다. 분산 병렬 처리는 동시에 여러 개의 디스크에서 처리가 발생한다는 점에서 처리량은 뛰어나지만 디스크 간 네트워크 연결로 인한 병목 현상이 발생할 수 있음에 유의해야 한다.