2022年5月
クリックテック・ジャパン株式会社
Qlik Sense SaaS向け
コマンドラインツールのご紹介
- Windows/Linux/macOS対応”qlik”コマン
ド
1. qlikコマンドの概要とインストール方法など
2. 簡単な使い方とWebプロキシサーバー設定など
3. 代表的なコマンドの使い方
4. PowerShellを使ったプログラミング例
アジェンダ
3
qlikコマンドの概要と
インストール方法など
qlikコマンドとは?
 コマンドラインで単に「qlik」で実行可能な、Qlik Sense SaaS版のAPI仕様に基づいて開
発されているCLI(コマンドラインインターフェース)。Qlik Sense SaaS版の公開APIを活用
して、さまざまなタスクを実行可能
 以下のようなワークフローをスクリプト化し、自動化することも容易
 アプリのインポート、エクスポート、公開、再公開
 スペースの作成、名前の変更、削除、更新、ユーザーアクセスの割り当て
 アプリの構築、分析、編集
 テナントの管理 etc…
 Windows x64, Linux x64, macOS x64に対応
 実行ファイルなどは https://github.com/qlik-oss/qlik-cli で公開
 無料で利用可能で、テクニカルサポートの対象に含まれる
 ソースコード(Go言語)は非公開
 2022年5月の時点の最新版は v2.11.1
 チュートリアルや各機能については、qlik.devサイト(英語)で解説
 https://qlik.dev/libraries-and-tools/qlik-cli
 https://qlik.dev/tutorials
Githubのサイト: qlik-oss/qlik-cli
インストール作業 その1
1. Windows x64, Linux x64, macOS x64のいずれかを用意
2. Githubから最新版をダウンロードして、適当な場所に展開
 macOS: qlik-Darwin-x86_64.tar.gz
 Linux: qlik-Linux-x86_64.tar.gz
 Windows: qlik-Windows-x86_64.zip
3. 実行ファイル(Windows: qlik.exe, Linux,macOS: qlik) を確認
4. コマンドラインで「./qlik version」などと実行してみる
5. 設定フィイル格納用フォルダ「.qlik」が HOMEディリクトリに生成される
6. 各種コマンドラインパラメータやコマンド例などは「./qlik … --help」で確認
 例えば ./qlik context create --help
インストール作業 その2
1. 必要に応じてテナント管理者でQlik Sense SaaS版にログインし、Management
Console(MC)で「qlikコマンド用ユーザー」に「Developer」権限を付加
2. MCの設定ページでAPIキーを有効にし、有効期限なども設定
3. Qlik Sense SaaS版に「Developer」権限のあるユーザーでログイン
4. ユーザーの「プロファイル設定」ページにアクセスし、管理  APIキー  新規キーの作成 で
APIキーを作成したら、その文字列を大切に保管
8
簡単な使い方と
Webプロキシサーバー設定など
接続したいSaaSテナント群を登録し、1つを選択
1. 接続名とテナントURLとAPIキーを用意し、接続先(context)を登録
 ./qlik context create [接続名] --server https://テナントURL --api-key xxxxx…
1. qlikコマンド実行時に接続するテナントを1つ選択
 ./qlik context use [接続名]
2. 接続先のリストを確認
3. テナントに接続してみて、成功するか確認
テナントに登録済みのユーザーリストと、自分自身
1. ./qlik user ls
2. ./qlik user me
※Qlik Sense SaaS版のAPI(REST)のレスポンスがJSON形式で出力される
qlikコマンドの出力形式
1. メッセージなどの文字列(n行分)
 決してCSV形式ではないので注意!!
 コマンドによっては、--json フラグでJSON形式化できるものもある
1. JSON形式(複数行)
qlikコマンドの出力先
1. 標準出力(stdout)
 コマンド独自のメッセージ
 Qlik Sense SaaS版のAPI(REST)のJSON形式レスポンス(エラー時は標準出力無し)
1. 標準エラー出力(stderr)
 コマンド独自のメッセージ
 Qlik Sense SaaS版のAPI(REST)のエラー系JSON形式レスポンスが含まれるがJSON形式ではない
標準出力のJSON内容: --rawフラグの有無
1. 通常、qlikコマンドはQlik Sense SaaS版のAPI(REST)のJSON形式レスポンスをそのま
ま出力するのではなく、コマンド独自に変形or簡略化したJSONデータを出力する
2. コマンドによっては、Qlik Sense SaaS版のAPI(REST)のJSON形式レスポンスをそのまま
出力するための「--rawフラグ」を追加することにより、必要な情報を得ることが可能になる
…
qlikコマンドでWebプロキシを利用するには?
1. GithubのChangelogページによれば、v2.5.0でWebプロキシ経由に対応した
2. qlikコマンドがGo言語とその標準ライブラリを利用して構築されているため、そのライブラリで
参照するHTTPS用環境変数「HTTPS_PROXY」を設定する
 形式: http://<Webプロキシのアドレス>:<ポート番号>
 Windowsの例: set HTTPS_PROXY=http://proxy.abc.co.jp:8888
 Linux,macOSの例: export HTTPS_PROXY=http://proxy.abc.co.jp:8888
 必要があればHTTP用環境変数HTTP_PROXYも設定可能
3. WebプロキシがBasic認証用のユーザー名とパスワードを要求する場合
 形式: http://ユーザー名:パスワード@<Webプロキシのアドレス>:<ポート番号>
 Windowsの例: set HTTPS_PROXY=http://user:password@proxy.abc.co.jp:8888
 Linux,macOSの例: export HTTPS_PROXY=http://user:password@proxy.abc.co.jp:8888
15
代表的なコマンドの使い方
appコマンド
1. アプリファイルをダウンロード
 ./qlik app export d15d0b80-6ac0-4365-95d1-c40fa4b86323 --output-file backup.qvf
2. アプリファイルをアップロード
 ./qlik app import --file ./backup.qvf --name new.qvf
3. アプリを管理スペースに公開
 ./qlik app publish create 7cf09373-932c-4e0e-b554-f3c993fd804e --spaceId
61b8a7827db4134ee7e35303
4. アプリをリロード
 ./qlik app reload --app 7cf09373-932c-4e0e-b554-f3c993fd804e
1. Qlikエンジンに、アプリで数式を評価させて結果を得る
 ./qlik app eval "Count(address)" by "name" "email" --app 7cf09373-932c-4e0e-b554-
f3c993fd804e
collectionコマンド, itemコマンド, spaceコマンド
1. コレクションの情報リストを取得
 ./qlik collection ls
2. アクセス可能なアプリなどの情報リストを取得
 ./qlik item ls
3. 共有スペースを作成
 ./qlik space create --name testsharedspace --type shared
4. 管理スペースを作成
 ./qlik space create --name testmanagedspace --type managed
5. スペースの情報リストを取得
 ./qlik space ls
6. スペースにユーザーを「閲覧可能,編集可能」の役割で割り当て
 ./qlik space assignment create --spaceId 62727f4c606519795d8159ae --assigneeId
6267846d58877b60d57223fb --type user --roles consumer,producer
7. スペースのメンバーのリスト(所有者を除く)を取得
 ./qlik space assignment ls --spaceId 62727f4c606519795d8159ae
data-fileコマンド
1. スペース(個人用・管理・共有)に紐づく「DataFiles」(データ接続フォルダ)の情報リストを
取得
 ./qlik data-file connection ls
2. 特定スペース内の「DataFiles」内にあるデータファイルの情報リストを取得
 ./qlik data-file ls --connectionId 2c796348-d542-46cf-9f57-68164758dba7
3. 特定スペースにデータファイル(例: csvファイル)をアップロード
 ./qlik data-file create --name managedspace.csv --file ./managedspace.csv --connectionId
2c796348-d542-46cf-9f57-68164758dba7
4. 特定のデータファイルを削除
 ./qlik data-file rm 2f126dd1-03f0-4b48-9d3b-b5ab21e99336
5. アップロード可能なファイルの拡張子のリストや、ファイルの最大サイズなどの情報を取得
 ./qlik data-file quotas
reloadコマンド, reload-taskコマンド
1. アプリのリロードを開始
 ./qlik reload create --appId d15d0b80-6ac0-4365-95d1-c40fa4b86323
2. アプリのリロード状況を取得
 ./qlik reload get 627284f0fef6688824fcaac4
3. アプリのリロードタスクの情報リストを取得
 ./qlik reload-task ls
licenseコマンド, userコマンド
1. ライセンス(Professional/Analyzer)の割り当て状況を取得
 ./qlik license assignment ls
2. ライセンス(Analyzer Capacity)の消費情報を取得
 ./qlik license consumption
3. ライセンス情報を取得
 ./qlik license status
 ./qlik license overview
4. ユーザーにライセンスを割り当て(type: professional または analyzer)
 ./qlik license assignment add --add ‘[{“name”:“Firstname Lastname”,“subject”:
“onelogin169795864”,“type”:“analyzer”,“userId”:“6267846d58877b60d57223fb”}]’
5. ユーザー情報のリストを取得
 ./qlik user ls
6. ユーザーを独自に追加(IdPサブジェクトとEMailアドレスは重複できない)
 ./qlik user create --tenantId szqr07frFLVd2RFTr17LRHbruizGnaoE --subject onelogin/9999 --name
“Firstname Lastname” --email user001@abc.co.jp --status active
 実際にユーザーが認証してログインすると、IdPから受け取る情報(emailアドレス)に基づいて、IdPサブ
ジェクトや名前が更新される
21
PowerShellを使った
プログラミング例
qlikコマンドを使って管理作業を効率化
 qlikコマンドの標準出力はJSON形式の文字列なので、Windows/Linux/macOSで利
用可能な「PowerShell」と、その「ConvertFrom-Json」コマンドレットなどを利用するのが
オススメ(もちろんプログラミング言語は何でも良いですが…)
 https://github.com/PowerShell/PowerShell
 管理作業の例: 事前にユーザーを登録し、ライセンスの割り当てと、そのユーザー用に共有ス
ペースを作成してメンバーに追加
1. テナント管理者でqlikコマンドを利用する
2. 仮のIdPサブジェクトと名前、正式なEmailアドレスでユーザーを追加
3. そのユーザーにProfessionalライセンスを割り当てる
4. 共有スペース(名前は一意)を作成
5. その共有スペースのメンバーにユーザー(役割: consumer,producer)を追加
6. そのユーザーが実際に認証してログイン
7. 共有スペースが利用できることを確認
PowerShellを使ったプログラミング例
 テナントIDは、Management Consoleなどで確認しておく
 ファイル“qlikadduser.ps1”を記述して実行し、テナント管理者はMCで結果を確認
 対象のユーザーでログインして確認後、テナント管理者はMCでユーザー情報の更新も確認
PowerShellで「raw」コマンドを利用する
 qlikコマンドには、Qlik Sense SaaSのREST APIのエンドポイントURLを指定しつつ、自前のHTTPリクエストのコンテン
ツ(JSON文字列)を渡すことも可能な「raw」コマンドが用意されている
 qlikコマンドに用意されていないAPI呼び出しを可能にしてくれたりします
 例: 共有スペースの作成をrawコマンドで行う
 https://qlik.dev/apis/rest/spaces/#%23%2Fentries%2Fspaces-post
PowerShellで「audit」コマンドを利用する
 Qlik Sense SaaS版のテナントの最近の監査ログデータ(アーカイブされていないもの)を全件取得する
Qlik
Thank you

Qlik Sense SaaS向けコマンドラインツールのご紹介 - Windows/Linux/macOS対応"qlik"コマンド

Editor's Notes