国産セルフサービスBI ツールData Knowledge でSharePoint Excel Services のデータを分析・可視化する方法
今回は、クロスユーアイエス社の国産セルフサービスBI ツールData Knowledge とCData ODBC ドライバを組み合わせて、SharePoint Excel Services のデータの分析・可視化を行う方法を紹介します。
Data Knowledge とは?
Data Knowledge は株式会社クロスユーアイエスが提供する国産セルフサービスBI ツールです。わかりやすいインターフェースとシンプルな手順でデータの可視化を行うことができ、BI ツールを使用した経験がない人でも簡単に使うことができます。
連携シナリオ
さて、今回の記事ではData Knowledge からSharePoint Excel Services に接続していきますが、このときに必要となるのがCData ODBC ドライバです。
Data Knowledge にはODBC を経由してExcel やAccess、SQL Server などに接続する機能が標準提供されています。この機能とCData が提供しているODBC Drivers ラインナップを組み合わせることで、各種クラウドサービスのAPI やデータベースにシームレスにアクセスすることができるようになります。
とは言っても、説明だけではイメージできない部分もあると思うので、実際に連携を試してみましょう。今回はData Knowledge とSharePoint Excel Services のデータを組み合わせて以下のようなクロス集計の表を作ってみたいと思います。
手順
SharePoint Excel Services ODBC Driver のインストール・セットアップ
まずは、CData SharePoint Excel Services ODBC Driver を対象のマシンにインストール・セットアップします。インストーラーを立ち上げると、以下のような画面になるので、ダイアログに従ってセットアップを完了してください。
セットアップ完了後、接続設定画面が立ち上がりますので、SharePoint Excel Services への接続情報を設定してください。
ワークブックへの接続
どちらのSharePoint エディションをお使いでも、File を Excel ワークブックに設定してください。このパスは以下のプロパティからの相対パスになります。
- Library:デフォルトではShared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定してみてください。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
- Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名に関連します。
テーブルとしてのスプレッドシートデータへの接続
CData 製品では、基底API で利用可能なオブジェクトに基づいて、使用可能なテーブルを検出していきます。
API では異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択しましょう。
- OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、CData 製品がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定してください。
- REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへアクセスできます。これがデフォルトの API です。範囲およびスプレッドシートから多数の行をリクエストすることは REST API によって制限されており、CData 製品では返される行数をデフォルトで 100 に制限しています。また CData 製品では、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定してください。
DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。
SharePoint オンプレミスへの接続
URL をサーバー名もしくはIP アドレスに設定しましょう。さらに、SharePointVersion と認証値を設定します。
SharePoint OnPremises を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUser と Password を設定してください。
Note:SharePoint On-Premises 2010 に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。
Windows(NTLM)
最も一般的な認証タイプです。CData 製品では NTLM をデフォルトとして使用するよう事前設定されています。Windows のUser と Password を設定して接続してください。
その他の認証方法については、ヘルプドキュメントの「はじめに」をご覧ください。
あとは「接続のテスト」ボタンをクリックし、接続が成功したら、「接続ウィザード」の「OK」ボタンをクリックして保存します。
Data Knowledge へのログイン
続いてData Knowledge へログインし作業を進めていきます。
ログイン後以下のような画面に移動するので「メインへ移動する」をクリック。続いて「管理」をクリックして、以下のような管理画面に移動します。ここから接続設定の構成を進めていきます。
資源サーバーの登録
Data Knowledge では最初に資源サーバーという形で接続先のRDB の情報などを管理します。ここに先程作成したCData ODBC ドライバの接続情報を指定します。
「資源サーバー」タブに移動し、「新規」をクリックします。
資源サーバー登録画面が表示されるので、任意の「資源サーバーID」と「資源サーバー名」を入力します。
続いて接続設定で「個別で指定」のラジオボタンを指定し、サーバータイプを「ODBC」「ドライバ:データソースを使用する」と選択します。
認証はODBC DSN で事前に指定しているため、「指定しない」でOKです。
最後にホスト(アドレス)/データソースに先程構成したODBC DSNのシステムDSNである「CData ExcelServices Sys」を入力して登録します。
ホストファイルの登録
続いてData Knowledge で利用するデータモデルをホストファイルという形で登録します。
「ホストファイル」タブに移動し、「新規」をクリックします。

任意のホストファイルID とホストファイル名を指定し、テーブル構成の「更新」をクリックしましょう。

左メニューの資源サーバーに先程追加したSharePoint Excel Services のデータモデルが表示されますので、ここでData Knowledge で分析したいテーブルをドラッグアンドドロップで取り込みます。

以下のように取り込めればOKです。登録ボタンをクリックして保存します。

また、必要に応じてサンプルも登録しておきましょう。

資源ロールの権限へ対象のホストファイルの追加
ホストファイルは追加しただけだとユーザーが利用できませんので、資源ロールに権限を追加します。「資源ロール」タブに移動し、利用する資源ロールを選択します。

ホストファイルの欄から「+追加」ボタンをクリックし

先程作成したホストファイルを追加します。

追加後、「登録」ボタンをクリックすればロールの構成は完了です。
デザインの作成
それでは登録したホストファイルをもとに実際のデータの分析・デザインの作成を行っていきましょう。まず、利用メニューに戻ります。

デザインの管理画面から「新規」をクリックして、新しくデザインを作成していきます。

デザインの作成では最初に事前に登録したホストファイルを選択します。

ホストファイルを選択すると、次にどの項目を取り込んでデザインを選択するか?の画面に移るので、任意の項目を選択しましょう。

デザインの編集画面では集計項目や並び順が調整できます。

加工の画面ではデータの抽出条件を設定できます。

出力画面では抽出したデータの結果をどのようなデザインで表現するか、を設定できます。今回はクロス表を表示するような構成にしてみました。

以下のようにクロス集計の縦軸・横軸・集計項目を指定しています。

あとは任意の名前を入力して「実行」します。

正常に実行が完了すると、結果の表示後集計表が作成されます。

おわりに
このようにCData ODBC ドライバを利用することで、各種クラウドサービスを Data Knowledge に取り込んでデザインを作成することができます。
CData ではSharePoint Excel Services 以外にもODBC Driver を多数提供しています。270種類以上のデータソースをサポートしているので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。