
ただのBIツールではない、分析プラットフォームとしてのQlik Senseの潜在能力
メーカーの発表などを見ていると、最近Qlik Senseのことを”分析プラットフォーム”と表現することが多くなってきました。
つまり、Qlik Senseはただの”BIツール”ではなく、より広い範囲に適用できる”分析プラットフォーム”であるという訳です。
そこで今回はいつもとすこし趣向を変えて、Qlik Senseの拡張性に着目してみます。
見た目の美しさや操作性の良さに言及されることの多いQlik Senseですが、本来どこまでのポテンシャルを持っているのか、Qlik Senseの拡張性や将来性に触れてみましょう。
Qlik Senseをお使いの方はもちろん、BIツールの導入を検討中の方も、Qlik Senseというツールの本質を理解する上で有用だと思いますので、ぜひご覧ください。
Qlik Senseの製品群
まずはQlik Sense製品群をあらためて確認してみましょう。Qlik Senseのヘルプの以下のページで、「Qlik Sense製品ファミリ」の図をご覧ください。
Qlik Sense とは?
ごく簡単に図示すると下図のようになります。

つまり、「Qlik Sense Desktop」などはあくまでGUIのツールであり、根幹を支えているのは「Qlik Analytics Platform」であるということになります。
Qlik分析プラットフォームの特徴
では、もう一つ別のページを見てみましょう。以下のページは、Qlik製品の特長を簡潔に説明したQlik社のページです。
Qlik が選ばれる理由 | Qlik
このページの下部にある「自由な構築が可能なプラットフォーム」に、以下の記載があります。
以下は上記のページからの引用です。
Qlik 分析プラットフォームは、ユーザーが自由に構築できるよう設計されています。実は、Qlik Sense アプリケーションもこの方法で構築したものなのです。
- オープンかつ標準的な API。Qlik 分析プラットフォームは、オープンかつ標準的な API を通じ、QIX エンジンに対する比類のないアクセス性を提供します。
- マッシュアップおよび拡張。Qlik 分析プラットフォームが搭載するマッシュアップおよび拡張 API を用いることで、高度なウェブ アプリケーションおよびカスタム ビジュアライゼーションを簡単かつ迅速に構築できます。
簡単に補足しながらまとめると、Qlik SenseはHTML5などの標準的なWebの技術を採用しているため、外部のWebサイト(Webアプリ)と統合したり、もともと用意されていないチャートを独自に追加したりできるということです。
もっと言えば、「Qlik Sense Desktop」のようなツールを、自分で一から開発することも可能です。
以上で概要の説明は終了です。
やはり説明だけでは実感が沸かないと思いますので、ここからは具体的な例を見てみましょう。
できる限り実際に試せるようにまとめていきますので、みなさまもぜひご自身でも試してみてください。
Qlik Senseが採用している技術
前述のとおり、Qlik SenseはHTML5などの標準的なWebの技術を採用しています。ではどのような技術が採用されているか、キーワードだけでも確認しておきましょう。
以下のページはQlik Senseの開発者向けヘルプです。
Qlik Sense for Developers help Technologies
開発者向けの補足:Qlik Senseのヘルプには、通常のヘルプと開発者向けのヘルプがあります。開発者向けのヘルプには、Qlik Senseで使用できるAPIの詳細などもまとめられています。
「HTML5」「WebSocket」「JSON」「REST」などの単語が並んでいますね。
聞いたことのある単語がいくつかあると思いますが、重要なのは全面的にWebの技術が採用されているという点です。
QlikViewでもJavaScriptなどを使用して拡張機能を開発できましたが、Qlik Senseではさらにこれが徹底されています。
では、本当にそうなのか実際に確認してみましょう。
Qlik Sense Desktopを起動してください。
起動したら、「Ctrl」キーと「Shift」キーを押しながら、画面上の任意の場所を右クリックしてください。
これはQlik Sense Desktopの隠しコマンドのようなもので、以下のような見慣れないメニューが出てくるかと思います。
この中から「Show DevTools」を選択してください。

以下の画面が起動します。
これは開発者向けのデバッグツールで、Qlik Sense Desktopに表示されている画面のソースなどを見ることができます。
内容を見ると中身のソースがHTMLでできていることが分かります。

開発者向けの補足:この画面を見てピンときた方もいるかもしれませんが、これはGoogle Chromeのデベロッパー ツール(F12キー)とおなじものです。Qlik Sense Desktopの実体はChromiumベースのアプリケーション(埋め込みブラウザ)です。
Qlik Sense for Developers help Qlik Sense Desktop architecture
これだけではなく、実はQlik Sense Desktopはブラウザから使用することもできます。
Qlik Sense Desktopを起動したまま、ブラウザを起動してください。
後ほどChrome特有の機能を使用しますので、ChromeがインストールされているのであればChromeを使用してください。
ChromeがなければInternet Explorer(10以降)、Firefoxなど他のブラウザで構いません。
ブラウザが起動したら、アドレスバーに以下のURLを入力してください。
http://localhost:4848/hub/

ブラウザの中に、Qlik Sense Desktopとまったく同じ画面が表示されました。

このようにQlik Sense Desktopは見た目上はWindowsのアプリケーションですが、中身はWebブラウザです。言い換えるとQlik Sense Desktopは、Qlik Sense専用のWebブラウザということです。
では一つ、おもしろい実験をしてみましょう。
Qlik Sense Desktopと、ブラウザ側のQlik Senseハブでおなじアプリを開いてください。
ここでは、デモアプリとしてあらかじめ用意されている「Customer Goods Sales」を選択します。


下図のように画面を横に並べておくと分かりやすいでしょう。

どちらか一方でなにか値を選択すると、もう一方の画面にも瞬時に反映されると思います。
QIXエンジン
それではここで、QIXエンジンについて触れておきます。QIXエンジンというのは簡単に言うと、Qlik Senseのエンジンに当たるもので連想技術の核となる部分です。ここでは難しく考えずに裏で動いているエンジンだと思ってください。
重要なのは、Qlik Senseの動作はQIXエンジンによって一元的に管理されているということです。
先ほどクライアントのツール間で表示が自動的に同期されたのは、QIXエンジンの働きによるものです。
開発者向けの補足:リアルタイムに画面が更新される部分には、WebSocketの技術が使われています。また、このことを利用して複数画面でQlik Senseのアプリを開発できます。たとえば二つの画面でおなじアプリを開き、片方を編集モードに、もう一方を閲覧モードにすればリアルタイムに結果を確認しながらアプリを開発できます。
マッシュアップとエクステンション
ここまでで、Qlik Senseが標準的なWebの技術を採用していることを説明してきました。では、それによってなにが嬉しいのかという話ですが、Webの技術を採用していることにより、外部のWebサイト(Webアプリ)との統合が容易になります。=マッシュアップ
また、標準的な技術を採用していることにより、先進的な外部ライブラリとの連携が容易になり、またこれによって機能を拡張できます。=エクステンション
マッシュアップ
では、マッシュアップの機能を試してみましょう。※ここで紹介する機能は正確には”埋め込み(Embed)”と呼ばれるもので、マッシュアップとは別の機能です。ただし埋め込みもマッシュアップも、Qlik Senseのチャートを別のWebサイトに統合するという意味ではおなじものです。
まず、マッシュアップやエクステンションを開発するには、「Qlik Dev Hub」という開発者用の画面にブラウザからアクセスします。
ブラウザを起動してアドレスバーに以下のURLを指定してください。
http://localhost:4848/dev-hub/


「Qlik Sense Cloud」にある「Qlik Sense Charts」と同等のものです。
では、画面左側から「Single configulator」を選択してください。


2つほど設定を加えます。まず値の選択などを有効にするために「Disable interaction」のチェックを外します。


「View」をクリックして結果を確認してみましょう。


また、この場合もQIXエンジンによる一元管理が働いています。

なお、今回は「Single configulator」をご覧いただきましたが、「Mashup」を使用することで複数のチャートを組み合わせた独自のWebページを作成することも可能です。以下はMashupの作成イメージです。

エクステンション
最後にエクステンションについて見ていきましょう。ここでは「Qlik Sense 2 Dimensional Heatmap」というチャートを追加するエクステンションと、「SenseIt」というChromeの拡張機能を紹介します。
なお、Qlik Senseで単純に”エクステンション”と言った場合、”ビジュアライゼーション エクステンション”つまりチャート関連の拡張機能を指します。そういった意味では「SenseIt」の方は”エクステンション”ではないのですが、機能を拡張するという意味ではおなじですので、あわせて紹介いたします。
ビジュアライゼーション エクステンション
それではまず「Qlik Sense 2 Dimensional Heatmap」を使用してみましょう。エクステンションは、先ほどのDev Hubで一から開発することもできるのですが、はじめからエクステンションを開発するのは敷居が高いため、まずは無償で公開されているエクステンションを利用するところから、はじめてみてください。
無償のエクステンションは「Qlik Branch」というサイトに、大量に公開されています。
では早速、Qlik Branchを見てみましょう。
Qlik Branch
http://branch.qlik.com/
GitHubのかわいらしいマスコットキャラがトップに表示されましたね。

Qlik Branch Qlik Sense 2 Dimensional Heatmap
「Download project」ボタンをクリックして、エクステンションをダウンロードしてください。


Extensionsフォルダは以下にあります。
C:\Users\<ユーザー名>\Documents\Qlik\Sense\Extensions

これだけでエクステンションが使えるようになります。

このエクステンションはこのあと使用します。
SenseIt
それではつづいて「SenseIt」を使用してみましょう。SenseItはWebページ上のテーブルを、Qlik Senseに簡単に取り込むChromeの拡張機能です。
Chromeを起動して、以下のページにアクセスしてください。
※SenseItはChrome版しかないためChromeを使用してください。
SenseIt – Chrome ウェブストア
以下の画面を参考にSenseItをインストールしてください。


SenseItがインストールされました。

前述のとおり、SenseItはWebページ上のテーブルをQlik Senseに取り込む機能です。
ここでは題材として、以前このブログで取り上げた以下の記事からデータを取り込んでみましょう。
データの可視化 日本人の誕生日ランキングをあらわす一枚の画像
このページの下部に日本人の誕生日ランキングの表があります。アドレスバーの右にある「SenseIt」ボタンをクリックしてください。

SenseItはWebページ上のテーブルを自動で認識して、テーブルに黄色の枠線を着けます。誕生日ランキングの表をSenseItのウィンドウにドラッグ&ドロップします。





先ほど追加したエクステンションを使用してみましょう。「チャート」から「2 Dimensional Heatmap」をドラッグ&ドロップでシートに追加します。

軸とメジャーを設定します。
ここでは下図のように、1つ目の軸に「月」、2つ目の軸に「日」を設定します。さらにメジャーで「合計出生数」を選択し「Sum([合計出生数])」を設定してください。

これだけでヒートマップが作成されます。ヒートマップは値の大小を色の変化で表現するチャートです。

画面右の「スタイル」では、このエクステンション特有の設定も可能です。
「Color And Legend」で配色を変更できます。ここでは「Qlik Sense Diverging(Reverse)」を選択してみましょう。

ヒートマップが完成しました。この配色では値の少ないものを赤、多いものを青であらわします。
たとえば、2月29日に生まれた方は非常に少なく(四年に一回しかないので当然ですね)、逆に9月下旬や12月下旬に生まれた方が多いということが視覚的に分かります。

以上でエクステンションの説明は終了です。
あらかじめ用意されていないチャートを追加したり、外部のソフトウェアと連携したりできることがお分かりいただけたかと思います。
最後に…
今回はQlik Senseの拡張性というテーマで、Qlik Senseにできることをいろいろと紹介してきましたが、個人的には拡張性が高い一方で、QIXエンジンによる一元管理が徹底されている点が印象的でした。つまり、データ値そのものやユーザーが選択した値など、データが直接関わる部分は常に一つで、それはQIXエンジンが一元管理しています。
その一方で、デバイスやクライアントは複数同時に利用できるようになっており、またチャートなど見た目に関する部分は自由に拡張できるようになっています。
採用している技術の観点から言えば、核となるQIXエンジンは独自の特許技術で保護しつつ、APIやクライアント製品には標準のWeb技術や、先端的なライブラリを採用しています。
最後にここまでの内容を、表にまとめておわります。
これはわたしの独自解釈ですが、今回見てきた内容を総合すると下表のようにあらわせると思います。
フロントエンド | バックエンド |
---|---|
豊富なAPIによる柔軟な拡張 | QIXエンジンによる一元管理 |
標準的なWebの技術(オープンな技術) | 独自の特許技術(クローズドな技術) |
表現(デバイス、ブラウザ、チャート)には多様性を | 事実(データ)には一貫性を |
外部リンク
Qlik Sense for Developers help 窶鈀 Qlik Sensehttps://help.qlik.com/en-US/sense-developer/
Qlik Senseの開発者向けヘルプです。Qlik SenseのAPIの詳細などがまとめられています。(英語)
Qlik Branch
http://branch.qlik.com/
Qlik Branchです。エクステンションを探したいときは、まずここを見るといいでしょう。(英語)
QlikSpace | Qlik Sense + QlikViewの技術情報サイト
http://www.qlikspace.net
QlikViewとQlik Senseの技術情報を発信しているブログです。Qlik社の方が運営しているため、APIや拡張機能に関する記事も非常に充実しています。
Qlik Sense Platform APIs Ignite New Open Source Community | Qlik
http://www.qlik.com/us/company/press-room/press-releases/0126-qlik-sense-platform-apis-ignite-new-open-source-community
Qlik Branchを発表した際のQlik社のリリースです。(英語)
Qlik社が今後、開発者の支援やオープンソースコミュニティへの取り組みを強化していくといったことが書かれています。