私は前職でQlikViewを使っていて、現在の職場ではQlikSenseを使っています。
QlikViewとQlikSenseではQVD作成の仕様が一部異なっており、変更点を確認し解決するまでに少しかかりました。
そこで、QlikSenseのQVDファイルを作ろうと思っている方、QlikViewからの乗り換えで異なる点を知りたい方のためにので、備忘録として記録しておきます。
出力するQVDファイルの指定方法
QlikViewのファイル指定方法
出力先のファイルは、ファイルシステムのパスを指定します。
絶対パスと相対パスが使えます。
- STORE テーブルA into ‘C:\テーブルA.qvd’;(絶対パス)
- STORE テーブルA into テーブルA.qvd;(相対パス)
※特殊文字がなければシングルクォートはあってもなくてもOKです。
Qlik Senseのファイル指定方法
QlikSenseでは、【lib://】ではじまる独自の方式(フォルダデータ接続)で指定します。
- STORE テーブルA into lib://qvddir/テーブルA.qvd;
- STORE テーブルA into ‘lib://qvddir/テーブルA.qvd’;
qvddirの部分には、あらかじめ接続が許可されたフォルダを指定します。
初めて利用される場合は、まずは接続を許可するフォルダを定義する必要があります。
接続を許可するフォルダの指定方法
接続の新規作成から「フォルダ」を選択し、ファイルシステム上に存在するフォルダを指定します。
接続名を付けて保存(作成)すると、以降はこのデータ接続を利用してデータのSTOREができます。
接続に失敗するパターン
QlikSense利用時、QlikViewの指定方法でSTORE
当初、QlikSenseにてQlikViewと仕様が同じつもりで相対パスを指定してSTOREしたところ、
「No qualified path for file: ***」とエラーが表示されました。
このエラーで、「QlikViewとQlikSenseでは記述方法が違うのか?」と気づきました。
QlikSenseで接続フォルダを指定しているのにエラー
手順通りに接続フォルダを作成し、以下のようにSTOREしました。
STORE テーブルA into lib://qvddir/テーブルA.qvd;
結果は「Connection not found」
これにはしばらく原因がわからず悩みましたが、【qvddir】の指定方法が悪かったようです。
【qvddir】という名前でデータ接続を作成したので、この名称を指定すればよいと思ったのですが、実際に接続情報を見ると【qvddir(ユーザー名)】となっていました。
そこで、(ユーザー名)を追加して以下のように記述したところ正常にSTOREできました。
STORE テーブルA into ‘lib://qvddir(ユーザー名)/テーブルA.qvd’;
Qlik Sense側で接続名が一意の名前になるように、「接続名にはユーザー名とドメインが自動的に付加される。」という仕様ですので注意が必要です。