빈쿵바라기
좌충우돌 개발자의 기록
빈쿵바라기
전체 방문자
오늘
어제
  • 분류 전체보기 (53)
    • Programming (25)
      • JAVA (12)
      • Spring Boot (6)
      • JPA (7)
      • Python (0)
    • Database (12)
      • RDBMS (4)
      • NoSQL (7)
    • Server (11)
    • Elasticsearch (3)
    • ETC (2)

블로그 메뉴

    공지사항

    인기 글

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    빈쿵바라기

    좌충우돌 개발자의 기록

    Database/NoSQL

    [NoSQL] Cassandra vs Hbase vs MongoDB

    2023. 5. 19. 09:51

    Cassandra

    Cassandra는 시장에서 가장 널리 사용되는 와이드 컬럼 스토어 데이터베이스 시스템입니다. Facebook의 받은 편지함 검색 기능을 위해 Facebook에서 처음 개발된 Cassandra는 2008년에 오픈 소스로 공개되었으며 이후 2010년 2월 17일에 Apache용 최상위 프로젝트를 만들었습니다. 대량의 데이터를 처리하고 실시간에 가까운 분석을 제공합니다. Java로 작성된 Cassandra는 각 업데이트에 대한 동기식 및 비동기식 복제를 제공합니다. 내구성과 내결함성 기능은 상시 작동 애플리케이션에 이상적입니다.

    Cassandra는 기존 RDBMS처럼 열과 행에 데이터를 저장하지만 행이 다른 열을 가질 수 있고 열 형식의 변경까지 허용한다는 점에서 민첩성을 제공합니다. 이 외에도 쿼리 언어인 CQL(Cassandra Query Language)은 기존 SQL 구문과 매우 유사하므로 SQL 사용자가 더 쉽게 이해할 수 있습니다.

    Cassandra의 가장 일반적인 사용 사례 중 일부는 메시징 시스템(뛰어난 읽기 및 쓰기 성능), 실시간 센서 데이터 및 전자 상거래 웹 사이트를 포함합니다.

     

    HBase

    HBase는 Google의 Bigtable을 기반으로 하는 오픈 소스 와이드 컬럼 저장소 분산 데이터베이스입니다 . Apache의 Hadoop 프로젝트 의 일부로 2008년에 개발되었습니다 . HDFS 위에 구축되어 메모리 내 작업, 압축 및 블룸 필터와 같은 Bigtable의 여러 기능을 차용합니다. Java를 기반으로 구축된 HBase는 Thrift, Avro, Scala, Jython 및 REST와 같은 외부 API를 지원합니다. Hbase는 데이터베이스의 독립 실행형 버전을 제공하지만 프로덕션 시나리오가 아닌 개발 구성에 주로 사용됩니다.

    HBase의 강점 중 하나는 HDFS를 분산 파일 시스템으로 사용한다는 것입니다. 이를 통해 데이터베이스는 대규모 데이터 세트, 심지어 수십억 개의 행을 저장하고 단기간에 분석을 제공할 수 있습니다. 희소 데이터에 대한 이러한 지원은 상용 서버 하드웨어 전체에서 호스트/분산될 수 있다는 사실과 함께 데이터가 기가바이트 또는 페타바이트로 확장될 때 솔루션이 매우 비용 효율적임을 보장합니다.

    HBase의 일반적인 사용 사례에는 온라인 로그 분석, Hadoop 배포, 쓰기 작업이 많은 애플리케이션 및 대용량이 필요한 애플리케이션(예: Twitter, Facebook 게시물 등)이 포함됩니다.

    Cassandra와 달리 HBase에는  쿼리 언어가 없습니다 . 즉, SQL과 같은 기능을 달성하려면 JRuby 기반 HBase Shell과 Apache Hive(MapReduce 기반)와 같은 기술을 사용해야 합니다. 그래서 HBase는 가파른 학습 곡선을 가집니다.

     

    MongoDB

    MongoDB는 시장에서 가장 인기 있는 문서 저장소이자 데이터베이스 관리 시스템 중 하나입니다. 2007년에 DoubleClick 팀(현재 Google 소유)이 DoubleClick에서 인터넷 광고를 제공할 때의 확장성 및 성능 문제를 해결하기 위해 만들었습니다.

    MongoDB는 스키마가 없는 데이터베이스이며 데이터를 JSON과 유사한 문서(Binary JSON)로 저장합니다. 이는 저장할 수 있는 레코드 유형에 유연성을 제공하며 필드도 문서마다 다르게 구성할 수 있습니다. 또한 포함된 문서는 인덱스를 통해 더 빠른 쿼리를 지원하고 일반적으로 데이터베이스 시스템과 관련된 I/O 과부하를 크게 줄입니다.

     

    정리

      Cassandra HBase MongoDB
    Architercture Wide Column Store Document Store Wide Column Store
    Server OS FreeBSD, Linux, OS X, 
    Windows
    Linux, Unix, Windows Linux, OS X, Solaris, 
    Windows
    Distributed System
    Consistency
    Eventual and Immediate 
    Consistency
    Immediate Consistency Eventual and Immediate
    Consistency
    Owner and Developer Apache Software Foundation Apache Software Foundation MongoDB, Inc.
    Replication Masterless Ring Master-Slave Replication Master-Slave Replication
    Programming
    Language (Base Code)
    Java Java C++
    Supported Programming
    Languages
    C#, C++, Clojure, Erlang, Go, Haskell, Java, Node.js,Perl, PHP, Python, Ruby, Scala C, C#, C++, Groovy, Java, PHP, Python, Scala C, C#, C++, Erlang, Haskell, Java, JavaScript, Perl, PHP, Python, Ruby, Scala
    Editions Community with Option 
    of Third-Party Support
    Community Community (Free) and 
    Enterprise
    Popular Use Cases Sensor Data, Messaging 
    Systems, E-commerce 
    Websites, 
    Always-On Applications, 
    Fraud Detection for Banks
    Online Log Analytics,
    Hadoop, Write Heavy
    Applications, MapReduce
    Operational Intelligence,
    Product Data Management, Content Management
    Systems, IoT,
    Real-Time Analytics
    DBaaS InstaClustr Cassandra as
    a Service, DataStax
    Database as a Service
    None MongoDB Atlas,mLab 
    MongoDB, ScaleGrid 
    MongoDB Hosting
    Key Customers eBay, McDonald’s, Walmart, Comcast, Facebook,
    Instagram, GitHub, CERN,
    Netflix, Reddit
    23andMe, Salesforce, Netflix, Bloomberg, Sophos, Adobe, Xiaomi, Yahoo Adobe, eBay, Google,
    Cisco, SAP, Facebook,
    Royal Bank of Scotland,
    Trend Micro

     

    참고자료

    https://logz.io/blog/nosql-database-comparison/

    저작자표시

    'Database > NoSQL' 카테고리의 다른 글

    [Cassandra] Cassandra 설치 방법  (0) 2023.06.05
    [Cassandra] 조건 조회(Select Where)에 대하여  (0) 2023.06.02
    [Cassandra] 기본 키, 파티션 키, 클러스터링 키  (0) 2023.05.24
    [Cassandra] 카산드라 기본 개념  (0) 2023.05.23
    [Cassandra] Apache Cassandra 란?  (0) 2023.05.19
      'Database/NoSQL' 카테고리의 다른 글
      • [Cassandra] 조건 조회(Select Where)에 대하여
      • [Cassandra] 기본 키, 파티션 키, 클러스터링 키
      • [Cassandra] 카산드라 기본 개념
      • [Cassandra] Apache Cassandra 란?
      빈쿵바라기
      빈쿵바라기
      삽질하는 개발자의 좌충우돌 개발기

      티스토리툴바