База данных временных рядов с высоким уровнем принятия

Вопрос или проблема

Я долгое время использовал influxdb как базу данных временных рядов для данных, связанных с IoT. Но их недавняя история в области управления продуктами заставляет меня пересмотреть свое мнение о них для нового программного стека для стартапа. Интересно, что люди рекомендуют с учетом следующих требований:

  • Язык запросов, похожий на SQL
  • нет ограничений на хранение данных
  • позволяет выполнять эффективные запросы и агрегирование за любой временной интервал (группировка по временному интервалу)
  • высокий уровень принятия в индустрии, с повышенными шансами на продолжительное долгосрочное обслуживание и поддержку
  • облачное предложение без сервера
  • не привязывается к конкретному облачному поставщику (доступно несколько облачных поставщиков или возможность запустить самому в виртуальной машине/контейнерном решении у любого облачного поставщика)
  • издание сообщества/свободного программного обеспечения с возможностью локального запуска для личных/экспериментальных IoT проектов
  • политики хранения данных, позволяющие уменьшение выборки данных для снижения затрат на долгосрочное хранение данных при сохранении доступа к историческим значениям и наличии высокочастотных значений для недавних данных (например: сохранять все значения за последний месяц данных, хранить медианные/минимальные/максимальные значения в час за последние полгода и в день за последние 2 года)
  • Желательно: возможность хранить резервную копию всех данных в каком-либо решении холодного хранения для обучения моделей ИИ в будущем.

Ответ или решение

При выборе временного ряда базы данных (time series database – TSDB) для вашего стартапа, важно учитывать несколько ключевых факторов, чтобы обеспечить оптимальные результаты на долгосрочной основе. Вы уже упомянули, что рассматривали InfluxDB, однако из-за недавних управленческих решений этой компании ищете альтернативы. Рассмотрим требования, которые вы упомянули, и предложим несколько решений, основываясь на современных тенденциях и высоком уровне адаптации в индустрии.

Теория

Временные ряды базы данных играют ключевую роль при работе с IoT данными, обеспечивая хранение и обработку больших объемов данных, поступающих с устройств в реальном времени. Основные требования к таким системам часто включают в себя:

  1. Поддержка SQL-подобного языка запросов – для упрощения взаимодействия, аналитики и интеграции с существующими решениями.
  2. Отсутствие ограничений на хранение данных – чтобы обеспечить долговременное хранение данных без риска потери.
  3. Эффективные запросы и агрегации – возможность быстро и эффективно агрегировать данные по различным временным интервалам.
  4. Высокий уровень адаптации в индустрии – обеспечивает уверенность в том, что технология будет поддерживаться и развиваться в будущем.
  5. Облачные решения без привязки к одному поставщику – гибкость в выборе инфраструктуры и возможность избежать зависимости от одного поставщика.
  6. Наличие версии с открытым исходным кодом – для возможности локального развертывания и экспериментов.
  7. Политики хранения данных – адаптация хранения данных для снижения затрат при сохранении детализации в недавних данных.
  8. Резервное копирование – важность сохранения бэкапов данных для последующего использования в тренировке моделей машинного обучения.

Примеры

На рынке доступны несколько платформ, отвечающих вашим требованиям. Рассмотрим некоторые из них:

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

  2. Prometheus: широко используется для мониторинга и алертинга, особенно в экосистеме Kubernetes. Хотя PromQL не похож на традиционный SQL, он предоставляет мощные средства для работы с временными рядами данных, включая агрегации и алертинг. Prometheus также поддерживает модули экспортеров, которые делают его гибким для различных нужд. Основное ограничение – это обычно ценность для мониторинга инфраструктуры, а не для общего использования IoT данных.

  3. OpenTSDB: строится на базе HBase (Hadoop), предоставляя хорошую масштабируемость и поддерживает язык запросов, похожий на SQL. Он эффективно обрабатывает большие объемы данных и часто используется в больших инфраструктурах. Платформа свободная (FOSS) и может разворачиваться в различных средах, но может потребовать значительных настроек для оптимальной работы.

Применение

Учитывая все это, можно сделать следующие предложения для использования в вашем стартапе:

  1. Оцените TimescaleDB как основное решение для работы с временными рядами IoT данных. Его поддержка SQL, гибкие политики ретенции данных и возможность развертывания как в облаке, так и локально, делают его идеальным кандидатом для ваших нужд. Это также даст возможность сохранить единообразие в аналитической цепочке, минимизировать необходимое обучение команды и использовать существующую инфраструктуру на базе PostgreSQL.

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

  3. Исследуйте OpenTSDB для задач, где нужна работа с очень большими объемами данных в распределенной среде, однако учтите дополнительные затраты на управление и конфигурацию.

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

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

Оцените материал
Добавить комментарий

Капча загружается...