CrateDB - это распределенная система управления базами данных SQL , которая объединяет хранилище данных, ориентированное на документы, с возможностью поиска . Это открытый исходный код , написанный на Java , основанный на архитектуре без совместного использования ресурсов и рассчитанный на высокую масштабируемость. CrateDB включает компоненты от Presto , Lucene , Elasticsearch и Netty .
Разработчики) | Crate.io, Inc. |
---|---|
Стабильный выпуск | 4.5 / 31.03.2021 |
Репозиторий | https://github.com/crate/crate |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Тип | Хранилище данных |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | ящик |
История
Проект CrateDB был начат Джодоком Батлоггом, участником и создателем открытого исходного кода, который внес свой вклад в Open Source Initiative Vorarlberg [1], работая в Lovely Systems в Дорнбирне . Программное обеспечение представляет собой кластерную базу данных с открытым исходным кодом, используемую для быстрого текстового поиска и аналитики. [2]
Компания, которая теперь называется Crate.io, увеличила свой первый раунд финансирования в апреле 2014 года. [3] В июне того же года Crate.io выиграл приз судьи конкурса GigaOm Structure Launchpad. [4] В октябре Crate.io выиграл конкурс TechCrunch Disrupt Europe в Лондоне. [5]
Crate.io закрыл учредительный раунд на 4 миллиона долларов в марте 2016 года. [6] В декабре был выпущен CrateDB 1.0, который скачали более одного миллиона раз. [7] [8]
CrateDB 2.0, первая корпоративная версия CrateDB, была выпущена в мае 2017 года [9] [10] [11] после раунда на 2,5 миллиона долларов от Dawn Capital, Draper Esprit, Speedinvest и Sunstone Capital. [12]
CrateDB 4.0 был выпущен в июне 2019 года. [13]
С сентября 2020 года Crate.io возглавляет Ева Шенлейтнер в качестве генерального директора. [14]
Обзор
Архитектура
CrateDB работает в архитектуре без совместного использования ресурсов как кластер идентично настроенных серверов (узлов). Узлы координируются для автоматического распределения выполнения операций записи и запросов по кластеру.
Запрос
Синтаксис SQL CrateDB включает соединения, агрегаты, индексы, подзапросы, пользовательские функции и представления. Он также поддерживает полнотекстовый поиск, геопространственные запросы и вложенные столбцы объектов JSON.
Для распределения запросов CrateDB реализует резидентные в памяти кеши столбчатых полей на каждом сегменте. Кеши сообщают механизму запросов, есть ли в этом сегменте строки, которые соответствуют критериям запроса, и где они расположены. Это выполняется автоматически.
Схемы
CrateDB поддерживает «строгие», «динамические» или «игнорируемые» схемы:
- Строгая схема: если оператор INSERT включает столбец, который не был определен в таблице, CrateDB применяет исходную схему, отклоняя INSERT и выдавая ошибку.
- Динамическая схема: CrateDB автоматически обновляет схему, индексируя новый столбец.
- Игнорируемая схема: CrateDB не индексирует столбец, но сохраняет простое значение JSON.
Последовательность
CrateDB реализует в конечном итоге согласованную неблокирующую модель вставки данных. Он включает в себя управление версиями записей, оптимистичное управление параллелизмом и настройку частоты обновления на уровне таблицы, которая заставляет данные CrateDB согласовываться каждые n миллисекунд.
CrateDB поддерживает согласованность чтения после записи: запросы, извлекающие определенную строку по ее первичному ключу, всегда получают самую последнюю строку. Все остальные запросы (поисковые операции) возвращают согласованные в конечном итоге данные.
Операции поиска выполняются на общих IndexReaders , которые предоставляют возможности кэширования и обратного просмотра для шардов. IndexReader всегда привязан к сегменту Lucene, из которого он был запущен, то есть его необходимо обновить, чтобы увидеть новые изменения. Следовательно, поиск видит изменение только в том случае, если связанный IndexReader был обновлен после того, как это изменение произошло. По умолчанию это выполняется один раз в секунду, но его можно изменить так, чтобы оно происходило более или менее часто.
Каждый осколок реплики обновляется синхронно со своим основным и всегда несет одну и ту же информацию. Следовательно, с точки зрения согласованности, не имеет значения, осуществляется доступ к первичному или реплицированному осколку. В CrateDB только обновление IndexReader влияет на согласованность.
Атомарность и долговечность
CrateDB реализует WAL ( ведение журнала с упреждающей записью):
- Операции со строками (которые хранятся внутри CrateDB как документы JSON) являются атомарными.
- Операции со строками сохраняются на диске без необходимости выполнять фиксацию Lucene для каждой операции записи. Когда транслог очищается, все данные записываются в постоянное хранилище индексов Lucene, а транслог очищается.
- В случае нечистого завершения работы шарда транзакции в транслоге воспроизводятся при запуске, чтобы гарантировать, что все выполняемые операции будут постоянными.
- Translog также передается напрямую, когда вновь выделенная реплика инициализируется из первичного шарда.
Рекомендации
- ^ Franz ОРФ, Clemens Питер, Jodok Batlogg, Roland Альтон-Scheidl (ред.): Open Source Initiative Форарльберг. Perspektiven für Wirtschaft, Bildung und Verwaltung, 2005.
- ^ "CrateDB объединяет гибкость NoSQL, знакомство с SQL" InfoWorld. 19 декабря 2016 г.
- ^ «Открытые исходные данные для хранилища данных собирают 1,5 миллиона долларов от Sunstone и DFJ Esprit» . TechCrunch . Проверено 13 января 2021 .
- ^ "Vorarlberger Startup" Ящик данных "ausgezeichnet" . vol.at . Проверено 13 января 2021 .
- ^ «Данные ящика: Vorarlberger gewinnen bei Techcrunch Europe» . Horizont.at .
- ^ FinSMEs (2016-03-15). «Crate Technology привлекает 4 миллиона долларов финансирования» . FinSMEs . Проверено 13 января 2021 .
- ^ Франциско, Томас Клэберн в Сан. «Crate.io распаковывает кластеризованный SQL CrateDB, перемещается в Калифорнию» . www.theregister.com . Проверено 13 января 2021 .
- ^ Кепес, Бен (14 декабря 2016 г.). «CrateDB: база данных, ориентированная на Интернет вещей и машинные данные» . Сетевой мир . Проверено 13 января 2021 .
- ^ Егулалп, Сердар (16.05.2017). «CrateDB 2.0 Enterprise делает упор на безопасность, мониторинг и открытый исходный код» . InfoWorld . Проверено 13 января 2021 .
- ^ «Crate.io включает в себя новые функции и услуги по обновлению БД» . LinuxInsider . 2017-05-17 . Проверено 13 января 2021 .
- ^ «В версии 2.0 инструменты баз данных Crate.io сделали упор на IoT» . TechCrunch . Проверено 13 января 2021 .
- ^ ФинСМЭ (02.01.2017). «Crate.io привлекает 2,5 миллиона евро в виде посевного финансирования» . FinSMEs . Проверено 13 января 2021 .
- ^ «Версия 4.0.0 - CrateDB: Справочник» . crate.io . Проверено 13 января 2021 .
- ^ Crate.io (09.09.2020). «Ева Шенлейтнер присоединяется к Crate.io в качестве генерального директора» . Комната новостей GlobeNewswire . Проверено 13 января 2021 .
Внешние ссылки
- Официальный веб-сайт