Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
15.01.2021
Размер:
33.91 Кб
Скачать

Недоліки apache cassandra

  • особливості внутрішнього мови запитів - незважаючи на деяку схожість з SQL, CQL значно відрізняється від нього. Зокрема, операції INSERT і UPDATE по суті це одне і те ж. Також Cassandra не підтримує операції з'єднання (JOIN). Для об'єднання двох сімейств стовпців доведеться витягувати і об'єднувати дані програмним способом, що дорого і складно для великих наборів даних. СУБД намагається обійти це обмеження, зберігаючи якомога більше даних в одній і тій же рядку. Тому запити, необхідні для застосування, повинні бути визначені в схемі даних.

  • Високі накладні витрати при роботі з великими обсягами даних - через SELECT-driven підходу до проектування даних, необхідна дуже сильна денормализация, що передбачає фактичне створення окремої таблиці під кожен запит.

  • Вимоги до унікальності ключів - кожен ключ, наприклад, ключ рядки і ключ стовпчика, повинен бути унікальним в своїй області дії. Якщо один і той же ключ використовується двічі, дані будуть перезаписані. Втім, ця проблема вирішується використанням складеного ключа, який об'єднує кілька полів або додаванням до ключа випадкового значення або мітки часу.

  • Труднощі з операцією пошуку, яка не вбудована в ядро архітектури Cassandra, і механізми пошуку надбудовуються поверх нього за допомогою сортування даних. Кассандра підтримує вторинні індекси з дещо обмеженою функціональністю, які система будує автоматично. Коли вторинні індекси не працюють, користувачі повинні знати модель даних і будувати індекси самостійно за допомогою сортування і секціонування.

  • Складнощі з використанням типу даних «лічильник» (counter), який не можна сортувати, індексувати і використовувати в рядку з ним якісь інші типи даних. Нагадаємо, в Cassandra значення стовпця-лічильника - це 64-розрядний ціле число зі знаком, яке підтримує дві операції: збільшення і зменшення запит.

Приклади використання apache cassandra

Промислові рішення на базі Cassandra розгорнуті в Cisco, IBM, Cloudkick, Reddit, Digg, Rackspace, Twitter і безлічі інших компаній, що працюють з великими даними. Наприклад, Expedia, велика туристична компанія США, за допомогою Кассандри зберігає мільярди постійно оновлюваних цін з 140 000 готелів. Apple має більше 100 000 вузлів Cassandra в production, що підтверджує відмінну масштабованість цієї СУБД. Інша data-driven організація, міжнародна компанія таксо-перевезень Uber використовує Кассандру в декількох датацентрах, щоб забезпечити інформаційну базу своїх поїздок.

Проаналізувавши інформацію про використання Кассандри в реальних Big Data проектах, можна визначити 5 основних напрямків практичного застосування цієї розподіленої СУБД:

  • каталоги продукції в інтернет-магазинах або плейлисти. Зокрема, Кассандру використовує Spotify - відомий інтернет-сервіс потокового аудіо, що дозволяє легально і безкоштовно прослуховувати понад 50 мільйонів музичних композицій, аудіокниг і подкастів, без скачування їх на пристрій.

  • рекомендаційні системи і персоналізація маркетингових пропозицій. Cassandra допомагає відслідковувати дії користувачів, зберігаючи дані про те, з яким контентом (фільми, ігри, статті або пісні) взаємодіяв споживач і скільки часу він витратив на кожну дію. Далі Кассандра може передати цю інформацію в аналітичний інструмент, який порекомендує клієнту щось аналогічне.

  • Інтернет речей (Internet of Things, IoT), в тому числі промисловий (Industrial Internet of Things). Завдяки своїм архітектурним особливостям, Cassandra призначена для інтенсивних робочих навантажень і швидкого запису безлічі даних. Такі якості роблять цю СУБД вельми корисною для IoT-датчиків і інших smart-пристроїв в різних галузях промисловості, від логістики до сільського господарства.

  • Системи обміну повідомленнями (чати, додатки для спільної роботи, мобільні месенджери і ін.) - це відмінний use-case для Cassandra, як і дані з IoT-датчиків, оскільки в цих випадках потрібно не оновлення інформації, а швидкий запис і оперативне читання.

  • Виявлення шахрайства (Fraud Detection). Незважаючи на деякі складності з підтримкою ACID-транзакцій, банки можуть використовувати цю нереляційних СУБД в рамках своїх антіфрод-систем для своєчасного виявлення і попередження шахрайських операцій. Це можливо завдяки високій швидкості роботи Кассандри і аналітиці в реальному часі за рахунок безшовної інтеграції з відповідними Big Data інструментами, які надає, наприклад, Apache Spark з його бібліотекою алгоритмів машинного навчання MLLib.