こんにちは。CData Software Japan リードエンジニアの杉本です。
先日の記事でCData Connectの新機能、Data Explorer を紹介しました。
もう一つ今回のアップデートの大きな特徴として、「Query Federation」機能があります。
今回はこの「Query Federation」の使い方を解説したいと思います!
Query Federation とは?
Query Federation とは、CData Connect 上に登録した複数のデータソースに対して、単一のSQLでクエリを実行することができる機能です。
現在 CData Connectでは以下のようなデータソースラインナップに対して接続を構成できます。
これまではデータソース毎にしかSQLを書くことができなかったのですが、この「Query Federation」が搭載されたことにより、例えばGoogle SpreadsheetとKintoneのデータを結合・JOINして結果を出したり
SalesforceやHubSpotなどのCRM・MAツールで管理している顧客データを合算・UNIONして結果を出力したりすることができるようになりました。
実はCDataの Driverの一つとしてもこの「Query Federation」は元々提供されていて、以前このBlogでも取り上げていました。
CData Connect はクラウドデータのアクセスに特化していますが、Query Federation Driverはローカルのデータ、オンプレミスのSQL Serverなども併せてJOINが出来たりします。
Query Federation の使い方
それでは早速 Query Federation を使ってみましょう。
まず、「Data Source」の一覧画面から接続したいサービスをそれぞれ登録します。
今回は「kintone」と「Smaregi」を選んでみました。
接続した Data Source には以前の記事で紹介したように、「Data Explorer」でクエリを実行できます。
例えば、Kintone の「顧客リスト」をクエリすると以下のような結果が得られます。
Smaregiの「Customers」をクエリすると以下のようになりますね。
それでは「Query Federation」の機能でこれらのデータソースを結合した結果を取得してみましょう。
といってもSQLに慣れた方であれば利用する方法はシンプルです。
JOINやUNIONのそれぞれのデータソース・テーブル名を切り替えて指定するだけでOKです。
SELECT [KintoneCustomers].[RecordId], [KintoneCustomers].[メールアドレス], [SmaregiCustomers].[CustomerId], [SmaregiCustomers].[CompanyName], [SmaregiCustomers].[MailAddress], [SmaregiCustomers].[Rank] FROM [CData].[Kintone1].[顧客リスト] as [KintoneCustomers] LEFT JOIN [CData].[Smaregi1].[Customers] as [SmaregiCustomers] ON [KintoneCustomers].[メールアドレス] = [SmaregiCustomers].[MailAddress];
これでJOINした結果を取得できました。
クエリした結果は「Create Derived View」をクリックすることで保存して、今後簡単に呼び出すことができます。
以下のようにFederated Queryのビューが登録されました。
あとはお好みのツールを通じて、「UserViews」からFederated Queryのビューのクエリ結果を呼び出すことができます。
おわりに
今回は Kintone と Smaregi のデータをJOINしてみましたが、CData Connectにラインナップされているデータソースであれば、どれでもJOINしたりUNIONしたりすることができます。
CData Connect はトライアルも提供しているので、是非試してみてください。