Роль контрактов данных в потоке данных

'Role of data contracts in data stream'.

Что такое Договоры о данных?

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

Основная цель договора о данных – обеспечить согласованность и совместимость данных в разных версиях или компонентах системы. Договор о данных включает следующее:

  • Условия обслуживания: Описание того, как данные могут быть использованы, будь то для разработки, тестирования или развертывания.
  • Соглашения об уровне обслуживания (SLA): SLA описывают качество доставки данных и могут включать время работы, уровень ошибок, доступность и т. д.

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

Какие метаданные должны быть включены в договор о данных?

  • Схема: Схема предоставляет полезную информацию о обработке и анализе данных. Это набор правил и ограничений, накладываемых на столбцы набора данных. Источники данных развиваются, и производители должны обеспечить возможность обнаружения и реагирования на изменения схемы. Потребители должны иметь возможность обрабатывать данные со старой схемой.
  • Семантика: Семантика отражает правила каждой бизнес-сферы. Они включают аспекты, такие как переходы бизнеса от одной стадии жизненного цикла к другой, взаимосвязь между ними и т. д. Как и схема, семантика также может развиваться со временем.
  • Соглашения об уровне обслуживания (SLA): SLA определяют доступность и актуальность данных в продукте данных. Они помогают специалистам по данным эффективно проектировать потоки потребления данных. SLA включают обязательства, такие как максимальная ожидаемая задержка, когда новые данные ожидаются в продукте данных, и метрики, такие как среднее время между сбоями и среднее время восстановления.

Каково значение договоров о данных?

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

  1. Гарантия совместимости: Когда договор о данных устанавливается для определения структуры данных и правил, он гарантирует, что данные, производимые и потребляемые различными компонентами или версиями системы, остаются совместимыми. Такой превентивный подход минимизирует сложности обработки данных при эволюции схемы.
  2. Обеспечение согласованности: Договоры о данных выступают в роли обеспечителей согласованности в представлении данных. Они заставляют всех производителей и потребителей придерживаться одной и той же схемы, способствуя правильности данных и повышая надежность системы.
  3. Управление версиями: Договоры о данных могут иметь версионирование и отслеживание со временем. Эта возможность позволяет структурированно управлять изменениями схем данных, что бесценно при навигации по эволюции схемы.
  4. Эффективная коммуникация: Договоры о данных являются эффективным инструментом коммуникации между различными организационными командами или компонентами. Они создают общее понимание структуры и формата данных, способствуя сотрудничеству.
  5. Предотвращение ошибок: Четко определенный договор о данных предотвращает ошибки, особенно при несоответствии схемы или непредвиденных изменениях. Он облегчает раннее обнаружение проблем, связанных с схемой.

Практические способы обеспечения договоров о данных

В этом конвейере обработки данных изменения схемы управляются в репозитории Git и применяются к приложениям, производящим данные, что обеспечивает согласованную структуру данных. Приложения отправляют свои данные в темы Kafka, разделяя исходные данные от потоков Change Data Capture (CDC). Приложение Flink проверяет данные по схемам реестра схем из потоков исходных данных. Любые неточные данные направляются в тему Dead Letter, а правильные данные отправляются в проверенные темы данных. Приложения, работающие в реальном времени, могут напрямую получать данные из этих проверенных тем.

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

Ссылки

  • https://towardsdatascience.com/data-contracts-ensure-robustness-in-your-data-mesh-architecture-69a3c38f07db
  • https://www.montecarlodata.com/blog-data-contracts-explained/
  • https://atlan.com/data-contracts/#what-is-inside-a-data-contract
  • https://youtu.be/ZIJB8cs-cJU?si=zzMnf-aE-rO4Wcx7
  • https://twitter.com/Aurimas_Gr/status/1693908146677330288