WikiDer > SingleStore
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Разработчики) | SingleStore Inc. |
---|---|
изначальный выпуск | 23 апреля 2013 г.[1] |
Стабильный выпуск | 7.1.11 / 12 октября 2020 г. |
Написано в | C ++ |
Операционная система | Linux |
Доступно в | английский |
Тип | СУБД |
Лицензия | Закрытый источник |
Интернет сайт | www |
SingleStore это распределен, реляционный, SQL база данных система управления[2] (СУБД) с поддержкой ANSI SQL поддержка и известна скоростью приема данных, обработки транзакций и обработки запросов. SingleStore ранее назывался MemSQL.[3]
SingleStore в основном хранит реляционные данные, хотя он также может хранить данные JSON, данные графиков и данные временных рядов. Он поддерживает смешанные рабочие нагрузки, обычно называемые HTAP рабочие нагрузки, а также более традиционные OLTP и OLAP сценарии использования. Для запросов это компилирует Структурированный язык запросов (SQL) в машинный код. Ядро базы данных SingleStore можно запускать в различных Linux среды, включая локальные установки, поставщиков общедоступных и частных облаков, в контейнерах через Kubernetes оператора, или как размещенная служба в облаке, известная как SingleStore Managed Service.
История
23 апреля 2013 года SingleStore запустил свою первую общедоступную версию базы данных под названием MemSQL.[4] Поддерживаются только ранние версии ориентированный на ряд таблицы и были оптимизированы для случаев, когда все данные могут уместиться в основная память. Эта конструкция была основана на идее, что стоимость баран будет продолжать экспоненциально снижаться с течением времени в тенденции, аналогичной Закон Мура. Это в конечном итоге позволит большинству вариантов использования систем баз данных хранить свои данные исключительно в памяти.
Вскоре после запуска в MemSQL была добавлена общая поддержка формата хранения на основе столбцов на диске для работы вместе с хранилищем строк в памяти.[5] Снижение стоимости памяти со временем замедлилось, и рынок систем баз данных, работающих исключительно в памяти, в значительной степени не материализовался из-за растущего спроса на дисковые рабочие нагрузки OLAP. Таким образом, со временем хранилище столбцов MemSQL стало основным направлением и важной функцией для клиентов.
27 октября 2020 года MemSQL была переименована в SingleStore, чтобы отразить смещение акцента с рабочих нагрузок исключительно в памяти. Новое название подчеркивает цель создания универсального формата хранения, способного поддерживать как транзакционные, так и аналитические варианты использования.[6]
Архитектура
Форматы таблиц строк и столбцов
SingleStore может хранить данные в любом ориентированный на ряд таблицы ("rowstores") или столбчатый таблицы ("columnstores"). Используемый формат определяется пользователем при создании таблицы.
Таблицы Rowstore, как следует из названия, хранят информацию в формате строки, который является традиционным форматом данных, используемым СУБД системы. Хранилища строк оптимизированы для одиночных или небольших запросов вставки, обновления или удаления и наиболее тесно связаны с OLTP (транзакционные) варианты использования. Данные для таблиц rowstore полностью хранятся в памяти, что обеспечивает быстрое произвольное чтение, а снимки состояния и журналы транзакций сохраняются на диске.
Columnstores оптимизированы для сложных запросов SELECT, обычно связанных с OLAP (аналитика) и сценарии использования хранилищ данных. Например, большой набор клинических данных для анализа данных лучше всего хранить в столбчатом формате, поскольку запросы, выполняемые против него, обычно будут специальными запросами, в которых агрегаты вычисляются по большому количеству аналогичных элементов данных. Данные для таблиц columnstore хранятся на диске, поддерживая быстрое последовательное чтение и сжатие, которое обычно достигает 5-10x.
Индексирование
Вместо традиционного индекса B-дерева в хранилищах строк SingleStore используется профессионалы оптимизирован для быстрой обработки в памяти без блокировки.[нужна цитата] Columnstores хранят данные, индексированные в отсортированных сегментах, чтобы максимизировать сжатие на диске и обеспечить быстрое упорядоченное сканирование. SingleStore также поддерживает использование хеш-индексов в качестве вторичных индексов для ускорения определенных запросов.
Распределенная архитектура
База данных SingleStore распределена по множеству обычных машин. Данные хранятся в разделах на конечных узлах, и пользователи подключаются к узлам агрегатора.[1] Для агрегатора SingleStore и оконечных узлов устанавливается единое программное обеспечение; администраторы назначают роль каждой машины в кластере во время настройки. Узел агрегатора отвечает за получение SQL-запросов, их разбиение по листовым узлам и агрегирование результатов обратно клиенту. Листовой узел хранит данные SingleStore и обрабатывает запросы от агрегатора (ов). Вся связь между агрегаторами и конечными узлами осуществляется по сети с использованием SQL. SingleStore использует хэш-секционирование для равномерного распределения данных по количеству конечных узлов.[7]
Загрузка в реальном времени
Конвейеры SingleStore позволяют получать данные в реальном времени. Конвейер - это собственный соединитель для таких источников данных, как Апач Кафка, Apache Spark, Amazon S3 ведра Microsoft Azure Хранилище BLOB-объектов или файлы на диске. Конвейер загружает данные в систему с высокой скоростью. Благодаря спискам пропуска без блокировки запросы могут извлекать данные сразу после их получения, но не блокируются для продолжения во время импорта данных.
Долговечность
Надежность хранилища строк в памяти реализуется с помощью журнала упреждающей записи и моментальных снимков, аналогичных контрольным точкам. При настройках по умолчанию, как только транзакция подтверждена в памяти, база данных будет асинхронно записывать транзакцию на диск с такой скоростью, насколько это позволяет диск.[8]
Столбцовое хранилище на диске фактически находится в памяти с помощью структуры, подобной хранилищу строк, индексируемой с помощью skiplist. Эта структура имеет те же гарантии долговечности, что и rowstore SingleStore. Кроме того, columnstore надежен, поскольку его данные хранятся на диске.
Репликация
Кластер SingleStore можно настроить в режиме «высокой доступности» (HA), при котором каждый раздел данных автоматически создается с ведущей и ведомой версиями на двух отдельных конечных узлах. В режиме высокой доступности агрегаторы отправляют транзакции в главные разделы, которые затем отправляют журналы в подчиненные разделы. В случае неожиданного отказа главного устройства подчиненные разделы принимают на себя роль главных разделов в полностью оперативном режиме без простоев.
Форматы распространения
SingleStore можно загрузить бесплатно и запустить в Linux для систем с 4 листовыми узлами по 32 ГБ ОЗУ каждый; лицензия Enterprise требуется для более крупных развертываний и для официальной поддержки SingleStore. Кластерами SingleStore можно управлять в контейнерах с помощью оператора SingleStore Kubernetes. SingleStore также доступен как управляемый сервис под названием SingleStore Managed Service, доступный в различных регионах в Google Cloud и Amazon Web Services, а в ближайшем будущем обещана реализация Microsoft Azure. Базовый механизм и потенциальная производительность системы идентичны во всех форматах распространения.
SingleStore поставляется с набором инструментов для установки, управления и мониторинга под названием SingleStore Tools. При установке SingleStore инструменты можно использовать для настройки распределенной базы данных SingleStore между машинами. SingleStore также предоставляет пользовательский интерфейс запросов и управления на основе браузера, называемый SingleStore Studio, который обеспечивает обработку запросов и мониторинг базы данных, а также показывает работоспособность и информационные данные о работающем кластере.
Смотрите также
- Сравнение систем управления реляционными базами данных
- Сравнение систем управления объектно-реляционными базами данных
- Система управления базой данных
- Список систем управления реляционными базами данных
- Список колоночных СУБД
- Список баз данных в памяти
- Список баз данных, использующих MVCC
- Гибридная транзакционная / аналитическая обработка
Рекомендации
- ^ а б Вторник (14.08.2012). «Архитектура MemSQL - Быстрая (MVCC, InMem, LockFree, CodeGen) и знакомая (SQL)». Высокая масштабируемость. Получено 2019-08-13.
- ^ «MemSQL». Получено 2017-09-29.
- ^ «MemSQL теперь называется SingleStore».
- ^ Френкиль, Эрик (2013). «MemSQL поставляется с версией 2.0. Масштабирует базу данных в памяти по сотням узлов, тысячам ядер» (опубликовано 23.04.2013). Получено 2013-04-23.
- ^ https://www.singlestore.com/blog/celebrating-memsql-availability-two-years-in/
- ^ https://www.singlestore.com/blog/memsql-singlestore-then-there-was-one/
- ^ «Введение в MemSQL | СУБД 2: службы системы управления базами данных».
- ^ «Использование стойкости и восстановления». docs.memsql.com. Получено 2018-01-19.