Skip to content

MS_DataIntegration

nishi_74322014 edited this page Aug 18, 2026 · 1 revision

データ連携

カスタムの実装

DB参照(同期)

メリット

  • 簡単。

デメリット

  • 連携元が、他システムの DB スキーマの変更の影響を受ける。

補足(他システムの DB を直接参照する方式): 最も手軽だが、
システム間の結合度が最大になる方式である。
スキーマ変更の影響に加え、

  • 他システムのトランザクション中の中途半端な状態を読んでしまう
  • 参照が相手システムのロック待ちを誘発する
    SQL Server でのロック・タイムアウト
  • 障害の切り分けが困難になる

といった問題がある。
どうしても採る場合は、参照専用のビューを相手側に用意してもらい
それを外部スキーマ(契約)として扱うのが定石。
読み取り側は RCSI や読み取り可能セカンダリ
SQL Server のクラスタリング)を使って
相手を止めない配慮も必要になる。

WebAPI(同期)

SOAP、REST(XML、JSON)、OData、GraphQLなどがある。

メリット

  • 連携元が、他システムの変更の影響を受けない。

デメリット

  • 性能に問題がある(バッチ インターフェイスを設ける)。
  • 個別に公開・取込のサービスを開発する必要がある。

非同期

ファイル・インターフェイスや、MQ、
DB キュー(Service Broker 的なもの)等がある。

メリット

  • 連携元が、他システムの変更の影響を受けない。

デメリット

  • 非同期インフラの開発・構築が複雑。
  • 個別に公開・取込のサービスを開発する必要がある。

補足(非同期の本当のメリット): 上表では「変更の影響を受けない」しか
挙がっていないが、非同期方式の主眼は
**可用性の分離(時間的結合の解消)**にある。

観点 同期(API 呼び出し) 非同期(メッセージ)
相手が落ちている こちらも失敗する キューに溜まり、復旧後に処理される
負荷の急増 相手に直撃する キューが緩衝材になる(バックプレッシャー)
応答 即時に結果が得られる 結果は別途通知が必要
整合性 同期的 結果整合性になる

一方で、非同期には固有の設計課題がある。

  • 冪等性: 同じメッセージが 2 回届いても壊れないようにする
    (多くのキューは at-least-once 配信)
  • 順序保証: 必要ならセッション / パーティション キーで担保する
  • 失敗の扱い: 再試行回数と**配信不能キュー(DLQ)**の設計
  • DB 更新とメッセージ送信の原子性: Outbox パターンで解決する
    クラウド設計パターンMS-DTC

Azure では Azure Service Bus /
Azure Event Hubs が該当する。

製品を使用した実装

HULFT

ASTERIA

  • データ連携ミドルウェア「ASTERIA WARP」の特長
    EAI - ESB 国内シェア No.1 の【ASTERIA】 インフォテリア株式会社
    http://www.infoteria.com/jp/warp/feature/
    • Excel アダプタ
    • Dr.Sum EA アダプタ
    • LDAP アダプタ
    • Windows Azure アダプタ
    • XBRL アダプタ
    • Amazon Web Service アダプタ
    • 全銀 TCP/IP アダプタ
    • Salesforce パイプライン アクション
    • Notes アダプタ

SSIS

NiFi

Apache NiFi(DNET_ApacheNiFi.md

EAI/ETL 系のデータフロー・オーケストレーション・ツール。

その他

補足(最新化:クラウド側の選択肢): 現在は、上記の
オンプレミス製品に加えてマネージド サービスが主流の選択肢になっている。

分類 Azure のサービス
ETL / ELT パイプライン Azure Data Factory、Microsoft Fabric Data Factory
イベント駆動の連携 Azure Functions、Azure Logic Apps
メッセージング Azure Service Bus / Event Grid / Event Hubs
変更データの取り込み SQL Server の CDC(変更データ キャプチャ) / 変更追跡

特に CDC は、「DB 参照(同期)」の代わりに
更新差分だけを非同期に取り出す手段として有力で、
相手システムに負荷をかけずに済む。

参考

  • 連載「クラウドデータ連携の基礎知識」の記事一覧


Tags: 移行, データアクセス, .NET開発

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally