Qlik Training Blog

運用・管理

Qlik Cloud 日本リージョンへの移行方法(qlik-cli利用時の注意点)

公開日:
更新日:
運用・管理
#Qlik Cloud
#Qlik Sense
#運用者

先日、本ブログにて、日本リージョンへテナントを移行する方法の全体像をご紹介しました。

Qlik Cloud 日本リージョンへの移行方法

移行を効率化するための手法として、後述の 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の導入]
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 日間となります。この期間内で移行が完了するように計画して、実施してください。