- Qlik Cloud
- Qlik Sense
- 運用者
Qlik Cloud 日本リージョンへの移行方法(qlik-cli利用時の注意点)
先日、本ブログにて、日本リージョンへテナントを移行する方法の全体像をご紹介しました。今回は、コマンドラインのqlik-cliを用いたテナント移行時の注意点と、コマンドやスクリプトの記述例をご紹介します。
|
Qlik Senseで日付の書式を、日付(YYYY/MM/DD)から年月(YYYY/MM)に変更したら、同じ年月(YYYY/MM)が複数表示されてしまった…なんてことはありませんか?
日付データの書式を変えて使用するときは、注意が必要です。
表示例はこちら。
▼フィルターパネル
|
▼棒チャート
|
単位違いで、日時(YYYY/MM/DD hh:mm:ss)から日付(YYYY/MM/DD)に変更したら、同じ日付が複数表示されてしまった…なんてパターンも。
▼フィルターパネル
|
▼棒チャート
|
このようなケースの原因・対処方法をご紹介します。
※本記事は「2022年06月時点のSaaS」で作成しています。
Qlik製品は、表示上の値とは別に、内部的な値も持っています。
表示上は同じ年月(もしくは日付)が複数あるように見えますが、実際は、以下画像の状態です。
▼日付(YYYY/MM/DD)から年月(YYYY/MM)を取得しようとしたパターン(画像1)
|
▼日時(YYYY/MM/DD hh:mm:ss)から日付(YYYY/MM/DD)を取得しようとしたパターン(画像2)
|
表示上の値は同じでも、内部的な値が異なる日付データになっているので、その分の年月(もしくは日付)が表示されている状態です。
では、表示上の値と内部的な値を揃えるためには、どうすれば良いでしょうか。
日付データの書式を変えて使用する場合は、以下の2つが必要です。
================
・表示上の書式の変更
・データ型の変換
================
上記の画像1・画像2の『表示上の値』は、以下スクリプトで取得しました。
▼日付(YYYY/MM/DD)から年月(YYYY/MM)を取得しようとしたスクリプト
-----------------------------------
Date(日付,'YYYY/MM') as 年月
-----------------------------------
▼日時(YYYY/MM/DD hh:mm:ss)から日付(YYYY/MM/DD)を取得しようとしたスクリプト
----------------------------------------
Date(日時,'YYYY/MM/DD') as 日付
----------------------------------------
Date関数は「Date#とDateの違い」でもご紹介したように、書式設定関数です。
データ型の変換は行いません。
表示上の値と内部的な値が揃っていない原因は、【表示上の書式の変更】だけが行われており、【データ型の変換】が不足しているためです。
上記のとおり【データ型の変換】が不足しているので、加えましょう。
データ型の変換を行うDate#関数を加えると、同じ日付は1つだけ表示されるようになります。
変更例と結果は以下のとおりです。
▼日付(YYYY/MM/DD)から年月(YYYY/MM)を取得するスクリプト
-------------------------------------------
Date#(Date(日付,'YYYY/MM')) as 年月
-------------------------------------------
▽変更後のフィルターパネル
|
▽変更後の棒チャート
|
▼日時(YYYY/MM/DD hh:mm:ss)から日付(YYYY/MM/DD)を取得するスクリプト
-------------------------------------------------
Date#(Date(日時,'YYYY/MM/DD')) as 日付
-------------------------------------------------
▽変更後のフィルターパネル
|
▽変更後の棒チャート
|
前述の画像1・画像2では、内部的な値について『(YYYY/MM/DD 形式)』といった注釈を加えました。
理由は、Qlik製品で日付データは、内部的にはシリアル値という数値で扱われているためです。YYYY/MM/DDといった書式では扱われておりません。
以下のように日付データにNum関数を使用すると、シリアル値が確認できます。
-----------------------------------
Num(日付) as 日付シリアル値
-----------------------------------
-----------------------------------
Num(日時) as 日時シリアル値
-----------------------------------
これまで例に挙げた日付データで、Qlik製品のシリアル値を見てみましょう。
|
|
Qlik製品でシリアル値は、1899年12月30日からの経過日数として定義されています。
1899年12月30日は「0」、1899年12月31日は「1」です。
日付単位のデータは整数で、時刻単位のデータは小数で扱われます。
そのため、以下記事の『一つの項目を複数の項目に分割して、一意の件数を減らす。』で紹介した例文でも、日時から日付を取得できます。
・QlikViewの高速性を支えるアーキテクチャ(シンボルテーブルとビットスタッフト・ポインター)
上記例は、Floor関数で小数点以下の数値を切り捨て、Date関数(書式設定関数)で書式を変更しています。
こちらは、小数点以下の数値を切り捨てによる【データ型の変換】→【表示上の書式の変更】の順に行っています。
フィルターパネルは、ユニークな(一意の)値を表示します。
同じ値が何件ロードされていても、同じ値であればフィルターパネルで表示されるのは1件のみです。
そのため、フィルターパネルに対象の項目もしくは数式を設定すると、以下のとおり簡単に判別できます。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
フィルターパネルに同じ日付が複数表示される
=【表示上の書式の変更】のみ行われており、【データ型の変換】が足りない
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
日付データをユニークな(一意の)値として扱うことの重要性を、以下の記事で紹介しています。あわせてご確認ください。
・QlikViewの高速性を支えるアーキテクチャ(シンボルテーブルとビットスタッフト・ポインター)
先日、本ブログにて、日本リージョンへテナントを移行する方法の全体像をご紹介しました。今回は、コマンドラインのqlik-cliを用いたテナント移行時の注意点と、コマンドやスクリプトの記述例をご紹介します。
Qlik Sense SaaSを使用していて、メジャーの結果と事前に設定した閾値を比較して、閾値を超えたら通知を飛ばせたら良いな、と考えたことはありませんか?本記事では、Qlik Sense SaaSの「Qlik Application Automation」でMicrosoft Teamsにメッセージを配信する方法を紹介します。
2024 年 3 月 26 日に QlikTech 社より Qlik Cloud の日本リージョン開設の ニュースリリースが発表されました。本ブログではすでに Qlik Cloud(Qlik Sense Enterprise SaaS) をご利用中のユーザー様に向けて、日本リージョンへテナントを移行する方法をご紹介します。