Apache Cassandra

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Apache Cassandra
Cassandra logo.svg
Автор(и) Avinash Lakshman, Prashant Malik
Розробник(и) Apache Software Foundation
Перший випуск 2008
Стабільний випуск 2.1 (11 вересня 2014; 7 днів тому)
Написано на Java
Операційна система крос-платформовий
Доступні мови англійська
Стан розробки активний
Тип розподілена система керування базами даних
Ліцензія Apache License 2
Сайт cassandra.apache.org

Apache Cassandraрозподілена система керування базами даних, що відноситься до класу noSQL-систем і розрахована на створення високомасштабованих і надійних сховищ величезних масивів даних, представлених у вигляді хеша.

Спочатку проект був розроблений в надрах Facebook і в 2009 році переданий під оруду фонду Apache Software Foundation. Промислові рішення на базі Cassandra розгорнуті для забезпечення сервісів таких компаній, як Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace і Twitter. Станом на 2011 рік найбільший кластер серверів, котрий обслуговує єдину БД Cassandra, налічує понад 400 машин і містить дані розміром понад 300 Тб.[1]

Огляд[ред.ред. код]

СКБД Cassandra написана на мові Java і об'єднує в собі повністю розподілену hash-систему Dynamo, що забезпечує практично лінійну масштабованість при збільшенні обсягу даних. Cassandra використовує модель зберігання даних на базі сімейства стовпців (ColumnFamily), що відрізняється від систем подібних до memcachedb, які зберігають дані лише у зв'язці ключ/значення, можливістю організувати зберігання хешей з кількома рівнями вкладеності. Cassandra відноситься до категорії сховищ підвищено стійких до збоїв: поміщені в БД дані автоматично реплікуються на кілька вузлів розподіленої мережі або навіть рівномірно розподіляються до декількох дата-центрів. При збої вузла, його функції на льоту підхоплюються іншими вузлами. Додавання нових вузлів у кластер і оновлення версії Cassandra виробляється на льоту, без додаткового ручного втручання і переконфігурації інших вузлів.

Для спрощення взаємодії з БД підтримується мова формування структурованих запитів CQL (Cassandra Query Language), яка на перший погляд нагадує SQL, але істотно урізана в функціональності. Наприклад, можна виконувати тільки найпростіші запити SELECT з вибіркою за певною умовою, але без підтримки сортування та групування. Додавання та оновлення даних здійснюється через єдиний вираз UPDATE, операція INSERT відсутня (якщо запису немає, при виконанні UPDATE він створюється). З можливостей можна відзначити підтримку просторів імен і сімейств стовпців, створення індексів через вираз "CREATE INDEX". Драйвери з підтримкою CQL підготовлені для мов Python, Java (JDBC/DBAPI2) і JavaScript (Node.js).

Виноски[ред.ред. код]

Посилання[ред.ред. код]