データ・ディスカバリ・プラットフォーム「Qlik Sense Enterprise」の解説
はじめに
Qlik Sense Enterpriseは無償で提供されているQlik Sense DesktopやQlik Cloudの上位製品として、より多人数のユーザーによるセルフサービスによる利用や運用における細かなニーズに対応する、ガバナンス機能を備えたデータディスカバリプラットフォームとして位置づけられています。このエントリでは、Qlik Sense Enterpriseのアーキテクチャーや機能についてご紹介させて頂きます。
Qlik Sense Enterpriseのアーキテクチャー
では、まずQlik Sense Enterpriseプラットフォームの全体像と各サービス・コンポーネントの役割を見ていきたいと思います。以下が全体的なアーキテクチャーの図となります。
アプリが公開されているサイト、管理コンソールトはそれぞれ「ハブ」、「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上で、アプリ/シート/オブジェクト、データ接続定義、ストリームなどの「コンテンツ管理」、セキュリティ、監査、ユーザー、ライセンスなどの「リソース管理」などを行うことができます。
ハブでのアプリ公開
ユーザーは「ハブ」と呼ばれるポータルサイトにウェブブラウザでアクセスを行います。ハブ上には利用可能なQlik Senseアプリが一覧表示で公開され、ユーザーは一覧から利用するアプリを選択することが出来ます。
ストリームによるアプリ管理
上記の「ハブ」上では「ストリーム」という単位でQlik Senseアプリがまとめて管理されています。上記イメージ中の左側に配置されている「Administration」、「Everyone」、「Finance」といったタブがこのストリームに当たり、これらのタブを選択するとそれぞれのストリームに含まれるアプリが表示されます。
ストリームは、特定の種類のアプリや、あるグループが独占的にアクセスできるアプリをまとめる単位として利用できます。また、ストリーム内のアプリを読み取れる権限のみを持つユーザー、もしくはアプリに新たなシート等のオブジェクトを追加・公開することの出来るユーザーを設定するなど、細かなセキュリティ設定を行うことも可能です。
オンライン・オフラインでのアプリ開発
Qlik Sense Enterpriseに公開するアプリは、以下のオンライン・オフラインいずれかの方法でも開発することが可能となっています:
- Qlik Sense Enterpriseの「ハブ」上で直接アプリを開発
- Qlik Sense Desktopでオフラインで開発し、QMC上で作成したファイルをインポート
ユーザー間のコラボレーション
Qlik Sense Enterprise上で作成したアプリ、ブックマーク、データ・ストーリーテリング(ストーリー)をユーザー間で共有し、以下の3ステップでコラボレーションを行うことが可能です。
①「基本のシート」
「基本のシート」とは、開発者やヘビーユーザーなどにより事前に開発されて公開された共通利用されるチャートやストーリなどになります。エンドユーザーは「ハブ」にアクセスし、これらを開いて利用することができます。
②「マイシート」
公開済みの「承認済みシート」上のチャートの分析軸を修正したいなど、個別のエンドユーザーがパーソナライズを行いたい場合、シートやストーリーを新たに追加したり、既存シートをコピーして修正ことでパーソナライズされた「マイシート」を作成することができます。
③「コミュニティ」シート
個別のユーザーが作成したマイシート、ブックマーク、ストーリーは他のユーザーも参照可能な「コミュニティ」に公開・共有することが可能です。
データ更新のスケジューリング
作成した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) のサービスによって管理されます。
Qlik Senseでは、以下の認証方式に対応しています。
認証方式 | 説明 |
---|---|
Windowsユーザー認証 |
|
SAML認証 |
|
ヘッダー認証 |
|
チケット認証 |
|
セッションAPI |
|
仮想プロキシによる複数認証方式への対応
仮想プロキシを利用することで、上記一覧に記載された複数の認証方式に同時に対応することも可能です。 「http://<<サーバー名>>//<<プレフィックス>>/hub」という形式で複数プレフィックスを仮想プロキシで設定することにより、Windows認証、ヘッダー認証、チケット認証などの複数の認証方式によってQlik Sense Enterpriseを利用可能とすることができます。
Section Accessによるデータレベルのセキュリティ
Section Access(データ削減)は、ユーザー毎に閲覧できる列や行の範囲を絞ることができるデータレベルでのセキュリティ制御の機能に当たります。QlikViewではデスクトップ製品でも提供されていましたが、Qlik Senseでは無償のQlik Sense Desktopでは当機能は提供されておらず、Qlik Sense Enterpriseでのみ利用可能な機能となっています。
この機能により、例えば関東支店と関西支店のユーザーに、全データではなくそれぞれ関東支店と関西支店の売上実績のみを参照させるといったセキュリティ制御が可能となります。
マルチノードの分散環境
マルチノードでの分散環境構築
Qlik Sense Enterpriseではマルチノード構成により、可用性の確保や拡張性への対応を行うことが可能です。マルチノード構成では各ノードはデータの複製を保持し、中央ノードと1台以上の子ノード間でデータを同期する方式をとります。 また、地理的に分散したサイトに複数ノードを配置し、一か所で集中管理を行う運用を行うことが可能です。
同期ルールによるノード間同期の制御
同期ルールにより、ノードごとに同期の対象となるアプリを分けるなどの制御を柔軟に行うことが可能です。 以下は、営業担当とマーケティング担当のアプリがそれぞれ異なったサーバーのみに同期されるよう、同期ルールを設定している例を示しています。
まとめ
当エントリでは、ガバナンス機能を備えたデータディスカバリプラットフォームとして位置づけられているQlik Sense Enterpriseについてご紹介させて頂きました。Qlik Sense Enterpriseではセルフサービス型のデータ分析やユーザー間のコラボレーションを実現するための機能を提供しつつ、運用におけるガバナンスや柔軟なセキュリティ設定を重視しています。また、グローバル展開を考慮した地理的に分散したマルチノードの分散環境構などについてもご紹介させて頂きました。