この記事は インフォマティカ Advent Calendar 2022 Day 3 の記事として書かれています。
はじめに
データ連携と一口に言っても、色々な方式があります。
今回は、3つのデータ連携方式の概要をお届けします。
これは、Informaticaの製品に限ったものではなく、
世の中のデータ連携処理全般に通じるものとして、読んでいただけますと嬉しいです。
3つの観点
データ連携は、3つの視点でかんがえることが重要です。
(a)リアルタイム性が必要かどうか
(b)データ量が多いか少ないか、連携対象のデータが数キロバイトから、
ギガバイト、テラバイトレベルなのか
(c)データ連携を行うきっかけが何か、人の行動がきっかけとなるか、
決められた時間がきっかけとなるかなどです。
もちろん例外的なケースもありますので、すべての連携処理があてはまるものではないのですが。
まとめると下記の3つのデータ連携方式に大別することができます。
NO | 方式 | リアルタイム性 | データ量 | きっかけ |
---|---|---|---|---|
1 | API連携 | 高い | 少ない | 人 |
2 | 取り込み連携 | それなりに高い | そこそこ | 常に |
3 | データ連携(ETL) | ほぼ必要としない | 多い | 定期的 |
API連携
API連携は、HTTP(s)プロトコルを使用したJSONデータを扱う連携がほとんどとなります。
よって、同期的に処理が完了しますが、扱えるデータ量は多くない場合がほとんどです。
最大でも1桁MBレベルのデータ量を扱うことが多いのではないでしょうか。
API連携によるデータ処理のきっかけは、”人”であることが多いです。
例えば、スマホ等のアプリから同期的にバックエンドのデータをAPIを使って呼び出す。
とある画面の入力値をWebhook等の技術を使って、API経由で他システムに連携する等です。
取り込み連携
取り込み連携は、原則として姿形を原則としては変えずに、必要な時に必要なデータを
取り込むための連携となります。
ちょっとわかりずらいですが、データ処理のきっかけは ”常に” となります。
一番わかりやすい例となると、データベースのデータに変更があった場合、その差分を検知してデータを連携させることや
常に流れているログ情報を、フィルタリング等を行ったうえで取り込む等が該当します。
API連携のように、同期的にリアルタイムに処理する必要はないものの
それなりのリアルタイム性は求められることが多いです。
各種データソースから、データレイクやDWHにデータを取り込む必要がある場合に
利用されることが多い連携方式と言えそうです。
データ連携(ETL)
最後のデータ連携(ETL)処理ですが、ETLによるバッチ連携こそ
データ連携の昔からある処理方式と言えます。
日次バッチ、月次バッチと呼ばれるように、一定時間に1度起動して
処理を行いますので、データ処理のきっかけは ”定期的” となります。
リアルタイム性はほとんど必要なく、データ量は非常に多いケースがあります。
このバッチ連携を、数分ごとに小刻みに起動させて、少量のデータを連携させる
マイクロバッチのようなやり方も、リアルタイム性が高く、少量のデータとなりますが
一応、本方式の範囲といたします。
インフォマティカのIDMCでは、これらのデータ連携方式に対して
それぞれのソリューションを提供しております。
- API連携は、Cloud Application Integration でAPI開発
- 取り込み連携は、Cloud Mass Ingestion で取り込み連携開発(ファイル取り込み、データベース差分取り込み、ストリーミング取り込み等)
- データ連携(ETL)は、Cloud Data IntegrationでETL開発
これらをノンコード、ローコードでGUIを使って簡単に開発することができます。
なお、IDMCの概要はこちらの記事も参考にしてください。
おわりに
データ連携とは、要件に応じて手法を使い分ける必要があるモノ!と、本記事を見てご理解いただけますと幸いです。
今後も皆様のデータ連携の内容に着目し、要件に合った連携手段をご利用いただければと思います。