QVDファイルとは
QVDファイルとは、QlikViewDataファイルの略称です。
QlikViewやQlikSenseから出力されるQlik製品独自の形式のデータファイルです。
このファイルはQlik製品用に最適化された形式であるため、ロードが非常に高速でかつファイルサイズも小さいという特徴があります。
QVDファイルの利用目的
前述しましたようにQVDファイルのロードは非常に高速です。
このため、毎回RDMBSからデータをロードするよりQVDファイルからロードする方が高速でロード時間を短縮することができます。
1つのアプリケーショからのロードだけならまだしも、いくつかのアプリケーションから同じデータをロードする場合はQVDファイルからロードする方が効率的です。
月次処理で前月のデータを締め、前月分のQVDファイルを作成する。
アプリケーションでは過去月分のQVDファイルをロードし、今月分はRDMBSからロードする(差分更新)
※過去月のデータは更新されないことが前提です。
毎日、当日までのQVDファイルを作成する。
複数アプリケーションでQVDファイルを作成した時点のデータをQVDファイルからロードする
※QVDファイルを作成した後に追加・更新したデータは反映されませんが、リアルタイムな情報が必要でないケースで、かつ複数のアプリケーションがある場合はこのパターンが効率的です。
QVDファイル作成で注意すべき点
作成するのは更新の可能性がないデータのみ
高速に処理するために確定データを別ファイルに保存しておくという仕組み上、データが更新されないことが前提です。
QVDファイル作成後、データの変更があれば再度QVDデータを作成し直す必要があります。
差分更新の注意点
差分更新(過去データはQVDファイルから取得+最新データはRDBMSから取得)を行う場合、2つの取得データは全く同じ形式である必要があります。
このため、もしRDBMSから取得するロードスクリプトを一部変更した場合は、QVDファイルも作り直す必要があるので注意してください。
LOAD ・・・
FROM ・・・
QVDファイル名.qvd; ←QVDファイルからの確定データロード
LOAD ・・・
FROM ・・・
RDMBSデータテーブル名
WHERE 日付>条件; ←データベースからの最新データロード
テーブル構成が同じなので、2つのLOADデータは結合され1つのテーブルとなります。
AutoNumberHash()関数は使わない
QVDファイル作成のロードスクリプト内で以下のAutoNumberHash()関数を使うのはNGです。
- AutoNumberHash128()
- AutoNumberHash256()
AutoNumberHash()関数はロードスクリプト内で複合キーをユニークな単一キーとして自動生成する関数です。
QVDファイル作成と差分更新のロードスクリプトは別物ですので、それぞれで生成されたAutoNumberHashキーは整合が取れません。
QVD作成時は各値をロードし、差分更新で結合する際にAutoNumberHash()関数を使うようにしましょう!
Qlik製品では複合キーが合った場合は内部的にSyntheticキーが生成され処理速度の低下を招きます。
このため、複合キーはあらかじめAutoNumberHash()関数で単一キーとしてロードする方法が推奨されています。