CData桑島です。本記事はCDataまるわかりシリーズの第四弾、そして、CData Software User Group Advent Calendar 2019 13日目の記事です。
CDataまるわかりシリーズ は以下の構成となっています。
- CDataが生まれた背景
- CDataの製品ライン
- CData Drivers - SaaSデータにSQLアクセス!?
- CData Sync - まるっとSaaSデータをDBに複製!? (本記事)
- CData SQL Gateway - 仮想MySQL/SQLServerインスタンス!?
- CData API Server - RDBやCSVファイルからWebAPIを生成!?
今回は、SaaSアプリケーションデータを3ステップでDBに同期することができるCData Syncについて解説していきます。
CData Sync とは
CData Syncは、SaaSなどのアプリケーションのデータをデータベース/データレイクに物理的に複製(レプリカ)を作成するサーバー製品です。本製品には複製ジョブ実行のスケジュール機能も備わっているためオートマチックな運用が可能です。
それでは、CData Syncの主な特徴をみてきましょう。
100を超えるデータソース
同期の元データソースは、100を超えるSaaSなどのアプリケーションに対応しています。実際には、RDB -> RDBといったDB間の同期も可能です。これらのデータソースには CDataまるわかりシリーズ 第三弾 でご紹介したCData Drivers、具体的に、ADO.NET ProviderとJDBC Driverのライブラリが組み込まれています。
20を超える同期先データストア
一方で、同期先のデータソースは、オンプレ・クラウドベースのRDB・DWH・DataLake・Hadoopなどのビッグデータ処理基盤を選択出来ます。エンタープライズで利用されている主要なデータストアをカバーしているとも言えるでしょう。
エディション
Windows用の.NET版、マルチプラットフォーム用のJava版を選択できます。Windows版には組み込みWebサーバがデフォルト設定で利用出来るようになっていますのでインストール後、直ぐに利用可能です。もちろん、IISやAzure WebAppsへデプロイしてご利用いただくことが可能です。一方でJava版については、.warファイルとして提供されるのでTomcatなどのJavaアプリケーションサーバやHerokuなどのJava実行環境が動作するクラウドサービスへのデプロイも可能です。
また、AWSのMarketPlaceでの製品がインストール済みのAMIイメージでも提供がありますので直ぐに利用を開始することもできます。
aws.amazon.com
クラウドDWHに適したETL方式によるデータ連携
従来、DWHの構築フローは、抽出(Extract)を行い、データを変換(Transform)してからDWHにロード(Load)、その頭文字をとって、ETLと呼ばれる方式が主流でした。これにより、ストレージ容量を節約し、検索時にはクレンジング済みのデータへのアクセスを可能することで検索時のコスト(処理負荷やパフォーマンス)を抑えた運用を実現していました。
最近では、クラウドサービスとしてのDWHによるコンピューチングパワーとストレージの容易な拡張と価格の低下に伴い、ELTと呼ばれる、DWHにソースデータをそのままロードしてからDWH内でクレンジングなどのデータ加工を行う手法が主流となってきています。CData Syncは、Google Bigquery, Amazon Redshift, SnowflakeなどのクラウドDWHへのELT方式でのデータ連携を実現する最適な製品と言えるでしょう。
3ステップで ノーコード での同期設定
CData Syncをインストールすると組み込みのWebサーバ(Windows版のみ)が起動してWebの管理コンソールから3ステップ・ノーコード で同期ジョブが作成出来るコンセプトで開発されています。
Step1 データソース の設定
データソース となるアプリケーションを選択して接続設定を行います。データソース のアイコンは主要なものがデフォルトで並んでいますがアイコンがない場合は本画面から追加でダウンロードすることが出来ます。
データソースへの接続情報は各データソース毎に必要な情報をセットします。
Step2 同期先データベース の設定
同期先となるデータベース/データレイクを選択して接続設定を行います。データソース側と同様にアイコンがない場合は追加でダウンロードすることが出来ます。
Step3 同期ジョブの作成
Step1とStep2で作成したデータソース と同期先データベースを選択してジョブを作成します。 ジョブ作成時に、データソース 側のどのテーブルを同期するか選択します。 これで保存すれば同期ジョブの作成は完了です。あとは、ジョブの設定でスケジュール設定すれば指定したサイクルで同期ジョブが実行されます。
様々な同期パターンの設定
差分更新 or 全件データの洗い替え、スナップショットテーブルの作成など、外部アプリケーションからの同期ジョブの起動など、想定される利用シーンにマッチした細かな設定も可能です。こちらの記事をご覧ください。
qiita.com
利用シーン
CData Syncを利用することでSaaSなどアプリケーションのデータが全てSQLが利用出来るRDBやDWHに格納されるので分析ツールや帳票からのアドホックに利用出来ます。また、DWHや中継DBを介して他のシステムやアプリケーション、大量のデータを必要とする機械学習エンジンのインプットとして連携することも出来るでしょう。また、意外とニーズが多いのが、SaaSデータのバックアップやスナップショットでのデータの蓄積です。SaaSアプリケーションはいわゆるOLTPシステムなので最新データしか保持していません。月末断面でのスナップショットのデータを保持することで、BIツールなどからは前月断面との比較といった分析や可視化が可能となります。
まとめ
CData Sync製品についてのまとめです。ELT方式でデータをクラウドDWHに集約したい、データを統合することで異なるデータソース間の関係性やクロス分析を実施したい、場合は、本製品が最適と言えます。データソース の差分更新をサポートしているデータソース であれば、データソース側のAPIリミットなどの制約を回避したデータ収集も実現出来ます。一方で、定期的なジョブで同期処理を実行しているので、日次ジョブに設定すれば前日のデータ、10分単位の設定でも最長10分前のデータとなるため、即時アラートが必要な業務への適用には考慮が必要です。また、現時点では、DBからSaaSなどデータソース側への更新、逆方向の同期はサポートしておりません。この昨日は多くのお客様からご要望をいただいているので、現在、開発側で検討中ですので今後のCData Sync製品のアップデートにご期待ください。
次回
次回は「第五弾 CData SQL Gateway - 仮想MySQL/SQLServerインスタンス!?」と題してお送りします。
関連コンテンツ