본문 바로가기
카테고리 없음

Elasticsearch와 RDB 비교

by 비타민찌 2025. 9. 16.
728x90

Elasticsearch와 RDB 비교

 

우리가 흔히 사용하는 데이터베이스는 RDB(Relational Database, 관계형 데이터베이스) 입니다.

MySQL, Oracle, PostgreSQL 같은 DB들이 대표적인 예죠.

하지만 최근 빅데이터 환경에서 빠른 검색과 분석을 위해 많이 사용되는 것이 Elasticsearch(엘라스틱서치) 입니다.

 

두 기술 모두 데이터를 저장하고 조회한다는 점에서는 같지만, 데이터를 바라보는 관점과 처리 방식이 크게 다릅니다.

오늘은 Elasticsearch와 RDB를 비교하면서, Elasticsearch가 어떤 특성을 가지고 있는지 쉽게 이해해보겠습니다.

 

 

 

1. 데이터 구조 매핑

먼저, Elasticsearch와 RDBMS의 데이터 구조를 대응시켜 보면 이렇게 정리할 수 있습니다.

 

RDBMS Elasticsearch 설명
Database Index 데이터를 저장하는 큰 단위
Table Type (6.x 이하) 인덱스 내 논리적 구분 (6.x 이후부터는 Type 폐지)
Row Document 실제 데이터 객체 (JSON 형식)
Column Field 문서의 속성(필드)
Primary Key _id 문서를 구분하는 고유 식별자
Partition Shard 데이터를 물리적으로 나누는 단위
Relation Parent/Child, Nested 관계형 데이터 표현
SQL Query DSL 데이터 조회·검색 언어

 

Index = Database,

Document = Row,

Field = Column 으로 이해하면 됩니다.

 

 

하지만 여기서 중요한 차이점이 있어요.

  1. RDB는 데이터를 저장하기 전에 스키마(테이블 구조) 를 반드시 정의해야 합니다.
  2. Elasticsearch동적 매핑(Dynamic Mapping) 을 통해 문서가 삽입될 때 자동으로 필드 구조를 인식할 수 있습니다.

즉, RDB는 엄격한 규칙을 따르는 반면, Elasticsearch는 유연한 문서 지향 데이터베이스라고 할 수 있습니다.

 

 

2. Elasticsearch REST API와 SQL 비교

RDB에서는 데이터를 조작할 때 SQL 언어를 사용합니다.
예를 들어, SELECT, INSERT, UPDATE, DELETE 같은 명령어들이죠.

Elasticsearch는 HTTP 기반 REST API를 사용하며, 명령어와 SQL의 대응 관계는 다음과 같습니다.


 

Elasticsearch(HTTP Method) RDB SQL 설명
GET SELECT 데이터 조회
PUT INSERT 데이터 삽입 (특정 ID 지정)
POST UPDATE, SELECT 데이터 수정 또는 검색
DELETE DELETE 데이터 삭제
HEAD SHOW / DESCRIBE 인덱스 정보 확인

 

즉, Elasticsearch에서는 SQL처럼 복잡한 문법을 쓰지 않고, 간단한 HTTP 요청 + JSON 형식만 있으면 데이터를 다룰 수 있습니다.

예를 들어, MySQL에서 다음과 같은 쿼리를 작성한다고 가정해봅시다.

 
SELECT * FROM users WHERE age > 30;

 

 

Elasticsearch에서는 아래와 같이 Query DSL을 활용한 JSON 요청으로 동일한 결과를 얻습니다.

 

GET users/_search
{
  "query": {
    "range": {
      "age": { "gt": 30 }
    }
  }
}

 

개발자가 REST API 호출 방식에 익숙하다면 SQL을 배우지 않아도 쉽게 데이터를 다룰 수 있는 것이 Elasticsearch의 장점 중 하나입니다.

 

 

 

3. RDB와 Elasticsearch의 차이점

두 시스템은 모두 데이터를 저장하고 검색하지만, 철학 자체가 다릅니다. 주요 차이를 정리하면 다음과 같습니다.

  1. 스키마 유무
    • RDB: 반드시 사전에 테이블 구조를 정의해야 함
    • ES: 스키마리스(Schemaless), 데이터 입력 시 자동으로 필드 생성
  2. 데이터 형식
    • RDB: 행(Row)과 열(Column) 구조 → 정형 데이터 중심
    • ES: 문서(Document) 기반 JSON 저장 → 정형 + 비정형 데이터 모두 처리 가능
  3. 검색 방식
    • RDB: 값 매칭 중심 (=, LIKE '%keyword%')
    • ES: 역색인(Inverted Index) 기반 → 전문 검색(Full-text Search)에 강점
  4. 확장성
    • RDB: 주로 수직적 확장(Scale-Up) → 더 좋은 서버 필요
    • ES: 수평적 확장(Scale-Out) → 여러 노드에 데이터를 샤드 단위로 분산 저장
  5. 실시간성
    • RDB: 트랜잭션 중심 → 데이터 안정성이 강점
    • ES: 준실시간(NRT) → 빠른 검색과 분석이 강점

 

정리

  1. Elasticsearch는 기존의 RDB와 달리 문서(Document) 기반으로 데이터를 저장하고 처리합니다.
  2. SQL 대신 REST API + Query DSL을 사용하기 때문에, 다양한 개발 언어와 시스템에서 쉽게 연동할 수 있습니다.
  3. RDB가 정형 데이터와 안정성을 강점으로 한다면, Elasticsearch는 빠른 검색, 분석, 확장성에 특화된 도구라고 할 수 있습니다.

 


 

다음 편에서는 Elasticsearch의 핵심 개념인 역색인(Inverted Index) 을 다뤄보겠습니다.
검색 속도가 빠른 이유를 이해하는 데 가장 중요한 개념이니 꼭 알아두셔야 합니다.

 

 

https://blog.naver.com/ghdalswl77/222996246061

728x90

댓글