Это не официальный сайт wikipedia.org 01.01.2023

Apache Cassandra — Википедия

Apache Cassandra

(перенаправлено с «CQL»)

Apache Cassandra — распределённая система управления базами данных, относящаяся к классу NoSQL-систем и расчитанная на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хэша.

Apache Cassandra
Логотип программы Apache Cassandra
Скриншот программы Apache Cassandra
Тип NoSQL
Автор Авинаш Лакшман[d] и Прашант Малик[d]
Разработчик Apache Software Foundation
Написана на Java[3]
Операционная система Linux и Unix-подобная операционная система
Первый выпуск июль 2008[1]
Последняя версия
Репозиторий gitbox.apache.org/repos/…
github.com/apache/cassan…
git-wip-us.apache.org/re…
Лицензия Apache License 2.0[4]
Сайт cassandra.apache.org​ (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Изначально проект был разработан в недрах Facebook, в 2009 году передан под крыло фонда Apache Software Foundation, и теперь эта организация продолжает развитие проекта. Промышленные решения на базе Cassandra развёрнуты для обеспечения сервисов таких компаний как Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Huawei, Netflix, Apple, Instagram, GitHub, Twitter и Spotify. К 2011 году крупнейший кластер серверов, обслуживающий единую базу данных под управлением Cassandra, насчитывал более 400 машин и содержал данные размером более 300 ТБ[5].

Apache Cassandra написана на языке Java, реализует распределённую хэш-систему, сходную с DynamoDB, что обеспечивает практически линейную масштабируемость при увеличении объёма данных. Использует модель хранения данных на базе семейства столбцов, чем отличается от систем подобных MemcacheDB[en], которые хранят данные только в связке «ключ — значение»; имеет возможностью организовать хранение хэшей с несколькими уровнями вложенности. Относится к категории отказоустойчивых СУБД: помещённые в базу данные автоматически реплицируются на несколько узлов распределённой сети или даже равномерно распределяются в нескольких дата-центрах. При сбое узла его функции на лету подхватываются другими узлами, добавление новых узлов в кластер и обновление версии Cassandra производится на лету, без дополнительного ручного вмешательства и переконфигурации других узлов. Тем не менее настоятельно рекомендуется заново сгенерировать ключи (метки) для каждого узла, включая существующие, чтобы сохранить качество распределения нагрузки. Генерации ключей для существующих узлов можно избежать в случае кратного увеличения количества узлов (в 2 раза, в 3 раза и так далее).

CQLПравить

Для упрощения взаимодействия с базой данных поддерживается язык формирования структурированных запросов CQL (Cassandra Query Language), который в какой-то степени сходен с SQL, но существенно урезан по функциональным возможностям. Например, можно выполнять только простейшие запросы SELECT с выборкой по определённому условию. Добавление и обновление осуществляется через единое выражение UPDATE, операция INSERT отсутствует (если записи нет, при выполнении UPDATE она создаётся — используется семантика SQL-оператора MERGE). Из отличительных возможностей — поддержка пространств имён и семейств столбцов, создание индексов через выражение «CREATE INDEX». Драйверы с поддержкой CQL реализованы для языков Python (DBAPI2), Java (JDBC), Ruby (gem cassandra-cql), PHP (Thrift, cassandra-pdo, Cassandra-PHP-Client-Library), JavaScript (Node.js) и Perl (DBD::Cassandra).

Кроме того, CQL реализован в СУБД Scylla[en], которая архитектурно и лингвистически повторяет систему Cassandra, но написана на C++ с целью повышения показателей производительности.

ПримечанияПравить

СсылкиПравить

ЛитератураПравить

  • Карпентер Дж., Хьюитт Э. Cassandra. Полное руководство = Cassandra: The Definitive Guide. — ДМК-Пресс, 2016. — 400 с. — ISBN 978-5-97060-453-3.