Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

CrateDB - это распределенная система управления базами данных SQL , которая объединяет хранилище данных, ориентированное на документы, с возможностью поиска . Это открытый исходный код , написанный на Java , основанный на архитектуре без совместного использования ресурсов и рассчитанный на высокую масштабируемость. CrateDB включает компоненты от Presto , Lucene , Elasticsearch и Netty .

История [ править ]

Проект 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 также передается напрямую, когда вновь выделенная реплика инициализируется из первичного шарда.

Ссылки [ править ]

  1. ^ Franz ОРФ, Clemens Питер, Jodok Batlogg, Roland Альтон-Scheidl (ред.): Open Source Initiative Форарльберг. Perspektiven für Wirtschaft, Bildung und Verwaltung, 2005.
  2. ^ "CrateDB объединяет гибкость NoSQL, знакомство с SQL" InfoWorld. 19 декабря 2016 г.
  3. ^ «Открытые исходные данные для хранилища данных собирают 1,5 миллиона долларов от Sunstone и DFJ Esprit» . TechCrunch . Проверено 13 января 2021 .
  4. ^ "Запуск Vorarlberger" Ящик данных "ausgezeichnet" . vol.at . Проверено 13 января 2021 .
  5. ^ "Данные ящика: Vorarlberger gewinnen bei Techcrunch Europe" . Horizont.at .
  6. ^ FinSMEs (2016-03-15). «Crate Technology привлекает 4 миллиона долларов финансирования» . FinSMEs . Проверено 13 января 2021 .
  7. ^ Франциско, Томас Клэберн в Сан. «Crate.io распаковывает кластеризованный SQL CrateDB, перемещается в Калифорнию» . www.theregister.com . Проверено 13 января 2021 .
  8. ^ Кепеш, Бен (2016-12-14). «CrateDB: база данных, ориентированная на Интернет вещей и машинные данные» . Сетевой мир . Проверено 13 января 2021 .
  9. ^ Yegulalp, Сердар (2017-05-16). «CrateDB 2.0 Enterprise делает упор на безопасность, мониторинг и открытый исходный код» . InfoWorld . Проверено 13 января 2021 .
  10. ^ «Crate.io включает в себя новые функции и услуги по обновлению БД» . LinuxInsider . 2017-05-17 . Проверено 13 января 2021 .
  11. ^ «В версии 2.0 инструменты базы данных Crate.io сделали упор на IoT» . TechCrunch . Проверено 13 января 2021 .
  12. ^ FinSMEs (2017-01-02). «Crate.io привлекает 2,5 миллиона евро в виде посевного финансирования» . FinSMEs . Проверено 13 января 2021 .
  13. ^ «Версия 4.0.0 - CrateDB: Справочник» . crate.io . Проверено 13 января 2021 .
  14. ^ Crate.io (09.09.2020). «Ева Шенлейтнер присоединяется к Crate.io в качестве генерального директора» . Комната новостей GlobeNewswire . Проверено 13 января 2021 .

Внешние ссылки [ править ]

  • Официальный сайт