こんにちは、CDataでエンジニアをしている宮本です。
少し前になりますが、Data Engineering Study #2「データ収集基盤とデータ整備のこれまでとこれから」というイベントに参加したときに、印象に残るセッションがありました。
データ収集の基本と「JapanTaxi」アプリにおける実践例
特にこのスライドが印象的で、差分更新ができるのか?カスタマイズできるのか?デバッグできるのか?など、ETL ツールに求められる機能や要素というものを改めて感じる部分ではありました。
そこで今回は上記の内容に触れながら、CDataが提供するデータパイプラインツールのCDataSync がもつ"強み"についてご紹介いたします。
CData Sync とは
まず初めに、CData Sync とは多様なSaaS、DB のデータをRDB やDWH に同期するETL ツールです。データパイプラインツールとも呼ばれます。200種類以上のデータソースをノーコードでDWH に同期できます。
ETL ツールでのポジション
CData Sync の強みの話に行く前に、市場におけるCData Sync のポジションについて触れたいと思います。
ETL ツール市場には多くのツールやサービスが存在しており、セグメントは以下の2軸で分けることができます。
①パイプラインでクラウド
②パイプラインでオンプレ
④EAI でオンプレ
で、CData Sync のポジションはこのあたりとなります。
製品自体がインストール型なのでオンプレ環境でも利用できますし、EC2 やGoogle Compute Engine などのVM インスタンス上でももちろんインストールして使えるため、オンプレ・クラウド両方OKという立ち位置をとっています。
EAI とパイプライン製品の特長
簡単にEAI とパイプライン製品の特長についてみていきましょう。
EAI
GUI 上でポチポチっと数ステップでノーコードで操作という感じよりは、アプリケーション連携をベースにした製品ということもあり、複雑なマッピングや各種制御などを自由に行えることが特徴ではあります。ただし、価格も高めで設定されていることが多い印象です。パイプライン
機能をパイプラインに絞っているのでUI が使いやすく、連携先へのマッピングがないことを前提にしていることから、ノーコードでさくっと設定できることが特徴です。そのため、SaaS として提供されていることが多いです。その反面、もう少しオリジナルな条件でフローを作成したい、実際のリクエストログがみてみたいなどには難しいとはいえます。
どれが良い悪いではなく、それぞれの利用ケースにあったものを選択することがベストですが、CData Sync はインストール型でどこでも利用できるといったことから、ちょうどよいポジションに位置しているともいえます。
では、CData Sync の製品としての強みはなんでしょうか?以下のポイントで考えてみました。
CData Sync の強み普通編
対応データソース、データ同期先が圧倒的に多い
Salesforce、Dynamics 365、NetSuite、Marketo などの海外SaaS、kintone、Sansan、スマレジなどの国産SaaSを合わせて200以上のSaaS、DBに連携が可能です。同期先はRDB もBigQuery、Snowflake などのクラウドDWH も充実。
OSS のツールなどで見られるように何百というコネクタがあっても、「1エンドポイントできます」という場合もあります。CData Sync は、そうではなく、それぞれのデータソースで幅広いエンドポイント、カスタムオブジェクトに対応しています。
今後多くのSaaS を自社で使っていることが分かっている企業であれば、コネクタ種類は重視するポイントです。
注意:CData Sync の対応コネクタ数は多いのですが、実は市場の多くのETL/EAI ツール向けにCData はコネクタをOEM 提供しています。ですので、実はCData Sync と同じ数のコネクタを持っているツールはたくさんあります。
ノーコードで設定
CData Sync のデータ連携は3ステップで簡単に作ることができます。API の呼び出しも、JSON やXML の整形のコードも書かないノーコードツールです。
クラウドツール系だと結構Python などのコードを書く必要があるものもあります。自社ですでにデータソースに対してAPI をたたいてデータの整形をするようなエンジニアがいる場合は、コーディングはフレキシブルですばらしい手段です。自社にそのようなエンジニアが不在の場合、もしくは存在しても工数を減らしたい場合は、ノーコードが重要です。
また、オンプレのEAI との比較だと、オンプレEAI ではマッピング作業はデフォルトで必要である場合がほとんどで、その分ステップが多いです。CData を含むパイプライン専業のツールは、基本は同期先DB にCREATE TABLE してデータを書き込むのでマッピングのプロセスがない(デフォルトでは使わない)ものが多いです。ということでノーコードツールの中でもパイプライン専業のツールな分、他のデータ連携には使えないけれど使い方は大変シンプルです。
差分更新機能あり
CRM やMA のデータをSync する場合には差分更新機能は重要。API にはリミットがあるので、全件取得を行おうとすると簡単にリミットに達してしまいます。これを防ぐには、クエリを書いてフィルタリングするか、全件取得しつつ前回から変更があった部分だけを取得しなおす差分更新を行うかです。
CData Sync では、Salesforce、Dynamics 365、Marketo、NetSuite、kintone といった主要なCRM、MA データソースに差分更新が可能です。
一つCData Sync が苦手なものがRDB の差分更新です。CData Sync は、クエリでデータを取ってくるタイプのツールなので、RDB については論理的にフィルタリングで差分更新するだけです。削除データなどは全件取得しなければ反映が難しいです。RDB の差分更新はログからデータ同期を行うツール系をオススメします。
サーバーライセンスで従量課金なし
一定のデータ量を超えるとCData Sync の方が低コスト。 多くのクラウドETL は従業課金なので、増え続けるデータの課金を考えて。
エンプラのプロ向け機能編
デキル=採用、ではない。エンタープライズだからこそ必要な要素があります。
フレキシブルにSQL クエリが書ける
データは全量取れればいい? API リミットは?ストレージ容量は?権限で見れるデータをどこで制限? エンタープライズで運用に乗せるにはデータはドンピシャで取ってくる必要あり。クエリの掛けないパイプラインツールは一定規模のエンタープライズではキビシイ。
そして、独自クエリはNG。エンタープライズのクエリはいつでも標準SQL がベストです。
ログが見れるので何をクエリしているかわかる・デバッグできる
エンタープライズでデータに求められるのは透明性、整合性や信頼性。業績にもかかわるデータは透明性が必須です。どこのデータを取ってきている、おかしいところがあればデバッグできる必要があります。
CData Sync は、細かいログが取れるので、どんなクエリを発行して何を処理しているのかが細かく確認できます。
クラウドETL 系では、ログが取れないものがあり、デバッグのむずかしさを感じるユーザーがいるかもしれません。
インストール型でフルコントロール可能
SaaS 型ETL サービスの特徴は、ユーザー側がインフラを意識することなく利用できる点ではありますが、逆にサービス部分の処理や制御をコントロールできない場合はエンプラ層では採用しづらい要素にはなってしまいます。
CData Sync はインストール型製品なので、オンプレ上でもVM インスタンス上でも起動することができます。また、ミドルウェア(IISやTomcat、Jettyなど)も利用したいものを採択することができます。
CData Syncの導入や運用自体はユーザー側で行う必要がありますが、管理対象のインスタンスで扱えるという点ではエンタープライズ層での利用ハードルは下がるのではないでしょうか。
ちなみに、CData Sync のインストールはexeファイルの実行か、ミドルウェアが指定するパスにアプリケーションを配置するだけの至ってシンプルな導入手順です。
製品のコードをCData が保有している永続性
CData Sync では、製品のコードを自社保有しており、OSS などの他社のライブラリやコードに依存していません。サードパーティソフトウェアを使っている場合、予期しない要因によりサードパーティソフトウェアが継続して利用できなくなる場合がありますが、CData では、コネクタやSQL モジュールはもとより、通信やセキュリティレイヤーのコードも自社・グループで保有しています。
まとめ
CData Sync は最も安いツールではないです。OSS は当然安いですし、ホスティングが不要なクラウドETL の方が強いケースも多いです。また、最も機能が多いツールでもないです。パイプラインだけではなく、アプリケーション間連携を行うEAI ツールの方がはるかに機能が多いです。
とはいえ、多様な連携先コネクタを希望する場合、シンプルなツールを希望する場合、またエンタープライズとして細かいクエリや、ログ・デバッグが必要な場合には、CData Sync はちょうどよいツールと言えると思います。