Data Consolidation/Data Integration
とData Synchronisation
のどちらを選択するかを決定する方法について、混乱しています。そんなこと知ってる:
データ統合/データ統合:は、複数のソースから単一の宛先へのデータの収集と統合を指します。このプロセス中に、さまざまなデータソースが1つのデータストアにまとめられるか、統合されます。
データの同期:は、システムとデータストア間の一貫性を確立し、一貫性を維持するために継続的な更新を行うことを指します。
ここで、会社に関して次のようなケースがあるとします。
-複数のソースにデータが存在し、部門ごとに存在することが多い
-計画に役立つ分析ではなく、データの検証に多くの時間を費やしているため
-データ定義もソースによって異なります
今すぐ使用する方が良いようなケースが与えられました-データの統合/統合、またはデータを異なるソースに残して同期しますか?
また、意思決定に役立つ可能性のある他の有用で関連性のある情報を探す必要があります。それらの追加情報が私の意思決定にどのように反映されるのでしょうか。
予備発言
まず最初に、あなたが提示するケース(単一の会社、多くの部門のソース、不完全/矛盾/不一致の部門データを克服するための多くの検証、およびデータの有用な分析を犠牲にした非効率性)は、-の典型的なビジネスケースです。 reengineering お使いのシステム、または [〜#〜] erp [〜#〜] などの 統合ソフトウェアシステム を採用します。
しかし、これが常に可能であるとは限らず、望ましいとは限りません。
データ統合の場合
データ統合 は人気のあるアプローチであり、 [〜#〜] etl [〜#〜] ソリューションの豊富な提案と 企業データウェアハウスの傾向を示しています 。
古いアプローチにもかかわらず、このアプローチは効果的であり、ほぼすべてのランドスケープ(バッチまたはリアルタイム、補完的または異種のデータ、クリーンなデータまたはクリーンアップおよび修正されるデータなど)で実行可能であり、堅牢です。
同期の場合
一方で、たとえば ビッグデータアーキテクチャ または microservices などの最近の技術開発では、システムを分離し、(ボトルネックになる可能性のある共有データベースを回避することで)スケーリングを容易にします)。
イベントソース および メッセージング によるデータ同期は、サービスAPIからの直接の消費が同期化の複雑さの追加に値しない場合、システムを分離してスケーラビリティを実現する非常に効果的な方法です。
ただし、同期には、アプリケーション間の一貫したモデルが必要です。これは、DDDの優れたプラクティスですが、歴史的に成長した異種システムランドスケープでは常に可能とは限りません。
これを2017年後半の観点から見ると、データ統合は、アップグレードまたは置換の候補であるかを判断するための既存のシステムのレビューと相まって、良い選択です。
データレイクまたはデータウェアハウスを使用して、異種システムのそれぞれからの重要なビジネスデータを統合することにより、ユーザーに調査と分析のための1つのソースを提供します。データはETLプロセスの一部として検証されるため、品質データを保証するためにチェックとバランスをとることができます。さらに、クエリと分析を運用システムから移動することで、日々のトランザクションに集中することができます。
別の方法は、ELT(抽出、読み込み、変換)システムを使用することです。これは、これらすべての異なるシステムに適しているとは限りませんが、互換性のあるシステムには利点があります。 ELTはデータを運用システムから移動し、変換プロセスを実行するか、クエリ時に変換します。ユーザーがデータを使用できるようになる前に面倒な変換プロセスがないため、このアプローチはメンテナンスの負担を軽減します。一部のタイプのシステム(機能とデータタイプの両方)は、他のものよりもELTに適している可能性があります。違いをよりよく理解するために、ここに Panopolyのブログ からの優れたETL/ELT 101記事があります。
ウェアハウスを最新の状態に保つには、トランザクションシステムからのリアルタイムまたはリアルタイムに近いデータストリーミングと、非トランザクションシステムからの通常のデータフローを使用することをお勧めします。使用可能なツールを使用すると、元のワークフローが検証された後、これらのプロセスを大幅に自動化できます。
これは多くの外部要因に依存します。異なるデータスキーマを見ただけで統合するのはそれほど難しいことではないでしょう。一方のデータソースをもう一方にドラッグするか、3番目のデータソースから始めて、既存の両方のニーズを考慮してゼロから構築します。データを移行します。しかし、次のような依存関係があります
したがって、どちらが一般的に好ましいかを判断することは不可能です。
同期して考えると、いくつかのアイデアが頭に浮かびます。
代表的な例はSCMです。複数のデータストア(ローカルファイルシステム、サーバーのファイルシステム、および同僚のファイルシステム)間でコードを同期します。
コードを頻繁に同期できるように、リポジトリはできるだけ長く使用できるようにします。
同期の頻度が高いほど、誰でも簡単にマージできます。
一方、統合(統合)の場合、次のように考える傾向があります。
代表的な例は ETLs です。通常 ETLs は同期よりも頻繁に行われます。
移動および変換するデータの量が多いため、プロセスは通常より重くて複雑です。重い負荷と複雑な変換には、より多くのリソースが必要です。または専用環境。
通常、データは複数のソースから取得されますが、これらのソースに戻ることはほとんどありません。
とはいえ、どちらのプロセスも相互に排他的ではないことがわかります。最初にETLを夜間に実行し、後で異なるシステム間で継続的な同期を実行することを決定できます。
あなたの特定のケースに戻って、要件に依存します。通常、要件の収集中に優先順位を検出し、要件の分析中に適切な戦略を選択します。
シナリオによると、会社は、さまざまなソースからのデータへのアクセスと検証を簡素化するためにデータ統合を必要としているようです。
そのため、最初にすべてのデータソースを1つのデータストアにまとめ、後で(必要に応じて)中心のデータストアと異なる部門間の同期を可能にします。