분산 데이터베이스 관리 시스템(DBMS)으로 설계된 Cassandra는 P2P 아키텍처를 사용합니다. Cassandra 클러스터에 데이터의 일부를 저장하는 모든 노드 또는 개별 서버는 동등하며, 마스터 노드에 의존하지 않지 않습니다.
데이터는 중앙 위치에 저장되는 대신 피어 간에 분할되므로, 단일 장애 지점(하나의 장애가 여러 장애로 빠르게 확산되는 현상)이 제거됩니다. 이러한 설계를 통해 계획된 다운타임이나 갑작스러운 변경 중에도 원활한 복제, 효율적인 데이터 배포 및 지속적인 서비스가 가능합니다.
Cassandra는 연결된 사물인터넷(IoT) 디바이스 관리와 같은 사용 사례를 위한 자동화, 데이터 백업 및 지표를 제공합니다. 보다 구체적으로 선형 확장성, 고가용성 및 내결함성을 제공하므로, 빅데이터 애플리케이션 및 실시간 워크로드에 널리 사용됩니다. 2024년 9월 기준으로, Cassandra는 전 세계 30,000개 이상의 조직에서 사용되고 있습니다.
업계 뉴스레터
Think 뉴스레터를 통해 AI, 자동화, 데이터 등 가장 중요하고 흥미로운 업계 동향에 대한 최신 소식을 받아보세요. IBM 개인정보 보호정책을 참조하세요.
구독한 뉴스레터는 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
Cassandra의 스토리는 2007년 Facebook에서 시작되었습니다. 당시 엔지니어들은 회사의 성장 중인 메시징 플랫폼을 위해 데이터를 저장할 수 있는 시스템을 찾고 있었습니다. 기존 NoSQL 데이터베이스 모델(Amazon의 Dynamo와 Google의 Bigtable)을 결합하여 효율적인 데이터 구조와 최종 일관성(시간이 지남에 따라 모든 복제본이 일치할 때까지 업데이트 전파)을 갖춘 시스템을 구축했습니다.
2008년에 Cassandra는 오픈 소스 프로젝트로 출시되었고, 기존 관계형 데이터베이스에 대한 대안을 찾는 개발자들 사이에서 빠르게 인기를 얻었습니다. 2009년 Apache Software Foundation이 운영권을 넘겨받아 거버넌스를 공식화하고 커뮤니티 채택을 가속화했습니다.
eBay, Spotify, Instagram과 같은 얼리어답터 기업들이 빅데이터 처리를 위해 Cassandra를 도입하면서 성장에 가속이 붙었습니다. IoT와 실시간 개인화의 등장으로 Cassandra는 확장성과 가용성을 갖춘 필수 데이터베이스로서 그 역할이 더욱 확고해졌습니다.
DataStax의 상업적 지원을 통해 엔터프라이즈급 툴링, 튜토리얼 및 서비스가 추가되었으며, 개방형 커뮤니티에는 툴과 문서를 개발했습니다. 오늘날 Cassandra는 여전히 많은 분산 시스템의 핵심으로 자리잡고 있으며, 오픈 소스 에코시스템과 기업 배포 모두에서 성공을 거두고 있습니다.
스트리밍 서비스 및 소셜 미디어부터 온라인 쇼핑에 이르기까지 고객들은 상시 가동되는 디지털 경험을 기대합니다. 기업에서 가동 시간은 더 이상 IT 목표가 아니라 비즈니스 지표입니다. 실패로 인한 비용 손실은 매우 큽니다. 세계 유수의 기업들은 계획되지 않은 다운타임으로 인해 매년 약 4,000억 달러의 손실을 입습니다.
그와 동시에 이벤트 로그, 원격 측정 및 데이터 스트림에서 비정형 데이터가 급증함에 따라 지역 및 클라우드 환경 전반에서 운영이 더욱 복잡해지고 시스템 장애가 발생할 가능성이 높아졌습니다. 조직들은 다양한 데이터 유형을 처리하고 글로벌 인프라 전반의 수요에 따라 확장할 수 있는 안정적인 데이터베이스를 필요로 합니다. Cassandra는 이러한 요구 사항을 충족하도록 설계되었습니다.
여러 업계에서 Cassandra의 고성능을 활용하여 수십억 회의 쓰기 작업(삽입, 업데이트, 삭제)을 처리하는 동시에 사용자에게 실시간 정확도를 제공합니다. 이러한 복원력은 상용 서버나 표준 기성품 장비 전반에 걸쳐 데이터를 복제하여, 중단 위험을 최소화하고 하드웨어에 장애가 발생하더라도 내구성을 보장함으로써 실현됩니다.
여러 데이터 센터에서 워크로드를 관리하는 Cassandra의 기능은 전 세계 기업에 일관성과 가용성을 제공합니다. Netflix 및 Amazon과 같은 조직은 Cassandra를 사용하여 다운타임 및 데이터 손실을 방지하는 동시에 개인화된 경험을 제공합니다. 실제로 Netflix의 자산 관리 플랫폼 팀은 Cassandra를 사용하여 약 19억 개의 주석(약 2.6TB)을 관리하고 있으며,클러스터를 12개 노드에서 24개 노드로 두 배 늘렸습니다.
엄격한 스키마 정의와 중앙 집중식 제어에 의존하는 관계형 데이터베이스와 달리, Cassandra는 분산된 규모에 맞춰 구축되었습니다. 관계형 시스템에서 기본 키는 엄격한 데이터 모델링과 제한된 확장성에 묶여 있습니다. 반면, Cassandra는 파티션 키와 복제 계수를 사용하여 노드와 데이터 센터에 데이터 세트가 저장되는 방식을 결정합니다.
구조화된 쿼리 언어(SQL)시스템은 복잡한 조인 및 집계에 탁월하지만, 병목 현상을 일으키고 단일 장애 지점의 위험을 초래하는 경우가 많습니다. Cassandra 분산 아키텍처와 최종 일관성을 수용하여 이러한 문제를 방지합니다. MongoDB와 비교했을 때, Cassandra 데이터베이스는 여러 데이터 센터에 걸쳐 쓰기 작업이 많고 선형적으로 확장 가능한 워크로드를 선호합니다.
대량의 데이터를 관리하는 조직의 경우 Cassandra는 높은 처리량, 짧은 지연 시간, 중단에 대한 내성 등 명확한 장점을 제공합니다. 그러나 Cassandra는 일부 관계형 데이터베이스가 제공하는 것과 동일한 수준의 임시 쿼리를 제공하지 않습니다. Cassandra를 사용하는 개발자는 쓰기 작업, 복제본 및 데이터 무결성을 최적화하기 위해 데이터 모델링 전략을 신중하게 설계해야 합니다.
Cassandra의 설계는 분산 시스템의 혁신과 엔터프라이즈급 데이터 관리를 위한 툴을 결합합니다. 주요 기능은 다음과 같습니다.
Cassandra는 Apache Software Foundation의 오픈 소스로, 조직이 공급업체 종속을 피하고 데이터베이스를 사용자 지정할 수 있도록 지원합니다. 엔터프라이즈급 지원이 필요한 경우 팀은 커뮤니티 리소스를 사용하거나 상용 지원 및 관리형 서비스를 선택할 수 있습니다.
Cassandra의 스토리지 엔진은 커밋 로그, 메모리 내 테이블(memtable), 정렬된 문자열 테이블(SSTable) 파일로 구성된 단계별 흐름(또는 쓰기 경로)을 사용합니다. 이 흐름은 쓰기 작업을 신속하게 수락하고 보호합니다. 자주 액세스되는 데이터는 지연 시간이 짧은 쿼리를 위해 캐시에 보관되고, 자동 하우스키핑 기능인 압축은 효율적인 장기 데이터 저장을 보장합니다.
CAP 정리에 따라 네트워크 분할이 발생할 때 분산 시스템은 일관성, 가용성, 분할 내성(CAP)의 세 가지 원하는 특성 중 두 가지만 제공할 수 있습니다. Cassandra는 조정 가능한 일관성 수준을 통해 이러한 절충안을 해결하므로, 사용자는 사용 사례에 따라 가용성 또는 일관성의 우선순위를 정할 수 있습니다.
Cassandra는 서비스 중단 없이 새 노드를 추가하여 용량을 늘리고, 비싼 수직적 업그레이드 대신 상용 서버에서 선형 확장성을 제공합니다. 노드가 추가되면 Cassandra가 클러스터 전체에 데이터와 트래픽을 자동으로 재분배하므로, 워크로드가 확장되고 처리량은 그에 비례하여 증가합니다.
Cassandra는 노드와 데이터 센터에 걸쳐 데이터를 복제하므로, 로컬 사용자는 단일 장애 지점을 피하면서 지연 시간은 줄일 수 있습니다. 또한 Kubernetes, 애플리케이션 프로그래밍 인터페이스(API) 프레임워크, Amazon Web Services(AWS) 환경과도 통합됩니다. Cassandra는 Java로 작성되어 Java Virtual Machine (JVM)에서 실행됩니다.
팀은 SQL을 미러링하는 Cassandra 쿼리 언어(CQL)를 사용하여 키스페이스, 테이블, 기본 키 등과 같은 키 구문을 빠르게 정의합니다. CQL 셸(cqlsh) 및 공식 튜토리얼과 같은 대화형 툴도 신규 개발자의 온보딩 시간을 줄이는 데 도움이 될 수 있습니다.
Cassandra는 SQL에서 영감을 받은 도메인별 언어인 CQL을 통해 애플리케이션과 상호 작용합니다. CQL 구문은 데이터베이스 개발자에게 친숙하므로 키스페이스, 스키마, 데이터 형식, 기본 키와 파티션 키를 모두 정의할 수 있습니다.
예를 들어, 글로벌 게임 출시 중에 개발자는 키스페이스(복제 설정을 정의하는 Cassandra의 최상위 데이터베이스)를 생성할 수 있습니다. 그런 다음, 파티션 키(예: 플레이어 ID 또는 지역)가 효율적인 데이터 배포를 위해 관련 데이터를 동일한 노드에 유지하는 테이블을 디자인할 수 있습니다. 팀은 cqlsh를 사용하여 튜토리얼을 실행하고, 쿼리를 검증하고, 플레이어 수 증가를 처리하기 위해 새 노드를 추가할 때 Cassandra 클러스터를 관리할 수 있었습니다.
Cassandra는 쓰기 작업과 처리량을 강조하기 때문에 Cassandra의 구문은 성능을 저하시키는 기능을 피합니다. 대신 개발자는 보조 인덱스, 집계 및 최적화된 데이터 모델링을 통해 유연성을 얻습니다.
CQL은 SQL과 유사하지만 두 언어는 데이터 관리에 대한 서로 다른 접근 방식을 반영합니다.
SQL은 정규화된 테이블에서 작동하는 반면, CQL은 파티션 키에 맞춘 비정규화된 Cassandra 데이터를 위해 설계되었습니다.
SQL은 엄격한 데이터 무결성을 가정하는 반면, Cassandra는 구성 가능한 일관성 수준과 최종 일관성 간의 균형을 맞춥니다.
SQL 시스템은 일반적으로 수직적 확장에 의존하는 반면, Cassandra는 Cassandra 클러스터에 새로운 노드를 추가하여 선형 확장성을 지원합니다.
SQL은 트랜잭션에 최적화되어 있는 반면, CQL은 실시간 쿼리 및 대용량 쓰기 작업을 위해 설계되었습니다.
SQL에서 전환하는 개발자는 CQL의 구문에 빠르게 적응할 수 있지만, Cassandra의 분산 시스템 접근 방식을 활용하기 위해 데이터 모델링 전략을 재고해야 합니다.
Cassandra는 고성능, 짧은 지연 시간, 복원력을 요구하는 산업 전반에서 미션 크리티컬 워크로드를 지원합니다. 예를 들면 다음과 같습니다.
이러한 업종 외에도 Cassandra는 확장 가능한 데이터 스토리지를 위한 분산 시스템을 구축하는 조직을 지원합니다. API 지원, 엔터프라이즈 툴, 개방형 커뮤니티 튜토리얼의 조합을 통해 Cassandra는 최신 데이터베이스 관리 시스템의 초석으로 자리매김하고 있습니다.
직관적인 그래픽 인터페이스를 통해 스트리밍 데이터 파이프라인을 생성하여 하이브리드 및 멀티클라우드 환경 전반에서 완벽한 데이터 통합을 촉진합니다.
watsonx.data를 사용하면 오픈, 하이브리드 및 관리형 데이터 저장소를 통해 데이터의 위치와 관계없이 모든 데이터로 분석과 AI를 확장할 수 있습니다.
IBM Consulting을 통해 엔터프라이즈 데이터의 가치를 실현하여 비즈니스 이점을 제공하는 인사이트 중심의 조직을 구축하세요.
†Apache Cassandra 및 Cassandra는 Apache Software Foundation의 등록 상표입니다.