Рубрики
Uncategorized

Что такое данные серии времени, и почему мы создаем базу данных серии Time (TSDB)?

Как и все хорошие супергерои, у каждой компании есть собственная история о происхождении, объясняющая, почему они были созданы … помечены с DEVOPS, базой данных, Opensource, SQL.

Как и все хорошие супергерои, у каждой компании есть своя история о происхождении, объясняя, почему они были созданы и как они росли со временем. В этой статье охватывает историй о происхождении questdb и кадрирует ее с введением баз данных серии Time, чтобы показать, где мы сидим в этом ландшафте сегодня.

Часть I: Данные и характеристики временных серий ЦДБ

Данные временных серий объяснены

Временные серии — это преемственность точек данных, заказываемых временем. Эти точки данных могут быть преемственностью событий от пользователей приложений, состояния процессора и использования памяти с течением времени, финансовые сделки записали все микросекунды или датчики из выделяющих данных автомобиля о ускорении и скорости автомобиля.

По этой причине серию времени синонимично с большим количеством данных. В отличие от традиционных баз данных, в которых старые записи данных обычно обновляются с самыми последними точками данных, чтобы показать новейшее состояние, базы данных серии времени («ЦДБ») постоянно накапливаются точки данных со временем. Таким образом, можно привлечь понимание от эволюции метрик с течением времени, чтобы заключить значимые идеи от данных. Лучше еще состоит в том, чтобы предсказать будущие события с помощью моделей машинного обучения на основе анализа исторических временных серий.

Базы данных временного ряда были успешно приняты для использования в финансовых приложениях (команда World QuestDB приходит от), где хранятся и запрашивание изменений в наличии, цена, количествах и сделках со временем — это критично. С повышением количества подключенных устройств, мониторинг приложений и наблюдаемость, данные временных рядов доказывают, что он имеет решающее значение почти во всех полях.

В результате временные серии были самые быстрые растущие категории базы данных в течение последних двух лет в соответствии с DB-Двигатели Отказ

Производительность — это столп базы данных серии Time-Series

Как используйте случаи, которые генерируют данные, подходящие для анализа временной серии, увеличиваются экспоненциально, так и сумма необработанного данных. Это означает, что TSDBS должны быть разработаны для обработки исключительно больших объемов, в частности, исполнительное приема (операции записи) — это функция краеугольного камня.

Данные серии временных серий обычно встречаются в очень требовательных случаях корпоративного использования, когда требования для проглатывания данных обычно представляют собой около миллиона точек данных в секунду. Способность справиться с несколькими источниками данных также имеет первостепенное значение.

Например, события фондового рынка, происходящие на микросекунде (и наносекундной) частоте, или тысячи датчиков IOT, отправляющие атмосферные данные непрерывно из морской буровой установки. Самое главное, что Enterprises ожидают, что базы данных обрабатывают разрывы данных, которые являются высокими объемами данных, входящих в нерегулярные интервалы. Это очень распространено на финансовых рынках, с шипами торгового объема, происходящего после событий, которые трудно предсказать.

Как только все данные хранятся в базе данных, большинство случаев использования требуют запроса (чтение операций) эти данные в режиме реального времени. Операционные группы должны будут видеть соответствующие метрики, которые показывают состояние серверов приложений, как только найден аномалия. Сайты электронной коммерции должны проанализировать огромные наборы данных поведения покупателей с течением времени, чтобы собрать новые идеи и оптимизировать свои запасы вследствие. Fintech Company захочет обнаружить мошенничество, поскольку происходят транзакции.

ЦДБС наиболее важные функции и компромиссы

TSDBS не оптимизированы для рабочих нагрузок OLTP, которые обычно включают много регулярных обновлений и удаления операций. Те, кому лучше обрабатываются реляционными базами данных, такими как PostgreSQL, MySQL, SQL Server или Oracle.

Напротив, данные серии Time — это в основном рабочая нагрузка только на добавление с операциями удаления, выполненных в партиях на менее последние данные. Как правило, пользователи самые касаются последних данных, которые анализируются на лету. Мы перечислим некоторые из самых интересных функций базы данных серии Time. Кроме того, мы суммируем, как QuestDB обращается к этим потребностям.

  • Поверхностка : Представляя данные с более низкой частотой. Например, переключение с ежедневного представления до ежемесячного представления. Обычно это делается на лету на приборной панели и требует, чтобы вычислились очень быстрые функции агрегации. Чтобы облегчить такие запросы, QuestDB построил нативное расширение для ANSI SQL с функцией Образец по Отказ Примечание: наш Grafana Учебное пособие показывает поперечные примеры.

  • Интервальный поиск : Быстрое извлечение данных над произвольными интервалами. Например, масштабирование в определенный срок, предшествующий оповещению мониторинга, чтобы лучше понять базовую причину в режиме реального времени. Questdb’s. Где Статья для поиска метки времени будет быстрым и эффективным, но требует назначенного метки времени.

  • Временные серии присоединяются : Совместите данные серии времени соединения из двух разных таблиц, которые не имеют точно соответствующих временных метров. QuestDB поддерживает Asof присоединяется. Questdb’s SQL Questy, чтобы соответствовать двум столам («ставкам» и «спрашивает») с неравными временными метками будет выглядеть:

  • Автоматизированное управление разделением : Временные разделы создаются автоматически в качестве данных. В Questdb данные хранится в столбцах и разделенных временем. Это позволяет получить доступ к одному определенному столбцу для заданного раздела времени, а не поднимая всю таблицу в памяти, которая является вычислительной очень интенсивной операцией. Мы видим Это как предпосылка для быстрой и эффективной чтения.

  • Протоколы приема временных серий : Возможность прошедшего неструктурированных данных временных серий, кратко обязательно. QuestDB поддерживает [Line Protocol Prouckdb ( https://questdb.io/docs/develop/insert-data#influxdb-line-protocol ), который является отраслевым стандартом для наблюдаемости. Колонны на лету без указания схемы заранее.

  • Самые последние первые : С данными серии Time, самые последние данные часто бывают проанализированы. Базы данных должны иметь возможность вытащить последнюю запись очень быстро, легко. Расширение языка SQL Questdb включает в себя Последнее по Чтобы получить самый последний вид на запись мгновенно. В качестве данных принимают данные в хронологическом порядке, QuestDB запускает сканирование снизу и, таким образом, может очень быстро извлекать точку данных.

Часть 2: Почему мы отправились для создания Questdb

Когда все началось 7 лет назад

Наш CTO работал в электронных торгах, строительных системах более 10 лет. В 2013 году его босс не позволит ему использовать единственную высокопроизводительную базу данных, подходящую для сделки с данными временных серий из-за его запатентованного характера и цены.

QuestDB был построен с намерением демократизации производительности, который был доступен только для высокопроизводительных приложений Enterprise, а также для того, чтобы сделать инструменты, доступную для каждого разработчика по всему миру, используя модель распределения с открытым исходным кодом. Вместо того, чтобы написать новый язык запросов с нуля, QuestDB будет содействовать усыновлению и доступности через SQL, а не новый комплексный запатентованный язык.

Мы слышали большое количество компаний, жалоб к ограничениям производительности баз данных временных данных с открытым исходным кодом. Большинство из этих повторных используемых существующих библиотек или являются расширением известной базы данных, которая не предназначена для эффективной обработки данных серии Time в первую очередь.

Вместо этого мы выбрали альтернативный маршрут, который занял более 7 лет НИОКР. Наше видение с первого дня было оспаривать нормативу и создать программное обеспечение, которое использует новые подходы и использует методы, извлеченные в торговых этажах с низкой задержкой. Важным аспектом было изучение и понять эволюцию аппаратного обеспечения для создания программного обеспечения для базы данных, которые могут извлечь больше показателей CPU, памяти и современных жестких дисков.

Questdb дизайн и производительность

QuestDB является встроенным нулевым GC Java и C ++, и каждый один алгоритм в базе кода был записан с нуля с целью максимизации производительности.

Модель данных QuestDB (массивы на основе времени) отличается от деревьев LSM или B-деревьев, на основе хранения на основе хранения на основе B-деревьев, найденных в TopuxDB или TimeScaledB. Это требует меньше над головой и дублированием данных при сохранении немедленной последовательности и сохраняющихся данных на диске.

Эта линейная структура модели данных массивно оптимизирует проглатывание по мере того, как она позволяет базынесу базыревать данные чрезвычайно эффективно в небольших кусках и обрабатывать все это параллельно. QuestDB также насыщает сетевые карты для обработки сообщений из нескольких отправителей параллельно. Наше проглатывание только присоединяется только с порядком сложности O (1); QuestDB не полагается на вычислительно интенсивные индексы, чтобы перенаправить данные, поскольку он попадает в базу данных. Из заказа проглатывает и повторно заказано в памяти, прежде чем быть сохраненным на диск.

Макет данных QuestDB позволяет более быстрому доступу доступа к данным. Что касается запросов, наша кодовая база использует современную архитектуру ЦП с инструкциями SIMD, чтобы запросить, чтобы одинаковую операцию выполнять на нескольких элементах данных параллельно. Мы храним данные в столбцах и разбиваем ее по времени, чтобы поднять минимальное количество данных с диска для данного запроса.

Для того, чтобы продемонстрировать возможности нашей базы данных, мы решили собрать онлайн демонстрация , который содержит набор данных на 1,6 миллиарда строк с более чем 10-летними такси NYC и данных погодных условиях (350 ГБ). Аппаратное питание демонстрационного экземпляра C5.Метала (AWS) с 24 физическими сердечниками и 192 ГБ памяти. Данные хранятся и доступны с диска, ни один из результатов не является кэшированным или предварительно рассчитанным. Постммерм Questdb’s Swordhn на Hackernews можно найти здесь Отказ

Questdb и его растущее сообщество

Выдвижение производительности базы данных выше и выше, еще более при этом упрощение разработчиков для начала нашего продукта — это то, что мотивирует нас каждый день. Вот почему мы сосредоточены на создании сильного сообщества разработчиков, которые могут участвовать, и улучшить продукт через нашу модель распределения с открытым исходным кодом. Мы надеемся увидеть вас на нашем Слабый канал.

Оригинальный пост был опубликован на Блог Questdb Отказ

Оригинал: «https://dev.to/questdb/what-is-time-series-data-and-why-are-we-building-a-time-series-database-tsdb-47b9»