엄청난 발생 속도와 대용양의 빅데이터를 일괄처리 하기 위해서는 다양한 최신 기술들이 사용되고 있다. 각 기술에는 어떤 것들이 있으며 가능하면 특징과 장점들을 소개해 보고자 한다.
1. 하둡
빅데이터 기술을 공부하면 가장 먼저 등장하는 단어가 하둡이다. 하둡이란 간단히 말하면 오픈소스로 공개된 대규모 데이터의 분산 처리 기술을 말한다. 빅데이터 처리를 위해서는 대량의 비 구조화 데이터 처리가 필요한데 이러한 비 정형 데이터 처리 성능이 매우 뛰어나며, 저 비용과, 용량 증가에 잘 대응하도록 스케일 아웃이 가능하다는 장점이 있다. 영어로는 Hadoop Distributed File System 이라고 하는데 분산 파일 시스템, 분산 병렬용 맵리듀스로 구성되어 있다. 맵리듀스에 관해 좀 더 설명하자면 맵리듀스는 분산 처리라는 처리 방식을 말하는 것이고 하둡은 맵리듀스를 오픈소스로 구현해논 프레임워크를 말한다. 따라서 맴리듀스는 하둡만이 아니라 다른 것으로도 구현 가능하다는 것이다.
하둡의 특징은 고성능 프로세스와 저장장치가 탑재된 비싼고 성능 좋은 컴퓨터가 아니라 일반 저 사양의 컴퓨터 여러 대를 가지고 클러스터를 구성해서 빅데이터를 분산 처리 할 수 있는 프레임워크이다. 그리고 클러스터를 구성하는 어느 노드에서든 실행 가능한 보다 작은 단위의 워크로드로 분할해서 어플리케이션을 다수의 노드에 할당 하므로 매우 빠른 속도로 데이터를 처리하게 된다.
2. NoSQL
하둡과 함께 관심이 높아지고 있는 기술 중 하나 이다.
SQL이라는 질의 언어는 관계형 데이터베이스를 조작하는 언어이다. 하지만 NoSQL 은 데이터베이스에서 SQL을 사용하지 않는 비관계형 데이터베이스를 의미한다. 대표적으로는 Hbase, Cassandra, MongDB 등이 있다. 전통적으로 사용하던 RDBMS 와 NoSOL은 다음과 같은 차이가 있다. 데이터타입은 RDBMS 는 구조화 데이터이며, NoSQL은 비구조화 데이터이다. 스키마는 RDBMS에서는 사전에 관계 정의가 필요하지만 NoSQL은 사전에 관계 정의가 필요 없고 변경이 유연하다. 즉 스키마가 필요 없다. 확장성은 RDBMS는 스케일 업이 기본이므로 성능 저하가 눈에 뛴다. NoSQL에서는 스케일 아웃으로 대량 데이터에 따른 성능 저하가 적고 선형적으로 확장 가능하다. 이처럼 기본적으로 많은 차이가 발생하며 데이터 양에서 RDBMS는 상대적으로 소규모 데이터에 적합하고 NoSQL 은 상대적으로 대규모 데이터에 더 적합하다고 할 수 있다.
따라서 NoSQL의 특징은 데이터 구조가 단순하며, 스키마 정의가 불필요하고, 데이터의 일관성이 엄밀하게 유지되지 않으며, 스케일 아웃으로 높은 확장성을 구현할 수 있다.
3. R 언어
R 언어는 데이터 분석, 데이터 과학, 기계 학습 분야에서 사용되는 중요한 프로그래밍 언어이다. R 언어의 특징중 하나는 다른 언어에 비해서 프로그래밍 하기가 쉽다. 간단한 한 줄이나 두 줄의 언어로도 시각화 기능을 제공한다. 또 한가지 특징은 다른 오픈소스에 비해 강력한 커뮤니티 파워를 가지고 있다. 이것은 어떠한 기능이 필요할 때 직접 구현하지 않아도 다양한 사용자들로 이루어진 생태계에서 나온 검증된 패키지를 찾아서 적용하면 된다. 하지만 단점도 존재한다. 이 언어의 특성상 데이터를 물리적 메모리에 저장하기 때문에 매우 큰 데이터를 사용한 작업을 할 때에 문제가 발생할 소지가 있다. 또한 자체적으로 보안 관련 기능이 없기 때문에 플랫폼 상에서 보안 문제를 해결해야 한다. 그럼에도 불구하고 통계적인 계산과 데이터 분석에 특화되어 있기 때문에 빅데이터를 활용하기 위해서 꼭 필요한 언어라고 할 수 있다.
4. 빅데이터 처리 기술
크게 대용량 데이터베이스에서 쿼리를 이용해서 결과를 얻는 방법과 실시간 처리로 결과를 얻는 두 가지 방법이 있다.
이러한 방법을 지원하는 기술들은 다음과 같다.
Esper - 자바로 개발된 CEP엔진으로, 실시성 확보가 가능한 방식 즉 필요한 쿼리를 어플리케이션에 먼저 등록한 다음에 데이터를 추출하는 방식을 사용한다.
S4 - 야후에서 개발한 맵리듀스의 영향을 받은 분산 스트리밍 처리 기술이다.
Storm - 스트리밍 데이터 처리를 위한 분산시스템으로 트위터에서 개발했다.
이처럼 기본적으로 많은 차이가 발생하며 데이터 양에서 RDBMS는 상대적으로 소규모 데이터에 적합하고 NoSQL 은 상대적으로 대규모 데이터에 더 적합하다고 할 수 있다.
'IT' 카테고리의 다른 글
블로그 마케팅 이 좋을까 유튜브를 할까? (0) | 2023.02.24 |
---|---|
50대도 할 수 있는 노트북 윈도우 10 설치하는 법 (0) | 2023.02.22 |
워드프레스란 무엇이며 블로그 만들기 장점과 단점 (0) | 2023.02.21 |
빅데이터 전문가가 되기 위해서 알아야 할 정보들 (0) | 2023.02.18 |
가상화 구축에 대한 기술에 대한 고찰 (0) | 2023.02.18 |
댓글