QVD ファイルでの作業

QVD (QlikView Data) ファイルは、Qlik Sense からエクスポートされたデータのテーブルを含むファイルです。QVD はネイティブの Qlik 形式で、Qlik Sense または QlikView でしか書き込みと読み出しを行えません。ファイル形式は、スクリプトからデータを迅速に読み取れるように最適化されており、サイズもコンパクトです。QVD ファイルからのデータの読み取りは、他のデータ ソースから読み取る場合よりも、一般に 10~100 倍速くなっています。

QVD ファイルは、標準 (高速) と最適化 (超高速) の 2 つのモードで読み取ることができます。使用されるモードは、スクリプト エンジンによって自動的に決定されます。

最適化されたロードに関して、いくつかの制限があります。項目の名前は変更できますが、ここで言及されている操作のいずれかによって、最適化されているロードが無効になり、標準のロードとなります。

  • ロードされた項目に対する変換。
  • where 節を使用すると、Qlik Sense でレコードが解凍されます。
  • ロードされた項目でのマップの使用。

QVD ファイルの使用目的

QVD ファイルは多数の目的に使用することができ、どのような状況でも複数の目的を適用できます。少なくとも主に 4 つの目的で使用されます。

  • ロード速度の向上
  • QVD ファイルの入力データの変更されない部分または変化が遅い部分をバッファリングすることで、大きなデータ セットに対するスクリプトの実行が大幅に高速化します。

  • データベース サーバーの負荷の減少
  • 外部データ ソースから取得するデータ量を大幅に削減できます。これにより、外部データベースおよびネットワーク トラフィックの負荷が減少します。さらに複数のスクリプトが同じデータを共有する場合は、ソース データベースからQVDファイルに一度データをロードするだけで済みます。他のアプリケーションでも、この QVD ファイルを利用することで同じデータを活用できます。

  • 複数アプリケーションからのデータ統合
  • binaryスクリプト ステートメントでは、単一のアプリケーションからのみ別のアプリケーションにデータをロードできます。しかし、QVDファイルを使用すれば、スクリプトは任意の数のアプリケーションからデータを統合できます。これにより、さまざまな部署の類似データを統合するなど、アプリケーションの可能性が広がります。

  • 増分
  • 多くの場合、QVD の機能を活用することで、増大するデータベースから新しいレコードだけをロードする増分ロードを簡単に実行できます。

    詳細については、「増分ロードにより新規および更新された記録をロード」を参照してください。

QVD ファイルの作成

QVD ファイルは 2 つの方法で作成できます。

  • スクリプトで store コマンドを使用した明示的な作成と命名。スクリプトで、以前に読み取ったテーブルまたはその一部を、選択した場所にある明示的に指定されたファイルにエクスポートするように記述します。

    詳細については、「Store」を参照してください。

  • スクリプトからの自動作成とメンテナンス。LOAD または SELECT ステートメントの前に buffer プレフィックスを付けると、Qlik Sense は自動的に QVD ファイルを作成します。この QVD ファイルは一定の条件下で、データのリロード時に元のデータ ソースの代わりに使用できます。

    詳細については、「Buffer」を参照してください。

読み込み時間など、生成された QVD ファイルに違いはありません。

QVD ファイルからのデータのロード

次の方法で、QVDファイルの読み込みやアクセスを実行します。

  • 明示的なデータ ソースとしての QVD ファイルのロード。QVD ファイルは、その他のタイプのテキスト ファイル (csvfixdifbiff など) と同様に、スクリプトの LOAD ステートメントで参照できます。

    (Windows):

    • LOAD * from xyz.qvd (qvd)
    • LOAD Name, RegNo from xyz.qvd (qvd)
    • LOAD Name as a, RegNo as b from xyz.qvd (qvd)

    例 (Kubernetes):

    • LOAD * from [lib://MyDataFiles/xyz.qvd];
    • LOAD Name, RegNo from [lib://MyDataFiles/xyz.qvd];
    • LOAD Name as a, RegNo as b from [lib://MyDataFiles/xyz.qvd];
  • バッファ済みの QVD ファイルの自動ロード。LOAD または SELECT ステートメントで buffer プレフィックスを使用する場合、読み取り用の明示的なステートメントは必要ありません。Qlik Sense は元の LOAD ステートメントまたは SELECT ステートメントを使用してデータを取得するのではなく、QVD ファイルからどの範囲のデータを使用するかを決定します。
  • スクリプトからの QVD ファイルへのアクセス。(qvd で始まる) いくつかのスクリプト関数を使用して、QVD ファイルの XML ヘッダーにあるデータのさまざまな情報を取得できます。

QVD 形式

QVD ファイルは、厳密に 1 つのデータ テーブルを保持し、次の 3 つの部分で構成されます。

  • ヘッダー

    注: QVD ファイルが  QlikView で作成された場合、ヘッダーはテーブル内の項目や、後続情報およびその他のメタデータのレイアウトを適格に記述する XML ヘッダー (UTF-8 文字セット) です。
  • バイト埋め込み形式のシンボル テーブル。
  • ビット埋め込み形式の実際のテーブル データ。