Что такое Apache Cassandra | Введение в Кассандру
В этой статье мы подробно рассмотрим концепции NoSQL, поскольку их семейство играет жизненно важную роль на рынке больших данных. Мы также подробно обсудим, что такое Cassandra, ведущая на рынке база данных NoSQL, архитектуру Cassandra, ключевые компоненты и варианты ее использования.
1. Введение в базы данных NoSQL.
Термин NoSQL относится к методу работы с базами данных, который отличается от типичных систем управления реляционными базами данных (СУБД). Чтобы понять NoSQL, необходимо сначала понять SQL — язык запросов, используемый реляционными базами данных.
Таблицы, столбцы, строки и схемы используются для организации и извлечения данных в реляционных базах данных. С другой стороны, базы данных NoSQL не полагаются на эти структуры и вместо этого используют более гибкие модели данных.
Базы данных NoSQL были приняты основными организациями, поскольку СУБД постепенно перестали соответствовать требованиям производительности, масштабируемости и гибкости приложений следующего поколения с интенсивным использованием данных.
"Не SQL" или "не только SQL" — два термина, которые можно использовать для описания NoSQL.
Неструктурированные данные увеличиваются гораздо быстрее, чем структурированные данные, и не вписываются в реляционные структуры РСУБД, поэтому NoSQL особенно полезен для хранения неструктурированных данных.
Данные пользователя и сеанса; данные чата, обмена сообщениями и журналов; данные временных рядов, такие как данные Интернета вещей и устройств; а огромные элементы, такие как видео и фотографии, являются примерами неструктурированных данных.
2. Типы баз данных NoSQL
2.1. Хранилище ключевых значений
Это часто считают самой базовой формой базы данных NoSQL. Эта модель данных без схемы организована как словарь пар ключ-значение с ключом и значением для каждого элемента.
Он часто используется для кэширования и хранения данных сеанса пользователя, например корзин покупок. Однако когда вам нужно получить несколько записей одновременно, это неоптимально.
Чтобы обеспечить масштабируемость и доступность, данные секционируются и реплицируются по всему кластеру. В результате хранилище значений ключей редко поддерживает транзакции.
Они неплохо масштабируют приложения, работающие с высокоскоростными нетранзакционными данными. Amazon DynamoDB, Redis и Riak – популярные базы данных хранилища ключей-значений.
2.2. Документ
Базы данных документов развивают концепцию базы данных «ключ-значение» на шаг вперед, группируя документы в коллекции. Они допускают запросы к любому атрибуту в документе и поддерживают вложенные пары «ключ-значение».
Данные в основном представляются в виде объекта или документа типа JSON в коде приложения, поскольку это эффективная и интуитивно понятная парадигма данных для разработчиков.
MongoDB и Amazon DocumentDB являются примерами баз данных документов.
2.3. Столбец-ориентированный
Базы данных, ориентированные на столбцы, фокусируются на столбцах, и каждый столбец обрабатывается отдельно. При запросе к определенным столбцам базы данных столбцово-ориентированные базы данных более эффективны при хранении данных и выполнении запросов к строкам разреженных данных. Они хорошо работают при выполнении агрегатных запросов, таких как SUM, COUNT, AVG, MIN, поскольку данные легко доступны в столбце.
HBase, Apache Cassandra — лучшие примеры столбцово-ориентированной базы данных.
2.4. На основе графа
База данных графов отслеживает как сущности, так и их связи. Объект представлен в виде узла, а соединения/отношения представлены в виде ребер.
Ребро устанавливает соединение между узлами. Каждому узлу и ребру присваивается уникальный идентификатор. База данных графов является многореляционной по своей природе.
Neo4J, Infinite Graph, OrientDB — популярные базы данных графов.
3. Что такое Апач Кассандра?
Apache Cassandra — это столбцово-ориентированная и распределенная система управления базами данных с открытым исходным кодом, которая может обрабатывать большие объемы данных в нескольких центрах обработки данных и облаке.
Его способность управлять большими объемами делает его особенно полезным для крупного бизнеса. В результате его сейчас используют несколько крупных компаний, в том числе Apple, Instagram, Facebook, Uber, Twitter, Cisco, eBay и Netflix.
Отличительные черты Кассандры:
- Открытый источник
- Чрезвычайно масштабируемый
- Высокая доступность
- Нет единой точки отказа
- Высокая производительность
- Отказоустойчивой
4. Кассандра Архитектура
Apache Cassandra создан для управления большими рабочими нагрузками данных на нескольких узлах без единой точки отказа. Его конструкция построена на предположении, что сбои системы и оборудования неизбежны.
Cassandra решает проблему сбоев за счет развертывания одноранговой распределенной системы между однородными узлами и распределения данных по кластеру.
Архитектура Cassandra основана на кольце и не имеет ни главных узлов, ни единых точек отказа.
- Используя протокол одноранговой связи, каждый узел часто передает информацию о состоянии себя и других узлов в кластере. Чтобы обеспечить надежность данных, каждый узел имеет последовательно записываемый журнал фиксации, в котором фиксируются действия по записи.
- Данные впоследствии индексируются и записываются в memtable — структуру в памяти, имитирующую кэш обратной записи. Данные записываются на диски в файле данных SSTables всякий раз, когда структура памяти завершена.
- Все записи автоматически секционируются и дублируются/реплицируются по всему кластеру. Cassandra использует процесс под названием сжатие для регулярного объединения SSTables, удаляя устаревшие данные, помеченные для удаления с помощью надгробия. Различные процедуры восстановления используются для обеспечения согласованности всех данных в кластере.
- Cassandra — это многораздельная база данных с хранилищем строк, в которой строки сгруппированы в таблицы и требуется первичный ключ. Используя CQL, любой авторизованный пользователь может подключиться к любому узлу в любом центре обработки данных и получить доступ к данным. CQL имеет синтаксис, аналогичный SQL, и работает с табличными данными.
- Любой узел в кластере может получать клиентские запросы на чтение или запись. Когда клиент отправляет запрос узлу, этот узел становится координатором для этой конкретной клиентской операции. Между клиентским приложением и узлами, владеющими запрашиваемыми данными, координатор действует как прокси. В зависимости от того, как устроен кластер, координатор выбирает, какие узлы кольца должны получить запрос.
Кассандра Архитектура
5. Ключевые компоненты Кассандры
- Узел: это сервер, на котором хранятся данные, вокруг него построена инфраструктура Cassandra.
- Центр обработки данных: совокупность серверов.
- Кластер. Один или несколько центров обработки данных составляют кластер.
- SSTable: Таблица отсортированных строк — это файл, содержащий пары строк ключ/значение, отсортированные по ключам. К каждой таблице Cassandra добавляются только таблицы SSTable и последовательно сохраняются на диске.
- Журнал фиксации. В целях надежности все данные изначально записываются в журнал фиксации. Как только все его данные будут перенесены в SSTables, их можно будет заархивировать, удалить или переработать.
- Mem-Table: резидентная структура данных в памяти называется mem-таблицей. Данные будут записаны в таблицу памяти после журнала фиксации. Иногда для семейства с одним столбцом может существовать множество таблиц mem.
- Фильтры Блума. Фильтры Блума используются Cassandra для определения того, будет ли какая-либо из таблиц SSTable иметь желаемый ключ раздела без необходимости чтения их содержимого.
6. Где использовать Кассандру?
Кассандра показала себя чрезвычайно полезной в различных приложениях.
Ниже приведены некоторые ключевые моменты при выборе Кассандры:
- Мы должны отдать предпочтение Cassandra, когда природа приложения требует интенсивной записи, а не чтения. Распределение данных между узлами происходит быстро, а запись недорогая.
- Cassandra также подходит для распределения данных по различным центрам обработки данных и зонам доступности облака.
- Cassandra может стать мощной «магистралью» для аналитики в реальном времени при использовании в сочетании с Apache Spark и другими инструментами. Он также масштабируется линейным образом. Итак, если вы ожидаете, что объем ваших данных в реальном времени будет расти, Cassandra, несомненно, будет лучшим вариантом.
7. Идеальные варианты использования Cassandra
- Сообщения. Поскольку Cassandra может обрабатывать огромные объемы данных, это лучший вариант службы обмена сообщениями.
- Приложения для датчиков: Cassandra подходит для обработки данных, поступающих от различных устройств датчиков с высокой скоростью.
- Эком-приложения. Многие розничные продавцы полагаются на Cassandra для обеспечения надежной безопасности корзин покупок и быстрого ввода и вывода каталога товаров.
- Системы рекомендаций. Cassandra особенно хорошо подходит для потребительского анализа и рекомендаций, что делает ее популярным выбором среди онлайн-бизнеса и платформ социальных сетей.
8. Резюме
В этой статье мы рассмотрели концепции баз данных NoSQL и базовую архитектуру Cassandra. Мы рассмотрим установку Cassandra в следующих статьях.
Читать далее:
- Как установить Cassandra в CentOS
Ресурс:
- https://aws.amazon.com/nosql/