О том, что представляет собой открытая архитектура данных для временных рядов и как ее построить, на портале Datanami рассказывает Анаис Дотис-Георгиу, специалист по работе с разработчиками компании InfluxData.

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

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

Данные временных рядов — это данные с привязкой к временной метке. Они поступают из различных источников, включая промышленное производство, мониторинг DevOps, FinTech, AgriTech, мониторинг приложений и многое другое. Среди распространенных примеров данных временных рядов — котировки акций, данные IoT (скорость ветра, давление, температура, влажность и т. д.), данные наблюдаемости (метрики, журналы и трассировки), данные кибербезопасности и состояния серверов.

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

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

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

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

Интероперабельность. Это, пожалуй, самый важный аспект архитектуры открытых данных. Под интероперабельностью понимается беспрепятственный обмен данными между приложениями, устройствами и продуктами.

Говоря об Open Source-решениях, надо отметить, что Apache Foundation стремится предоставить технологии для стандартизации форматов данных и транспортных протоколов, чтобы облегчить взаимодействие между открытыми инструментами данных.

Arrow и Parquet — это инструменты Apache с открытым исходным кодом для колоночных форматов. Arrow — это фреймворк для определения колоночных данных in-memory, который может использовать любой язык обработки. Он призван стать стандартом, не зависящим от языка, который поможет обеспечить совместимость данных с колоночной ориентацией памяти. Колоночное хранение организует данные по столбцам, а не по строкам. Такая организация хранения выгодна для данных временных рядов, поскольку этот тип данных обычно генерирует большее количество строк, чем столбцов. Колоночная организация позволяет Parquet применять сжатие и кодирование к каждому столбцу независимо, что значительно снижает требования к хранению данных.

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

Например, Telegraf — это Open Source-агент, который облегчает сбор данных из нескольких источников. Telegraf основан на плагинах, коих насчитывается более 300, и имеет открытый исходный код, поэтому любой разработчик может написать собственный модуль, если таковой еще не существует.

Хранилище. Безопасная, масштабируемая, специально разработанная база данных временных рядов — лучшее место для хранения таких данных. Например, базы данных, построенные на основе системы открытых данных Apache, поддерживают хранение больших объемов данных. Arrow и Parquet приносят дополнительную пользу, поскольку интегрируются с другими инструментами аналитики, машинного обучения и трансформации. Базы данных временных рядов в открытой архитектуре данных предназначены для оптимизации данных с временной привязкой. Этот подход адаптирован к данным временных рядов, что позволяет снизить требования к ресурсам хранения данных при сохранении их целостности.

Визуализация данных помогает пользователям понять скрытые в данных закономерности, тренды и инсайты. В открытой экосистеме данных распространены такие инструменты визуализации, как Grafana, Tableau и Apache Superset. Эти инструменты часто обеспечивают широкую совместимость, что позволяет разработчикам, занимающимся мониторингом данных временных рядов, отслеживать и лучше понимать их в режиме реального времени. Некоторые компании используют открытую архитектуру данных временных рядов для мониторинга, оповещения и визуализации данных временных рядов. Компании также используют базы данных временных рядов как часть своей архитектуры, но отличаются друг от друга остальными частями технологического стека.

Заключение

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