Категории программ

Новые программы

Apache Cassandra

10 июня, 2014 0

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

Изначально проект был разработан в недрах Facebook и в 2009 году передан под крыло фонда Apache Software Foundation (ASF), эта организация продолжает развитие проекта. Промышленные решения на базе Apache Cassandra развёрнуты для обеспечения сервисов таких компаний, как Cisco, IBM, Cloudkick, reddit, Digg, Rackspace и Twitter. К 2011 году крупнейший кластер серверов, обслуживающий единую базу данных Apache Cassandra, насчитывает более 400 машин и содержит данные размером более 300 Тб.

СУБД Apache Cassandra написана на языке Java и включает в себя полностью распределённую hash-систему Dynamo, что обеспечивает практически линейную масштабируемость при увеличении объёма данных. Apache Cassandra использует модель хранения данных на базе семейства столбцов (ColumnFamily), что отличается от систем, подобных memcachedb, которые хранят данные только в связке ключ/значение, возможностью организовать хранение хешей с несколькими уровнями вложенности. Apache Cassandra относится к категории хранилищ, повышенно устойчивых к сбоям: помещённые в базу данных данные автоматически реплицируются на несколько узлов распредёленной сети или даже равномерно распределяются в нескольких дата-центрах. При сбое узла, его функции “на лету” подхватываются другими узлами. Добавление новых узлов в кластер и обновление версии Apache Cassandra производится “на лету”, без дополнительного ручного вмешательства и переконфигурации других узлов. Тем не менее настоятельно рекомендуется заново сгенерировать токены для каждого узла, включая существующие, чтобы не испортить распределение нагрузки. Генерации ключей для существующих узлов можно избежать в случае кратного увеличения количества узлов (в 2 раза, в 3 раза и т. д.).

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

Apache Cassandra

Ссылки

Сайт Apache Cassandra

Скачать Apache Cassandra

Базы данных , Разработчику

Оставить комментарий

*