「データパイプラインにおけるデータ契約の役割」

Role of data contracts in data pipelines

データ契約とは何ですか?

データ契約は、システム内でデータがどのように構造化され、処理されるべきかを定義する契約またはルールの集まりです。これは組織内の異なる部分やさまざまなソフトウェアコンポーネント間の重要なコミュニケーションツールとして機能します。異なる組織間または単一の会社内での管理や意図したデータの使用を指します。

データ契約の主な目的は、データがシステムの異なるバージョンやコンポーネント間で一貫性があり、互換性があることを保証することです。データ契約には次のものが含まれます –

  • 利用規約: 開発、テスト、または展開などの目的でデータを使用する方法の説明。
  • サービスレベル契約(SLA): SLAはデータの配信品質を説明し、稼働時間、エラー率、可用性などを含む場合があります。

ビジネス契約が製品の供給業者と消費者間の責任を明示するように、データ契約はデータ製品の品質、利用可能性、信頼性を確立し、保証します。

データ契約に含めるべきメタデータは何ですか?

  • スキーマ: スキーマはデータ処理と分析に関する有用な情報を提供します。データソースは進化し、製造業者はスキーマの変更を検出し、対応できるようにする必要があります。消費者は古いスキーマでデータを処理できる必要があります。
  • セマンティクス: セマンティクスは各ビジネスドメインのルールを捉えます。これには、ビジネスがライフサイクル内のさまざまなステージに移行する方法、お互いとの関係などが含まれます。スキーマと同様に、セマンティクスも時間の経過とともに進化する場合があります。
  • サービスレベル契約(SLA): SLAはデータ製品のデータの可用性と新鮮さを指定します。データプラクティショナーが効果的にデータ消費パイプラインを設計するのに役立ちます。SLAには、最大の予想遅延、新しいデータがデータ製品に期待される時期などのコミットメント、平均障害間隔、平均回復時間などのメトリックが含まれます。

データ契約の重要性は何ですか?

データ契約の主な利点は、データスキーマの異なるバージョン間での互換性と一貫性を確保する役割です。具体的には、データ契約には以下の利点があります:

  1. 互換性の保証: データ契約がデータの構造とルールを定義するため、異なるコンポーネントやシステムバージョンによって生成および消費されるデータが互換性を保つことが保証されます。この予防的なアプローチにより、スキーマの進化中のデータ処理の複雑さが最小限に抑えられます。
  2. 一貫性の強制: データ契約はデータ表現の一貫性を強制します。すべての製造業者と消費者が同じスキーマに従うことを求め、データの正確性を促進し、システムの信頼性を高めます。
  3. バージョン管理: データ契約はバージョン管理と追跡が可能です。この機能により、データスキーマへの変更を構造化して管理することができ、スキーマの進化を円滑に進めるために貴重なものとなります。
  4. 効果的なコミュニケーション: データ契約は多様な組織のチームやコンポーネント間の効果的なコミュニケーションツールです。データ構造と形式の共有理解を確立し、コラボレーションを促進します。
  5. エラーの予防: 明確に定義されたデータ契約は、特にスキーマの不一致や予期しない変更の場合にエラーを防ぎます。スキーマ関連の問題を早期に検出するのに役立ちます。

データ契約を強制するための実践的な方法

このデータ処理パイプラインでは、スキーマの変更はGitリポジトリ内で管理され、データ生成アプリケーションに適用され、一貫したデータ構造が確保されます。アプリケーションは、変更データキャプチャ(CDC)ストリームから生データを分離するために、データをKafkaトピックに送信します。Flinkアプリは、生データストリームからスキーマレジストリスキーマに対してデータを検証します。不正確なデータはデッドレタートピックに送られ、有効なデータは検証済みデータトピックに送られます。リアルタイムアプリケーションは、これらの検証済みトピックから直接データにアクセスできます。

さらに、検証済みデータトピックからのデータは、特定のサービスレベル契約(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

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more