製品をチェック

製品の情報と無償トライアル:

CockroachDB 連携ソリューション

データ連携でお困りですか?

お問い合わせ

CockroachDB データをSQL Server から連携して利用する4つの方法を紹介


CockroachDB データをSQL Server から使う4種類の方法(CData Drivers、SQL Gateway、SSIS Components、Sync)をまとめて紹介します。


古川えりか
コンテンツスペシャリスト

cockroachdb ロゴ画像

sqlserver ロゴ画像
SQL Server ロゴ画像

CData 製品を使って、CockroachDB データをSQL Server に連携させたいという相談を頂きます。CData の幅広い製品ラインアップを使えば、いろいろな方法でデータ連携を実現可能です。自分で開発ができるか、ノーコードを希望か、また実際にデータをSQL Server に書き込むのか、リンクサーバーで仮想的にSQL Server で使うのか、予算はどれぐらいか、などいろいろなニーズがあります。この記事ではODBC Driver + Powershell(カスタムアプリ)、SQL Gateay(リンクサーバー)、SSIS、Sync の4種類の方法をそのPro & Con と共に説明します。

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

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

詳細記事:CockroachDBデータをPowerShell script でSQL Server にレプリケートする方法

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

CACHE SELECT * FROM テーブル名

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

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

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

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

詳細記事:CockroachDBデータにSQL Server のリンクサーバーとして接続

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

SELECT * from リンクサーバー名.CData CockroachDB Source Sys(ODBC DSN 名).CockroachDB.テーブル名

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

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

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

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

詳細記事:CockroachDBデータをSSIS を使ってSQL Server にインポート

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

SSIS 以外にもすでにETL/EAI ツールをお持ちであれば、CData Drivers をETL/EAI ツールで使うだけで簡単にデータ連携が可能です。ASTERIA Warp、DataSpider、Informatica、Waha!Transformer、RACCOON、Talend など多様なETL からの利用が可能です(ETL 接続記事:CockroachDB のETL、レプリケーション & DWH 接続ガイド)。ETL ツールを新しく買うとコストが上がっても、ユーザーが既に使っているツールにCockroachDB Driver をアドオンするだけで連携が組めるので、既にETL ツールを使っているユーザーはこちらのオプションがコスト・技術的に使いやすいでしょう。

4. CData Sync でCockroachDB データをSQL Server にレプリケーション

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

詳細記事:SQL Server へのCockroachDB データの自動反復レプリケーション

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