본문 바로가기
공부/개념

RDBMS, NoSQL, Elasticsearch 그리고 Hadoop

by 촌쥐 2021. 6. 4.

헷갈리니까 간단하게 정리하려고 글을 씁니다.

DB 용어들 자체가 생소하시다면 아래 링크를 한번 읽어보세요.

 

데이터베이스 종류와 SQL 그리고 스키마(schema)

직전 포스팅에서 엑셀과 데이터베이스를 간단하게 비교를 해 봤는데, 이번 글은 직전 포스팅의 후속글입니다. 따라서 예상 독자도 이전글과 동일하게 엑셀로 현업 실무를 하는, 개발자가 아닌

eine.tistory.com

 

1. RDBMS

일단 RDBMS는 대부분 다 아실것이라고 생각합니다. 

RDBMS는 유명한 DB 시스템 MySQL, Oracle, MariaDB 같은 흔히 DB 하면 떠오르는 

RDBMS의 일반적인 저장형태

이러한 표 형태의 관계형 데이터베이스들을 뜻합니다.  특징으로는

  • SQL을 사용하여 데이터 추가, 삭제, 수정등이 가능합니다.
  • 2차원의 표 형태로 데이터를 표현합니다

 

2. NoSQL

NoSQL의 다양한 저장형태

그러면 NoSQL은 뭘까요? SQL이 아니라는 뜻일까요? 일단 지금 가장 이해하기 쉬운 RDBMS와의 차이점은

  • 기존 RDBMS와 달리 관계형 모델을 사용하지 않습니다. (여러가지 저장형태들이 있습니다.)
  • 데이터 액세스에 SQL만을 사용하지 않습니다.
  • RDBMS에 비해 상대적으로 수평적 확장이 쉽습니다.

이 세가지 차이점이 현재로서는 가장 이해하기 쉬울듯 합니다. 

다만 이 세가지 조건을 반드시 충족하지 않는다고 반드시 NoSQL이 아닌 것은 아닙니다. 

NoSQL 자체가 여러 유형의 DB들을 뜻하지만 정의가 확실하게 정해지지 않은 단어이기도 합니다.

NoSQL은 정의되지 않은 만큼 다양한 종류의 저장형태와 DB가 있기 때문에 무엇이 NoSQL이다!라고

딱 잘라서 말하기에는 애매한 상태라고 보시면 될 것 같습니다.

NoSQL의 분류에 대해서는 다음 링크를 참조해주세요.

https://rural-mouse.tistory.com/38

 

NoSQL 저장 유형별 간단 정리

NoSQL은 특정한 DB를 말하는 게 아니라 RDB와 달리 데이터 액세스에 SQL만 사용하지 않는 DB들을 일컫는 단어입니다. 따라서 정확한 정의도 없으며 NoSQL을 분류하는 기준도 사람에 따라 모두 다 다릅

rural-mouse.tistory.com

3. Elasticsearch

ES 저장구조는 후에 다시 한번 다루도록 하겠습니다.
RDBMS와 Elasticsearch의 용어 차이

Elasticsearch 는 ELK Stack의 E를 담당하는 친구입니다. Apache Lucene 기반의 오픈소스 검색엔진이죠.

검색엔진이 왜 DB 이야기 하는데 나오죠? 싶겠지만 이 친구는 검색엔진이라 불리지만 저장기능이 있습니다. 

  • 각 노드에 Index 안의 shard가 분배되어 있는 형태로 데이터가 분산저장 됩니다.
  • 다른 DB들과 다르게 full text 검색이 빠릅니다.
  • 분산구조로 이루어져있어 확장이  쉽게 이루어집니다.
  • 문서의 인덱싱부터 검색 가능때까지 거의 실시간으로 이루어집니다. (보통 1초)  

개인적으로 Elasticsearch 특징은 실시간성, 확장성 두가지가 핵심이라고 생각합니다.

따라서 실시간으로 데이터를 받고 검색해야하는 그런 곳에서 많이 쓰이고 있습니다.

로그 같은 실시간으로 이상을 탐지하는 곳에도 많이 쓰이고 웹사이트, 어플리케이션 검색 같은 곳에서도 사용됩니다.

4. Hadoop

하둡의 기본 모듈

Hadoop 자체는 DB가 아닙니다!  

위에서 데이터 저장을 담당하는 부분은 HDFS(Hadoop Distributed File System)입니다.

Hadoop의 특징을 몇개만 살펴보자면

  • Elasticsearch와 마찬가지로 분산구조 입니다.
  • 병렬처리가 가능하며 확장이 쉽습니다.
  • 실시간 처리에는 취약합니다.

Hadoop은 대용량 데이터를 강점으로 하는 분산 파일 처리 및 저장 시스템이라고 보시면 될 것 같습니다.

Hadoop의 장점은 에코시스템이 방대하여 이런저런 솔루션 및 라이브러리들이 있어 많이 구현되있다는 점입니다.


참조

NoSQL이란 무엇인가? 대량데이터 동시처리위한 DBMS 종류와 특징 | https://www.samsungsds.com/kr/insights/1232564_4627.html

Elasticsearch는 무엇인가요? | https://www.elastic.co/kr/what-is/elasticsearch

RDBMS, NoSQL DB, Hadoop 비교 분석 - Oracle Korea | https://youtu.be/HQFreqPb3dg

Hadoop 총정리 | http://www.incodom.kr/hadoop_%EC%B4%9D%EC%A0%95%EB%A6%AC

엘라스틱서치의 멀티 테넌트 환경 적용하기: 케이스로 살펴보는 테넌트 적용방법 | https://www.s-core.co.kr/insight/view/%EC%97%98%EB%9D%BC%EC%8A%A4%ED%8B%B1%EC%84%9C%EC%B9%98%EC%9D%98-%EB%A9%80%ED%8B%B0-%ED%85%8C%EB%84%8C%ED%8A%B8-%ED%99%98%EA%B2%BD-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%BC%80%EC%9D%B4%EC%8A%A4/

 

 

'공부 > 개념' 카테고리의 다른 글

DB에서의 partitioning(분할, 파티셔닝)  (0) 2021.06.07
NoSQL 저장 유형별 간단 정리  (0) 2021.06.06
apache kafka 개념 정리  (0) 2021.06.03
[네트워크] TCP/UDP 간단 정리  (2) 2021.05.30
RESTful API 개념 정리  (0) 2021.05.29

댓글