Об этом проекте

SequoiaDB (巨杉数据库) — это распределенная документоориентированная NoSQL база данных, спроектированная для крупномасштабных платформ данных. Ее ядро, sequoiadb, реализует собственную нативную распределенную систему хранения, которая гарантирует транзакции ACID, одновременно поддерживая эластичное масштабирование, высокую конкурентность доступа и высокую доступность. Данные хранятся в формате JSON, что обеспечивает гибкую полуструктурированную модель, а система включает интерфейс объектного хранилища, совместимый с S3, что позволяет обрабатывать многоформатные рабочие нагрузки со структурированными, полуструктурированными и неструктурированными данными. Продукт состоит из нескольких компонентов: - Движок: процесс sequoiadb со скриптами управления sdbstart, sdbstop, sdbdblist, sdbfmp. - Оболочка: клиент sdb и его бэкенд sdbbp для интерактивных запросов и администрирования. - Менеджер кластера: sdbcm, sdbcmart, sdbcmtop, sdbcmd для управления топологией кластера и службами. - Инструменты: утилиты для дампа логов (sdbdpsdump), экспорта/импорта (sdbexprt, sdbimprt), проверки данных (sdbinspt), восстановления (sdbrestore), мониторинга (sdbtop, sdbperfcol) и управления веб-службами (sdbwsart, sdbwstop). SequoiaFS предоставляет слой файловой системы, построенный поверх базы данных. - Драйверы: клиентские библиотеки для C, C++, PHP, Java, Python (2 и 3) и .NET, обеспечивающие доступ на конкретных языках. - Коннекторы: адаптеры для Hadoop, Hive, Storm и foreign data wrapper для PostgreSQL для интеграции с существующими экосистемами больших данных и SQL. Для сборки SequoiaDB требуются SCons, Ant, Python и PostgreSQL, а также совместимый инструментальный набор C/C++. Система сборки поддерживает выборочную компиляцию движка, клиентов, оболочки, инструментов, тестовых случаев и FMP (fenced mode process) через флаги SCons (--engine, --client, --shell, --tool, --testcase, --fmp, --all). Драйверы и коннекторы имеют собственные шаги сборки, обычно вызывающие SCons или Maven/Ant в соответствующих каталогах. Упаковка для дистрибутивов на базе RPM обеспечивается через Python-скрипт (package.py), который генерирует устанавливаемые пакеты после выполнения требований RPM. Для запуска SequoiaDB в автономном режиме создается каталог данных, движок запускается с помощью sdbstart (например, ./sdbstart -p 11810 --force), а оболочка (sdb) используется для создания объекта базы данных и выполнения команд. Развертывание кластера следует инструкциям в SequoiaDB Information Center. Проект лицензируется преимущественно под Apache License 2.0, большинство исходных файлов выпущено на этих условиях. Официальная поддержка ориентирована на дистрибутивы Linux x86_64 и ppc64, такие как CentOS, Red Hat, SUSE и Ubuntu; сборки для Windows и 32-битных систем считаются тестовыми. SequoiaDB позиционируется как универсальная платформа данных, подходящая для платформ исторических данных, платформ полных данных, средних офисов данных в реальном времени и сценариев управления контентными данными, предлагая сочетание гибкости NoSQL с гарантиями традиционных баз данных.