1. Головна
  2. Компанія
  3. Блог
  4. HBase і Cassandra: яку ба...

HBase і Cassandra: яку базу даних вибрати?

hbase cassandra

Вибір найефективнішої системи керування базами даних має важливе значення для отримання раціоналізованих операцій і послідовного процесу розробки. В епоху значного зростання Data Science та Big Data Analytics програмісти особливо цінують масштабованість і швидкість баз даних NoSQL.

У PNN Tech ми часто відповідаємо на питання про те, яка база даних працює більш бездоганно та ефективно в конкретному проекті великих даних – іншими словами, це тема HBase проти Cassandra. Однак, щоб дати правильну відповідь, слід враховувати багато деталей, пов’язаних із продуктивністю та архітектурою. Почнемо наш порівняльний огляд з розгляду основ обох систем.

HBase та Cassandra: бази даних з відкритим кодом від різних постачальників ІТ

Обидві бази даних NoSQL є відкритими і широко використовуються як сховища даних. Архітектура Apache Cassandra була створена за зразком Bigtable і DynamoDB від Amazon, тоді як архітектура HBase була створена для роботи на HDRS у системах Hadoop. Перша база даних служить прикладом сховища даних ключ-значення, що містить упорядковані записи стовпців. Apache також складається зі стовпців із частими атрибутами, доступ до яких є миттєвим; система впорядкована та індексована, що спрощує читання даних.

Серед відомих компаній, які використовують Apache Cassandra, є Apple, CVS Health і Verizon Wireless. Одними з лідерів ринку, які впровадили Apache HBase, є Bank of America, JP Morgan Chase і American Express.

HBase проти Cassandra: моделі даних

HBase має таблицю, орієнтовану на стовпці, на верхньому рівні. Кожна таблиця має набори ключів рядків, які були б первинними ключами в традиційній реляційній базі даних. HBase ділить рядки на сімейства стовпців – пов’язані стовпці даних.

Що стосується моделі даних Cassandra, її можна описати як сховище розділених рядків. На його верхньому рівні знаходиться Keyspace з таблицями (сімействами стовпців). У родині стовпців рядки зберігаються на одному диску.

HBase проти Cassandra: безпека баз даних

HBase підтримує авторизацію та автентифікацію: перше може бути обмежено на рівні комірки, коли це необхідно. Автентифікація Kerberos у кластері забезпечує надійне шифрування клієнта.

Так само Cassandra підтримує автентифікацію та авторизацію. Доступ до деяких записів може бути обмежений залежно від ролі співробітника. У Cassandra 4+ адміністрація компанії може бачити послідовність дій, що виконуються з окремими даними, через журнал аудиту.

Продуктивність бази даних HBase та моделі даних Cassandra

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

Крім того, Cassandra має тенденцію читати дані повільніше, оскільки їх потрібно отримати через вузли, що містять інформацію. Завдяки підтримці HDFS із кеш-пам’яттю та фільтрами розведення, Hbase зчитує дані швидше.

Різниця між HBase і Cassandra з точки зору транзакцій і мови запитів

Функція транзакцій ACID у HBase все ще перебуває в бета-версії. Для порівняння, Cassandra поки що не підтримує транзакції та не має можливості відкоту. Однак ви все ще можете використовувати легкі транзакції, що передбачає оновлення записів.

Що стосується мови запитів, Cassandra має CQL – SQL-подібну мову, яка дозволяє вибирати, вставляти, видаляти та оновлювати записи. Однак слід пам’ятати, що недостатньо оптимізовані запити можуть негативно вплинути на продуктивність кластера. CQL можна використовувати або з кластером Cassandra, або з клієнтськими бібліотеками Apache Cassandra.

Оболонку HBase можна вважати найближчою альтернативою мові запитів; користувачі можуть взаємодіяти з даними за допомогою put, create, scan та інших команд. У разі додавання мови Apache Phoenix ви отримаєте враження мови запитів, схожої на SQL. Експерти PNN Soft використовують Java API у кластері HBase, щоб отримати розширені можливості для вставки, створення та оновлення значущих наборів даних.

HBase проти Cassandra: ключові подібності

  1. Тиражування

HBase містить HDFS для реплікації даних, яка, будучи підтримкою стійки, надає пріоритет різним мережевим серверам. В результаті система запобігає втраті даних і витримує одноразове збій мережі.

У Cassandra параметри реплікації розміщуються в окремих проміжках ключів, і деякі з них також можуть бути збережені в стійці. Однак, навпаки, Cassandra не має головного вузла або основної репліки для певного запису. Система примітна своїм центром обробки даних, що визначає стійки/набори вузлів у певному географічному регіоні. Модель даних включає один або кілька центрів обробки даних з можливими реплікаціями між ними.

cassandra-database-architecture

Іншими словами, у вас є єдина база даних із різними регіонами, що призводить до меншої затримки та кращої узгодженості даних у різних регіонах.

Розробники PNN Soft можуть збільшити HBase, додавши додаткові вузли до кластерних, часто регіональних серверів. Система розділить набори даних на нові регіони, якщо обсяг надто великий. Отже, додавання регіональних серверів є ключем до ефективнішого розподілу навантаження.

Hbase archirecture create

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

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

І HBase, і Cassandra були розроблені як розподілені бази даних і можуть ефективно масштабуватися до сотень вузлів.

Коли використовувати HBase та Cassandra: типові випадки використання

Як ми прямо зазначали, обидві системи спрямовані на зберігання та обробку великих наборів даних. Ми рекомендуємо використовувати HBase, щоб повною мірою скористатися перевагами основи HDFS і Hadoop. Це особливо корисно для секторів охорони здоров’я, телекомунікацій та фінансів.

Cassandra, зі свого боку, блищить там, де вашій компанії потрібно оперативно зберігати багато даних. Наприклад, коли зберігання великих наборів даних має вирішальне значення, і вам доведеться рідше звертатися до них. Одним із прикладів такої тенденції є технологія Інтернету речей.

HBase проти Cassandra: підсумки

HBase буде найбільш логічним вибором, якщо вам потрібно скористатися перевагами функцій Hadoop (наприклад, MapReduce). Однак якщо ви націлені на оптимізацію розгортання інфраструктури, Cassandra буде більш вигідною для вашої компанії. Те саме стосується, якщо вам потрібно працювати з реплікацією даних між географічними регіонами: власна підтримка вбудована в Cassandra.

З досвіду PNN Soft ще однією перевагою Cassandra є більш висока підтримка з боку спільноти консультантів – як із хмарними, так і з локальними рішеннями, у випадках несправності кластерів тощо.

Ми сподіваємось дати вам певну ясність щодо питання, яку базу даних вибрати. Якщо вам потрібна додаткова консультація щодо різниці між HBase та Cassandra відповідно до ваших бізнес-цілей, будь ласка, без вагань зв’яжіться з командою PNN Soft.