CData Software Blog

クラウド連携のCData Software の技術ブログです。

kintone データをSQL Server から連携して利用する4つの方法を比較

CData 製品を使って、kintone データとSQL Server を連携させたいというご相談を多く頂きます。

この記事では、SQL Server でkintone データを使うというシナリオにフォーカスして実現方法やメリット&デメリットを解説します。

f:id:cdatasoftware:20200616164722p:plain
kintone > SQL Server の4つの方法

1. ODBC Driver でCACHE クエリでkintone データをSQL Server に同期

一番簡単な方法として、CData ODBC Driver for kintone でCACHE クエリを実行する方法があります。CData ODBC Driver はCACHE をサポートしており、メタデータのみのキャッシュから明示的にデータを含むCACEH までを発行可能です。

f:id:cdatasoftware:20200616151856p:plain
ODBC Driver Cache

詳細はこちら: Kintone データをPowerShell script でSQL Server にレプリケートする方法

ODBC Driver for kintone のDSN 設定でCACHE 設定を行います。以下のようにCACHE SELECT というSQL を発行することで、選択したテーブルのデータをコピーできます。

CACHE SELECT * FROM テーブル名
  • 設定の簡単さ:★★

  • 環境の簡単さ:★★★

  • ライセンス価格の安さ:★★★

  • リアルタイム性:★

  • 柔軟性:★★

簡単な.NET デスクトップアプリでCACHE クエリを定期的に発行することもできますし、記事のようにPowerShell からスクリプトで実行することもできます。PowerShell ですとWindows マシンからアプリのデプロイなどをしなくても使えますし、定期実行ができるのでお手軽です。

CData 製品のライセンスもODBC Driver 1本(デスクトップライセンス46,200円/年)でできますので、安くkintone->SQL Server の実装が可能です。とはいえバッチ連携ですので、リアルタイムなkintone データを扱っていない点は少し残念です。また、SQL を書かなければならないこと、バッチ処理を行うアプリやPowerShell を作る必要があります。

2. SQL GatewaySQL Server のリンクサーバーとしてkintone データにアクセス

SQL Server にはリンクサーバーといって、他のDB をSQL Server から呼び出せる統合機能があります。CData ODBC Driver for kintone に付属しているSQL Gateway を使えば、kintone データをSQL Server のリンクサーバーとして扱うことができます。物理的にkintone データがSQL Server に保存されるわけではありませんが、SQL Server のインターフェースでkintone データがSQL を使って呼び出すことができます。

f:id:cdatasoftware:20200616152013p:plain
SQL Gatewya - SQL Server リンクサーバー
設定方法はこちら:Kintone Data にSQL Server のリンクサーバーとして接続

通常のODBC Driver for kintone のDSN 設定の後にSQL Gateway を立ち上げ、kintone DSN をSQL Server のサービスとして設定します。SSMS でこのサービスをリンクサーバーとして登録すると、SQL クエリでkintone データをリンクサーバー経由で使用することができます。 複数の.NET クライアントアプリからのkintone データ参照や、SQL Server データとのJOIN などに最適です。

SELECT * from リンクサーバー名.CData Kintone Source Sys(ODBC DSN 名).Kintone.テーブル名
  • 設定の簡単さ:★

  • 環境の簡単さ:★

  • ライセンス価格の安さ:★

  • リアルタイム性:★★★

  • 柔軟性:★★

SQL Server のリンクサーバーに慣れ親しんだ方には一番使いやすい利用方法です。常に最新のkintone データをリアルタイムにクエリできる点も優れています。SQL Server 側からのSQL で双方向連携(書き込みを含む)ができる点が大変便利です。

手間としてはSQL Gatewayホスティングして稼働させなければならない点があります。またSQL Gateway を利用する場合にはODBC Driver の上位のEnterprise ライセンス(280,000円/年)が必要です。

3. SSIS でkintone データをSQL Server にインポート

SQL Server ユーザーでは、データ統合・ワークフローにSSISSQL Server Integration Services)を使っている方も多いのではないでしょうか?CData では、SSIS 向けにkintone への連携が可能なSSIS Component for kintone を提供しています。

f:id:cdatasoftware:20200616153406p:plain

技術記事: Import Kintone Data into SQL Server using SSIS

  • 設定の簡単さ:★★

  • 環境の簡単さ:★★

  • ライセンス価格の安さ:★★

  • リアルタイム性:★★

  • 柔軟性:★★★

SSIS ユーザーであれば、kintone Component さえあれば、簡単にSQL Server へのインポートフローを組むことができます。コンポーネントもドライバーと同程度の価格でありリーズナブルです。

SSIS 以外にもすでにETL/EAI ツールをお持ちであれば、CData Drivers をETL/EAI ツールで使うだけで簡単にデータ連携が可能です。

4. CData Sync でkintone データをSQL Server に反復同期

最後はCData Sync というSaas データをRDB に同期する専用のアプリケーションを使う方法です。CData Sync はサーバーアプリケーションになっており、ブラウザコンソールからノーコードで3ステップで同期ジョブが設定できます。

定期実行や細かいレプリケーションの項目設定までをGUI 操作だけで実行可能です。

f:id:cdatasoftware:20200616151932p:plain
SQL Gatewya - SQL Server リンクサーバーCData Sync でkintone > SQL Server 連携

設定方法はこちら:SQL Server へのKintone データの自動反復レプリケーション

  • 設定の簡単さ:★★★

  • 環境の簡単さ:★★

  • ライセンス価格の安さ:★

  • リアルタイム性:★

  • 柔軟性:★★★

DB への同期専用のノーコードツールであり、使いやすさや拡張性は高いです。サーバーツールですので、価格は#2 と同程度になります。

まとめ

kintone -> SQL Server の連携の4つの実装方法を紹介しました。利用の規模や技術的な制約によっていろいろな方法があります。是非、自分のケースに合った連携方法を選んで下さい。