Apache HBase — распределённая столбцовая NoSQL база данных с открытым исходным кодом, реализованная на языке Java и разработанная для экосистемы Apache Hadoop. Она вдохновлена архитектурой Google Bigtable и предназначена для хранения и оперативного чтения/записи больших объёмов разреженных структурированных данных. HBase обеспечивает масштабируемое горизонтальное распределение данных по узлам кластера и поддерживает модель данных, основанную на таблицах, строках и семействaх столбцов, где каждая ячейка может содержать версионированные значения.
Проект интегрируется с системой распределённого хранения файлов Hadoop (HDFS) и использует её для долговременного хранения, при этом реализуя собственные механизмы индексирования, управления метаданными и маршрутизации запросов. HBase обеспечивает сильную согласованность при чтениях и записях на уровне строки, поддерживает сканирование диапазонов строк и оптимизировано для высокопроизводительных последовательных операций. Типичные сценарии применения включают аналитические платформы в реальном времени, хранилища событий, индексы для поиска и удалённое хранение больших объёмов телеметрии.
- Модель данных: таблицы с нефиксированными столбцами, строки идентифицируются row key, столбцы организованы в семейства столбцов, значения версионируются по временной метке.
- Масштабируемость: горизонтальное масштабирование путём разбиения таблиц на регионы, распределяемые по серверам региона (region servers).
- Интеграция с Hadoop: использование HDFS для долговременного хранения и совместимость с инструментами экосистемы Hadoop.
- Согласованность: сильная согласованность на уровне строки, атомарные операции записи для отдельных строк.
- Производительность: оптимизация для высокоскоростных последовательных операций записи и сканирования больших диапазонов данных.
- Архитектура: разделение ответственности между мастером (master) для управления метаданными и серверами регионов для хранения данных и обслуживания запросов.
- Механизмы хранения: использование логов предзаписи и хранения в виде SSTable-подобных файлов с периодической компакцией для управления фрагментацией и удалением устаревших версий.
- Высокая доступность и отказоустойчивость: репликация данных через HDFS и механизмы восстановления регионов при сбоях узлов.
- Инструменты доступа: API на Java, поддержка сканирований, фильтров и пакетных операций; возможна интеграция с другими клиентскими библиотеками и промежуточными слоями.
- Типичные ограничения: не является реляционной СУБД, отсутствуют сложные транзакции на уровне нескольких строк/таблиц по умолчанию; проект ориентирован на большие объёмы данных и простые модели доступа.