Русская Википедия:Apache Cassandra
Шаблон:Карточка программы Apache Cassandra — распределённая система управления базами данных, относящаяся к классу NoSQL-систем и расчитанная на создание высокомасштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хэша.
Изначально проект был разработан в недрах Facebook, в 2009 году передан под крыло фонда Apache Software Foundation, и теперь эта организация продолжает развитие проекта. Промышленные решения на базе Cassandra развёрнуты для обеспечения сервисов таких компаний как Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Huawei, Netflix, Apple, Instagram, GitHub, Twitter и Spotify. К 2011 году крупнейший кластер серверов, обслуживающий единую базу данных под управлением Cassandra, насчитывал более 400 машин и содержал данные размером более 300 ТБ[1].
Apache Cassandra написана на языке Java, реализует распределённую хэш-систему, сходную с DynamoDB, что обеспечивает практически линейную масштабируемость при увеличении объёма данных. Использует модель хранения данных на базе семейства столбцов, чем отличается от систем подобных Шаблон:Iw, которые хранят данные только в связке «ключ — значение»; имеет возможностью организовать хранение хэшей с несколькими уровнями вложенности. Относится к категории отказоустойчивых СУБД: помещённые в базу данные автоматически реплицируются на несколько узлов распределённой сети или даже равномерно распределяются в нескольких дата-центрах. При сбое узла его функции на лету подхватываются другими узлами, добавление новых узлов в кластер и обновление версии 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 реализован в СУБД Шаблон:Iw, которая архитектурно и лингвистически повторяет систему Cassandra, но написана на C++ с целью повышения показателей производительности.
Примечания
Ссылки
- Шаблон:Cite web
- Project Website
- Project Wiki
- Adopting Apache Cassandra presented by Eben Hewitt on December 1, 2010
- Presentation on Cassandra at SIGMOD 2008
- Introduction to Cassandra at FOSDEM 2010
- LADIS 2009 WhitePaper by the original contributors Avinash Lakshman & Prashant Malik
- Cassandra Articles on NoSQLDatabases.com
- Cassandra News and Articles on myNoSQL
- Cassandra @ Twitter: an Interview with Ryan King
- Presentation on RDBMS vs. Dynamo, BigTable, and Cassandra
- RPM build for the apache cassandra project
Литература
Шаблон:Apache Шаблон:Facebook navbox
- Русская Википедия
- Программное обеспечение с лицензией Apache Software License
- Проекты Apache
- Свободное программное обеспечение, написанное на Java
- Свободные СУБД
- NoSQL
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии