Linuxoid.pro

Сообщество разработчиков программного обеспечения и IT-специалистов

4 лучших баз данных временных рядов 2021 года

При разработке IoT, финансовых или промышленных приложений выбор хорошей базы данных временных рядов в большинстве случаев является головной болью, когда вы выбираете между более чем 30 (и растущим) списком поставщиков временных рядов в отрасли.

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

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

Эта статья  поможет вам  сравнить  различные варианты.

Вот список  моих лучших баз данных временных рядов для использования в 2021 году .

1. InfluxDB

InfluxDB , созданная InfluxData в 2013 году , представляет собой полностью  открытую базу данных временных рядов,  работающую во всех текущих операционных системах. InfluxDB поддерживает очень большой набор языков программирования (да… даже Lisp и Clojure…). Он оптимизирован для большой нагрузки записи и прекрасно работает с параллелизмом.

InfluxDB не содержит схемы  : он построен на  разновидностях NoSQL  и позволяет быстро изменять  схему базы данных. В зависимости от того, что вы пытаетесь построить, этот концептуальный выбор  может или не может быть адаптирован к вашим потребностям .

Почему вам следует использовать InfluxDB?

  • Поиграйте с ним за 5 минут

Всего пять минут — это все, что вам нужно с момента загрузки и до того, как вы сможете поиграть с ним. Хорошая техническая документация  упрощает установку, настройку и запуск InfluxDB. Как база данных, подобная NoSQL, вам не нужно каким-либо образом настраивать свою базу данных:  вы вставляете свои данные, и все готово.

  • Интегрированный стек TICK

InfluxDB является частью стека TICK:  Telegraf, InfluxDB, Chronograf и Kapacitor . InfluxData предоставляет прямо из коробки  инструмент визуализации  (который можно сравнить с Grafana), механизм обработки данных, который напрямую связывается с InfluxDB, и набор из более чем  50+ агентов, которые могут собирать метрики в реальном времени  для множества разные источники данных.

А теперь будем честны.

InfluxDB большую часть времени используется с Grafana. Chronograf (на данный момент) не так хорош, как Grafana, но InfluxData пытается развернуть корабль. Построив  Flux, новый язык обработки данных ,  и интегрировать его непосредственно Chronograf, они могли бы предложить некоторые очень уникальные особенности к нему в ближайшие месяцы.

Сайт InfluxDB — Influxdata.com

2. TimescaleDB

В прошлом году TimescaleDB заняла 15-е  место в рейтинге. В этом году она значительно продвинулась в этом рейтинге.

Почему?

Что ж, если вы спросите меня, они предоставляют  очень надежную и масштабируемую альтернативу InfluxDB . TimescaleDB также имеет открытый исходный код и основан на  предпосылках SQL . Они также предоставляют очень большой набор поддерживаемых языков программирования (включая Java и Python) для прямой интеграции ваших приложений с ними.

TimescaleDB  напрямую связан с PostgresSQL,  поскольку он масштабирует знаменитую реляционную базу данных, предлагая уникальный набор операций, связанных с временными рядами (например, быстрое извлечение).

Почему вам следует использовать TimescaleDB?

  • Поддержка SQL  :

Одним из величайших достоинств TimescaleDB является то, что он изначально поддерживает  язык SQL  и позволяет разработчикам быстро переходить на новый язык без необходимости изучать какой-либо новый язык. Это, конечно, очень хороший аспект для продуктивности разработчиков, так как вы можете быть уверены, что опытные SQL-разработчики в вашей команде могут сразу же эффективно работать с TimescaleDB.

  •  Интеграция PostgresSQL  :

The Guardian сделал очень хорошую статью, в которой объяснил, что они перешли от MongoDB к PostgresSQL в пользу масштабирования своей архитектуры и шифрования своего контента в REST. Как видите,  крупные компании полагаются на системы  с ограничениями SQL (конечно, с облачной архитектурой) для обеспечения надежности и доступности системы. Я верю, что  PostgresSQL будет продолжать расти , как  и TimescaleDB . Будучи частью экосистемы PostgresSQL, TimescaleDB унаследует все инструменты и плагины, разработанные этим огромным сообществом.

  • Дискуссионная более высокая производительность, чем InfluxDB

Я должен подчеркнуть, что это «спорная» лучшая производительность, поскольку системы являются довольно новыми для рынка, и они не были протестированы во всех различных случаях, которые может предложить отрасль.

Как справедливо мыслящий писатель, я должен отметить тот факт, что Матвей Арье написал очень хорошую статью, сравнивающую  Flux с SQL  и, в некотором роде,  InfluxDB с TimescaleDB . В частности, следует внимательно прочитать его замечания об оптимизации запросов, и они дают очень убедительное объяснение того,  почему они могут быть более производительными  (по крайней мере, в теории).

Matvey Arye article — SQL vs Flux

Веб-сайт TimescaleDB — timescale.com

3. OpenTSDB

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

OpenTSDB — это база данных без схемы, построенная на  Apache HBase . Для тех, кто не знает,  HBase — это нереляционная система управления, написанная для элегантной и эффективной обработки больших таблиц .

Почему вам следует использовать OpenTSDB?

  • Спектакль!

Тед Даннинг (главный архитектор приложений в MapR) довольно подробно рассказал о том, как должна быть построена база данных временных рядов и как горизонтальное расположение временных диапазонов может масштабировать СУБД до 20–30 миллионов операций  записи в секунду . Это огромная скорость вставки, учитывая, что один экземпляр узла InfluxDB может вставлять до одного миллиона операций записи в секунду.

Вы можете попробовать OpenTSDB, если имеете дело с такой скоростью вставки в вашей системе.

  • Интеграционная экосистема

Читая документацию, OpenTSDB интегрируется с большим количеством инструментов, таких как  Cassandra, BigTable, CollectD, StatsD, Chef и даже Puppet  для управления развертыванием.

 

Веб-сайт OpenTSDB — opentsdb.net

4. Graphite

Graphite — это еще более устоявшаяся и очень широко используемая система баз данных временных рядов. Graphite — это  мощный инструмент мониторинга, который хранит числовые данные временных рядов  и отображает их по запросу через веб-интерфейс Graphite с достаточной скоростью. Графит чаще всего используется в качестве хранилища показателей производительности системы, сети и приложений. Крупные компании, такие как  Booking.com, Reddit и GitHub,  используют его ежедневно, чтобы легко обнаруживать  сбои  в своей архитектуре.

Почему вам следует использовать Graphite?

  • Graphite делает несколько вещей, но делает это хорошо.

Графит предназначен для работы с числовыми данными. Поскольку это может быть ограничением само по себе, если вы не имеете дело с числовыми данными, Graphite предоставляет из коробки набор инструментов, которые упрощают разработчикам начало работы. Graphite Web предоставляет разработчикам очень удобный интерфейс для мониторинга своего приложения .

  • Хорошая интеграционная экосистема

Как и OpenTSDB, Graphite изначально подключается к множеству инструментов и позволяет разработчикам легко подключаться к существующей инфраструктуре. Graphite может легко подключаться к  CollectD, sensu, Riemann, Windows Server, Logstash и многим другим.

Веб-сайт — graphiteapp.org

X — Ваша очередь делиться!

У вас есть опыт работы с этими базами данных временных рядов? Если да, то  какой из них вы бы порекомендовали и почему?

Кроме того, если вы обнаружите, что некоторые TSMS должны быть оценены выше или ниже, не стесняйтесь давать свои собственные рейтинги в разделе комментариев.