CrateDB — распределённая колонко-ориентированная реляционно-подобная база данных с поддержкой SQL-интерфейса, разработанная для обработки больших объёмов данных в режиме реального времени. Система сочетает в себе концепции распределённого хранилища, индексирования и выполнения запросов, ориентируясь на сценарии, где требуются низкие задержки записи и чтения при одновременной поддержке аналитических и поисковых операций. CrateDB обеспечивает горизонтальное масштабирование за счёт шардирования и репликации данных и рассчитана на работу в кластерах, размещённых как в облаке, так и на собственном оборудовании.
Архитектура CrateDB включает слои хранения, индексации и распределённого выполнения запросов. Ядро поддерживает хранение табличных данных, временных рядов, документоподобных структур и полнотекстовых индексов; также реализована поддержка геопространственных типов и операций. Интерфейс SQL совместим с расширениями для агрегаций и полнотекстового поиска, при этом элементы индексирования и выполнения распределённых запросов реализованы таким образом, чтобы минимизировать сетевой трафик и обеспечивать быстрые агрегирующие операции над большими объёмами записей.
- Модель данных: таблицы с колонко-ориентированным хранением, поддержка вложенных документоподобных полей и временных рядов.
- Интерфейс: SQL-подобный язык запросов с расширениями для полнотекстового поиска, агрегаций и работы с геоданными.
- Масштабирование: горизонтальное масштабирование через шардирование и автоматическую репликацию для обеспечения отказоустойчивости и распределённой обработки.
- Производительность: оптимизированы операции вставки и массового ввода данных, поддерживаются быстрые агрегации и низкая задержка при выполнении запросов.
- Полнотекстовый поиск: встроенные механизмы индексирования для текстового поиска и ранжирования результатов.
- Геопространственные возможности: типы данных и функции для хранения и запроса географических объектов и выполнения пространственных операций.
- Интеграция: возможности интеграции с инструментами визуализации, потоковой обработки и системами логирования через стандартные интерфейсы и коннекторы.
- Управление кластером: механизмы распределённого восстановления, балансировки нагрузки и мониторинга состояния узлов кластера.
- Надёжность: механизмы репликации и распределённого согласования для обеспечения доступности данных при отказах узлов.
- Безопасность и доступ: управление правами доступа, аутентификация и шифрование на уровне соединений (в зависимости от конфигурации и версии).