はじめに

Qlik Sense Enterpriseは無償で提供されているQlik Sense DesktopやQlik Cloudの上位製品として、より多人数のユーザーによるセルフサービスによる利用や運用における細かなニーズに対応する、ガバナンス機能を備えたデータディスカバリプラットフォームとして位置づけられています。このエントリでは、Qlik Sense Enterpriseのアーキテクチャーや機能についてご紹介させて頂きます。

Qlik Sense Enterpriseのアーキテクチャー

では、まずQlik Sense Enterpriseプラットフォームの全体像と各サービス・コンポーネントの役割を見ていきたいと思います。以下が全体的なアーキテクチャーの図となります。

image

アプリが公開されているサイト、管理コンソールトはそれぞれ「ハブ」、「QMC」と呼ばれており、これらは「プロキシ(QPS)」と呼ばれるコンポーネントを経由してアクセスが可能となっています。アプリの計算や集計などのコアの処理は「エンジン(QIX/QES)」が担当し、タスクのスケジュール実行は「スケジューラ(QSS)」が管理します。また、各種構成データは「レポジトリ(QRS)」に保存されています。これらのコンポーネントの役割をまとめたのが以下の表となります。

略称 コンポーネント名 説明
ハブ Qlik Sense Hub Qlik Sense上のアプリを公開・利用するために使用されるポータルサイト
管理コンソール Qlik Sense Management Console (QMC) Qlik Senseサイトを設定および管理するコンソール
プロキシ Qlik Sense Proxy (QPS) Qlik Senseサイトの認証、セッション ハンドリング、負荷分散を管理
エンジン Qlik Sense Engine (QIX / QES) 全てのアプリケーションの計算とロジックを取り扱うサービス
スケジューラ Qlik Sense Scheduler Service(QSS) アプリのスケジューリングされたリロードやタスクチェーンなどを管理
レポジトリ Qlik Sense Repository Service (QRS) アプリ、ライセンス、セキュリティ、サービス構成データの管理と同期

Qlik Sense Enterpriseの管理

管理コンソールでの集中管理

Qlik Sense サイトの設定・管理に利用 されるのがQlik Sense Management Console (QMC)と呼ばれる管理コンソールになります。後述するマルチノードでの分散環境を構築した場合でも、中央ノード上に稼働するQMCで設定情報を管理してこれらの情報は他のノードに同期されることで、地理的に分散したマルチノードでも一箇所で集中管理することが可能です。

QMC

QMC上で、アプリ/シート/オブジェクト、データ接続定義、ストリームなどの「コンテンツ管理」、セキュリティ、監査、ユーザー、ライセンスなどの「リソース管理」などを行うことができます。

ハブでのアプリ公開

ユーザーは「ハブ」と呼ばれるポータルサイトにウェブブラウザでアクセスを行います。ハブ上には利用可能なQlik Senseアプリが一覧表示で公開され、ユーザーは一覧から利用するアプリを選択することが出来ます。

Qlik Senseハブ

ストリームによるアプリ管理

上記の「ハブ」上では「ストリーム」という単位でQlik Senseアプリがまとめて管理されています。上記イメージ中の左側に配置されている「Administration」、「Everyone」、「Finance」といったタブがこのストリームに当たり、これらのタブを選択するとそれぞれのストリームに含まれるアプリが表示されます。

ストリームは、特定の種類のアプリや、あるグループが独占的にアクセスできるアプリをまとめる単位として利用できます。また、ストリーム内のアプリを読み取れる権限のみを持つユーザー、もしくはアプリに新たなシート等のオブジェクトを追加・公開することの出来るユーザーを設定するなど、細かなセキュリティ設定を行うことも可能です。

ストリーム

オンライン・オフラインでのアプリ開発

Qlik Sense Enterpriseに公開するアプリは、以下のオンライン・オフラインいずれかの方法でも開発することが可能となっています:

  • Qlik Sense Enterpriseの「ハブ」上で直接アプリを開発
  • Qlik Sense Desktopでオフラインで開発し、QMC上で作成したファイルをインポート

Qlik Senseでの開発方法

ユーザー間のコラボレーション

Qlik Sense Enterprise上で作成したアプリ、ブックマーク、データ・ストーリーテリング(ストーリー)をユーザー間で共有し、以下の3ステップでコラボレーションを行うことが可能です。

①「基本のシート」

「基本のシート」とは、開発者やヘビーユーザーなどにより事前に開発されて公開された共通利用されるチャートやストーリなどになります。エンドユーザーは「ハブ」にアクセスし、これらを開いて利用することができます。

image

②「マイシート」

公開済みの「承認済みシート」上のチャートの分析軸を修正したいなど、個別のエンドユーザーがパーソナライズを行いたい場合、シートやストーリーを新たに追加したり、既存シートをコピーして修正ことでパーソナライズされた「マイシート」を作成することができます。

image

③「コミュニティ」シート

個別のユーザーが作成したマイシート、ブックマーク、ストーリーは他のユーザーも参照可能な「コミュニティ」に公開・共有することが可能です。

image

データ更新のスケジューリング

作成したQlik Senseアプリに含まれるデータをソースシステムからリロードしてデータを更新する処理を、スケジュール実行することができます。 またタスクチェーンにより、直前に実行されたタスクイベントによってその後のタスクが実行されるように、複数のタスク実行をフロー化することが出来ます。

タスク

モニターツールによる運用の360度ビュー

Qlik Sense Enterpriseでは、オペレーションモニターやライセンスモニターなどが標準で提供されており、優れたガバナンスの実現するための運用の360度ビューを得ることができます。 以下のオペレーションモニターでは、ハードウェア使用状況、アクティブユーザー数、エラーと警告数のパフォーマンス履歴等のグラフ化された情報を確認することが出来ます。

オペレーションモニタ

セキュリティ設定

セキュリティルールの柔軟なアクセス設定

Qlik Sense Enterpriseではより柔軟なセキュリティ設定に対応できるよう、属性ベースアクセス制御(Attribute-based Access Control: ABAC)の機能が提供されています。リクエストを行っているユーザー、リクエストが行われる環境、リクエストが適用されるリソースなどの属性を元に、ユーザーがリソースでの実行を求めているアクション (作成、更新、削除など) を付与するかルールベースで評価が行われます。

属性ベースのアクセス制御

セキュリティルールは以下のようなセンテンスで理解することができる形式となっています。

セキュリティルール

例えば、財務部(groupがfinance)のユーザーに対して、「Financeストリーム」の読み取り権限を付与する場合には、以下の様なセキュリティルールの設定を行います。

セキュリティルールの例

このルールを設定した場合のアクセス制御の流れの例が以下となります。ユーザーとリソースのプロパティ、及びユーザーが要求するアクションをリクエストとして受け取り、ルールエンジンは該当するルールを識別して、レスポンスとルールをプロパティベースで一つ一つ比較します。

アクセス制御の流れ

以上のイメージではリクエスト元のユーザーのグループが「sales」であるのに対し、ルールで許可されているグループが「finance」となっているため、アクセスが拒否されています。

セキュリティの監査

監査ページでは、Qlik Sense システムで定義されたセキュリティルール等に対してクエリや監査を実行できます。

監査

例えば、「Finance」ストリームにセキュリティルールを設定した場合、意図する形でセキュリティルールが設定されているか確認することが必要となります。この時、「Finance」ストリームの監査を実行し、アクセスを許可されているユーザーと許されているアクション表示することで、その確認を行うことができます。

各種認証方式への対応

Qlik Sense Enterpriseは社内に存在するActive Directory等の既存IDプロバイダと連携を行って認証を行うことができます。Qlik Sense の認証は、プロキシ (QPS) のサービスによって管理されます。

image

Qlik Senseでは、以下の認証方式に対応しています。

認証方式 説明
Windowsユーザー認証
  • Windowsのユーザー情報を利用して認証を行う、デフォルトで利用される認証方式
  • NTLM認証、Kerberos認証、基本認証の利用をサポート
SAML認証
  • AML(Salesforce,ADFSなど)との連携を行う場合に利用
ヘッダー認証
  • リバースプロキシやユーザー認証用フィルタを提供するシングルサインオン(SSO)システムとの連携
  • 認証をクリアしたユーザーIDをHTTPヘッダーに埋め込んでQlik Senseに渡し、そのユーザーでのログオンを許可する仕組み
チケット認証
  • LDAP、SAML(Salesforce,ADFS)、Oauth(Facebook,Google,Salesforce)などを利用して認証を行いたい場合、もしくはこれらの認証方式を利用するWebサイトと連携を行いた場合に利用
  • 他のウェブサイトで認証されたユーザーをQlik Senseでも認証済みと扱ってシステム連携を行う仕組み
セッションAPI
  • ポータルサイト(Jboss, WebSphereを含むJavaポータルなど) との連携を行う場合に利用
  • 他システムで生成されたセッション情報はQlik Senseに共有されユーザー認証を行う仕組み

仮想プロキシによる複数認証方式への対応

仮想プロキシを利用することで、上記一覧に記載された複数の認証方式に同時に対応することも可能です。 「http://<<サーバー名>>//<<プレフィックス>>/hub」という形式で複数プレフィックスを仮想プロキシで設定することにより、Windows認証、ヘッダー認証、チケット認証などの複数の認証方式によってQlik Sense Enterpriseを利用可能とすることができます。

image

Section Accessによるデータレベルのセキュリティ

Section Access(データ削減)は、ユーザー毎に閲覧できる列や行の範囲を絞ることができるデータレベルでのセキュリティ制御の機能に当たります。QlikViewではデスクトップ製品でも提供されていましたが、Qlik Senseでは無償のQlik Sense Desktopでは当機能は提供されておらず、Qlik Sense Enterpriseでのみ利用可能な機能となっています。

image

この機能により、例えば関東支店と関西支店のユーザーに、全データではなくそれぞれ関東支店と関西支店の売上実績のみを参照させるといったセキュリティ制御が可能となります。

マルチノードの分散環境

マルチノードでの分散環境構築

Qlik Sense Enterpriseではマルチノード構成により、可用性の確保や拡張性への対応を行うことが可能です。マルチノード構成では各ノードはデータの複製を保持し、中央ノードと1台以上の子ノード間でデータを同期する方式をとります。 また、地理的に分散したサイトに複数ノードを配置し、一か所で集中管理を行う運用を行うことが可能です。

image

同期ルールによるノード間同期の制御

同期ルールにより、ノードごとに同期の対象となるアプリを分けるなどの制御を柔軟に行うことが可能です。 以下は、営業担当とマーケティング担当のアプリがそれぞれ異なったサーバーのみに同期されるよう、同期ルールを設定している例を示しています。

image

まとめ

当エントリでは、ガバナンス機能を備えたデータディスカバリプラットフォームとして位置づけられているQlik Sense Enterpriseについてご紹介させて頂きました。Qlik Sense Enterpriseではセルフサービス型のデータ分析やユーザー間のコラボレーションを実現するための機能を提供しつつ、運用におけるガバナンスや柔軟なセキュリティ設定を重視しています。また、グローバル展開を考慮した地理的に分散したマルチノードの分散環境構などについてもご紹介させて頂きました。