![](/qlik-training_blog/article/__icsFiles/afieldfile/2025/01/21/PrecedingLoad_Thumnail.jpg)
- Qlik Cloud
- Qlik Sense
- QlikView
- 開発者
- データロード
先行ロードを使用してスクリプトを短くまとめよう!
先行ロードの機能を使用すると、すぐ下に記載されたLOAD文の結果をデータソースとして、上のLOAD文で使用することができます。
先日、本ブログにて、日本リージョンへテナントを移行する方法の全体像をご紹介しました。
https://www.ashisuto.co.jp/qlik-training_blog/article/JapanRegion.html
移行を効率化するための手法として、後述の QlikTech Japan 社の投稿動画と資料では
qlik-cli が紹介されておりましたが、コマンドによる操作も相まって、難しく感じられる
部分もあるかと思います。
本記事では qlik-cli の利用を検討されているお客様に向けてつまづきやすいポイントを補足説明します。
基本的な手順については QlikTech Japan 社にて投稿された 動画や資料をご覧ください。
Qlik TECH TALK セミナー:Qlik Cloud 日本リージョン開設!テナント作成と移行方法を解説
slideshare(PowerPoint/PDFファイル)
動画
また、上記記事内では、設定やコンテンツ移行にQlik Cloud(Qlik Sense Enterprise SaaS) のAPI仕様に基づいて開発されたモジュール:qlik-cliの導入や利用手順を紹介した別投稿の動画や資料も紹介されています。
Qlik TECH TALK セミナー:Qlik Sense SaaS向けコマンドラインツールのご紹介 - Windows/Linux/macOS対応"qlik"コマンド
slideshare(PowerPoint/PDFファイル)
動画
前述のqlik-cliの導入と利用手順にて、つまづきやすいポイントを補足説明します。
[qlik-cliの導入]
qlik-cliのモジュールは、
GitHubページ
に記載されており、コマンド(brewやchoco)からインストールするか、
GitHubのモジュールダウンロードページ
から、ご利用PCのOSに合わせてダウンロードします。
Windows OS のPCを利用する場合は、qlik-Windows-x86_64.zip をダウンロードします。
|
qlik-Windows-x86_64.zip を展開すると、qlik.exe ファイルのみが含まれています。
|
[qlik-cliの設定]
qlik-cliから対象のテナントに接続し、操作するためには、context(接続情報)を作成する必要があります。contextの作成は、qlik-cli の以下コマンドを利用します。
qlik context create 接続名 --server https://Qlik SenseのURL --api-key APIキー
以下は、旧環境シンガポールリージョン と 新環境_日本リージョン という接続名で、context を新規作成し、qlik context ls コマンドで利用可能なcontext を一覧表示します。
|
複数のcontextを登録した場合、いずれかのテナントに接続してqlik-cli を利用するのか、を設定する必要があります。利用するcontextの設定は、qlik-cliの以下コマンドを利用します。
qlik context use 接続名
以下は、qlik context use コマンドで利用する接続先を切り替えて、qlik context ls コマンドで context の設定状況を表示します。現在接続しているcontext は、current列に「*」が表示されます。
|
作成したcontext が不要になったり、作り直したい場合は、context を削除するために、qlik-cliの以下コマンドを利用します。
qlik context rm 接続名
以下は、qlik context rm コマンドで、接続名:旧環境_シンガポールリージョンを削除し、qlik context ls コマンドで context の設定状況を表示します。
|
[qlik-cliの利用]
qlik-cliからスペースやアプリ、ユーザーなどの情報を取得するためのコマンドは、前述の QlikTech Japan 社にて投稿された 動画や資料に記載がありますので、ご参照ください。
Windows Powershell で、qlik-cliのコマンドを実行する方法は、以下2通りがあります。
1)プロンプト(Windows Powershellの画面)上で直接指定して実行します
2)スクリプトファイル(拡張子 .ps1)にコマンドを指定して実行します
2)の方法で、ユーザー情報(qlik user lsコマンド)やアプリ情報(qlik app lsコマンド)を取得し、ファイルに出力するサンプルスクリプトをご紹介します。
・ユーザー情報出力サンプルスクリプト
ユーザー情報には、qlik user ls コマンドを利用します。
スクリプトファイル(.ps1ファイル)は、エンコード:Shift_JISです。
|
$TempMyOutputEncode=[System.Console]::OutputEncoding
[System.Console]::OutputEncoding=[System.Text.Encoding]::UTF8
$env:HTTP_PROXY = "http://160.225.115.28:80"
$env:HTTPS_PROXY = "http://160.225.115.28:80"
$QlikContext = "旧環境_シンガポールリージョン"
$QlikCLICommand1 = ".\qlik context use $($QlikContext)"
$QlikCLICommand2 = ".\qlik user ls --limit 10000"
$QlikCLIOutputFile = "C:\work\users.txt"
Invoke-Expression $QlikCLICommand1
foreach ($record in (Invoke-Expression $QlikCLICommand2 | ConvertFrom-Json))
{
$output = "$($record.id) | $($record.name) | $($record.email) |
$($record.status)"
echo $output | Out-File -Append -FilePath $QlikCLIOutputFile -Encoding Default
}
[System.Console]::OutputEncoding=$TempMyOutputEncode
各コマンドの実行内容は、以下の通りです。
行番号 | 説明 | 変更要否 |
1 | コンソールのエンコード種類を変数に格納します | - |
2 | コンソールのエンコードをUTF-8に変更します | - |
4~5 | プロキシサーバを利用する場合、URLとポート番号を指定します | プロキシサーバを利用しない場合は、4~5行目は削除してください |
7 | 接続するcontextを指定します | qlik-cliで作成したcontextを指定してください |
8 | contextへの接続コマンドを指定します | - |
9 | ユーザー情報を取得するコマンドを指定します | 変更は不要ですが、オプションの追加を行う場合などは、必要に応じてご変更ください |
10 | ユーザー情報を出力するファイルパスを指定します | 書き込みが可能なフォルダーへのファイルパスを指定してください |
12 | contextに接続します | - |
13~17 | ユーザー情報を取得します。ユーザー情報の要素から、id、name、email、status の4種類を取得します。 | 変更は不要ですが、取得した要素を追加したり、削除したり、必要に応じてご変更ください |
19 | コンソールのエンコードを初期状態に戻します | - |
・アプリ情報出力サンプルスクリプト
アプリ情報には、qlik app ls コマンドを利用します。
スクリプトファイル(.ps1ファイル)は、エンコード:Shift_JISです。
|
$TempMyOutputEncode=[System.Console]::OutputEncoding
[System.Console]::OutputEncoding=[System.Text.Encoding]::UTF8
$env:HTTP_PROXY = "http://160.225.115.28:80"
$env:HTTPS_PROXY = "http://160.225.115.28:80"
$QlikContext = "旧環境_シンガポールリージョン"
$QlikCLICommand1 = ".\qlik context use $($QlikContext)"
$QlikCLICommand2 = ".\qlik app ls --limit 10000"
$QlikCLIOutputFile = "C:\work\apps.txt"
Invoke-Expression $QlikCLICommand1
$output = Invoke-Expression $QlikCLICommand2
echo $output | Out-File -Append -FilePath $QlikCLIOutputFile -Encoding Default
[System.Console]::OutputEncoding=$TempMyOutputEncode
各コマンドの実行内容は、以下の通りです。
行番号 | 説明 | 変更要否 |
1 | コンソールのエンコード種類を変数に格納します | - |
2 | コンソールのエンコードをUTF-8に変更します | - |
4~5 | プロキシサーバを利用する場合、URLとポート番号を指定します | プロキシサーバを利用しない場合は、4~5行目は削除してください |
7 | 接続するcontextを指定します | qlik-cliで作成したcontextを指定してください |
8 | contextへの接続コマンドを指定します | - |
9 | アプリ情報を取得するコマンドを指定します | 変更は不要ですが、オプションの追加を行う場合などは、 必要に応じてご変更ください |
10 | アプリ情報を出力するファイルパスを指定します | 書き込みが可能なフォルダーへのファイルパスを指定してください |
12 | contextに接続します | - |
13 | アプリ情報を取得して変数に結果を格納します | - |
14 | 変数に格納したアプリ情報をファイルに出力します | - |
16 | コンソールのエンコードを初期状態に戻します | - |
ユーザーとアプリ情報取得に共通する設定として、コンソールのエンコード変更を行います。これは、取得した情報(今回の場合、ユーザーやアプリの名称など)に日本語が含まれている場合、ファイルに出力した内容が文字化けを起こすことを回避するためです。
本ブログでは、日本リージョンのテナントに移行する際のコンテンツ移行とqlik-cliモジュール利用時の注意点をお伝えしました。
特にご注意いただきたいのは、日本リージョンへテナントを移行する際の期間(並行稼働期間)は基本的に 30 日間となります。この期間内で移行が完了するように計画して、実施してください。
先行ロードの機能を使用すると、すぐ下に記載されたLOAD文の結果をデータソースとして、上のLOAD文で使用することができます。
テーブルに表示する列や行を、ユーザーが選択できるようにする方法をご紹介します!
Qlik Senseでは運用状況を効率的に把握するための 便利なモニタリングアプリが用意されています。 モニタリングアプリの使い方をご紹介いたします。