[DB] NOSQL (NOT ONLY SQL) , REDIS, 엘라스틱 서치, CAP 이론

이정환·2023년 7월 25일

[CS] DATABASE

목록 보기
8/21

NOSQL (Not Only SQL) SQL을 보완한다는 의미

  • ==NOSQL은 not only SQL의 약자로 sql 을 보완한다는 의미를 가집니다. 스키마가 없어서 데이터 저장에 유연합니다. 조회 및 삽입 속도가 빠릅니다. 대량 분산 데이터 저장에 특화되어 있습니다. 레디스와 몽고 디비가 있습니다. 스타트업에 적합합니다.
    • 정형화된 데이터가 필요하거나 ACID 트랜잭션이 중요하거나, 복잡한 쿼리 및 조인 작업이 필요한 경우 SQL 사용하는게 효율적입니다. 많은 데이터를 효율적으로 저장해야될때 SQL 사용합니다. 중복을 피할 수 있기 때문입니다. 대기업에 적합합니다.
    • SQL(RDBMS) ↔NOSQL
      • 스키마 유무 (데이터 저장 규칙, 자료형, 컬럼…),
      • 관계
        • sql (다른테이블에서 다른 테이블 참조사용)
        • nosql 한 테이블 내에 {} 안에 다른 데이블 관련정보도 같이 저장.
    • json {}모양으로 저장됌
    • 데이터 조회나 삽입속도 빠름. 대량데이터 저장에 좋음
       

    redis

  • ==Redis는 key-value 값을 저장하는 NOSQL DB입니다. 싱글스레드로 동작하며 자료구조를 지원합니다. 스프링에서는 세션을 관리하거나, 캐싱을 하는데에 자주 사용되는 것으로 알고 있습니다.

- 엘라스틱 서치

  • ==Elastic Search는 자바로 개발된 오픈소스 검색엔진 입니다. ElasticSearch는 실시간 분산 검색 및 분석 엔진으로, 대용량 데이터의 색인(indexing), 검색, 집계, 분석 등을 위한 도구입니다. 주로 로그 분석, 검색 엔진, 분산 데이터베이스 등 다양한 용도로 사용됩니다. elastic search는 검색엔진이다. 데이터 베이스는 아니지만, elastic search는 데이터 모델을 JSON으로 사용하고 있어서 NoSQL처럼 사용할 수 있다. 엘라스틱 서치가 빠른이유는 데이터를 넣을때 토큰 방식으로 인덱싱 해서 넣기때문에 검색 속도가 o(1)에 가깝습니다. 단점은 token 방식 인덱싱하기에 추가 및 변경이 다소 느립니다.

- CAP 이론과 Eventual consistency

  • ==CAP 이론은 분산 시스템에서 일관성(Consistency), 가용성(Availability), 네트워크 분할 허용성(Partition tolerance)의 세 가지 속성 중 어느 두 가지만 보장할 수 있는지를 설명하는 이론입니다. 이는 분산 시스템에서 모든 노드 간에 데이터를 일관적으로 유지하고, 언제나 서비스 가능하며, 네트워크 분할이 발생해도 작동하는 것을 동시에 보장하는 것이 어렵다는 것을 말합니다.
    - Consitenty(일관성): ACID의 일관성과는 약간 다릅니다. 모든 노드가 같은 시간에 같은 데이터를 보여줘야 한다는 것입니다.
    - Availability(가용성): 모든 동작에 대한 응답이 리턴되어야 합니다.
    - Partition Tolerance(분할 내성): 시스템 일부가 네트워크에서 연결이 끊기더라도 동작해야 합니다.
    CAP는 해당 시스템이 이거다 하고 말하기 곤란한게 어떻게 클러스터링 하느냐에 따라 달라질 수 있습니다. 그렇기 때문에 어떤 전략을 취할 때 어떤 것을 선택했는가를 잘 알아야 합니다. (단순히 MySQL이 CA입니다. 보다는 어떤 이유로 CA인지 근거를 생각해보기) 그리고 어느정도 한계가 있는 이론이고 PACELC 이론이라고 또 있습니다.
    • Eventual Consistency는 이 Consistency를 보장해주지 못하기 때문에 나온 개념으로, Consistency를 완전히 보장하지는 않지만, 결과적으로 언젠가는 Conssistency가 보장됨을 의미합니다.

0개의 댓글