# QVD ファイル

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

QVD ファイルは、標準 (高速) と最適化 (超高速) の 2 つのモードで読み取ることができます。使用されるモードは、Qlik Sense スクリプト エンジンによって自動的に決定されます。最適化モードは、ロードされたすべての項目が変換 (項目に対して実行される式) なしに読み取られる場合にのみ使用できます。ただし、項目名は変更することができます。Where 節は、Qlik Sense にレコードを解凍させ、最適化されたロードを無効にします。

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

* テーブル内の項目や、後続情報およびその他のメタデータのレイアウトを記述する XML ヘッダー (UTF-8 文字セット)。
* バイト埋め込み形式のシンボル テーブル。
* ビット埋め込み形式の実際のテーブル データ。

QVD ファイルの用途はさまざまですが、主に 3 つの目的で使用されます。複数の目的を一度に達成できる場合もあります。

* データベース サーバーの負荷の減少

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

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

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

情報メモ

Qlik コミュニティが Qlik Automate を使用して QVD のロード時間を改善する方法については、「[自動化を使用して QVD を分割し、リロードを改善する方法](https://community.qlik.com/t5/Official-Support-Articles/How-to-split-QVDs-using-an-automation-to-improve-reloads/ta-p/1997153)」を参照してください。

## QVD ファイルの作成

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

### Store

このスクリプト ステートメントは、明示的に命名された QVD、Parquet、CSV、または TXT ファイルを作成します。

構文:

```
Store[ *fieldlist from] table into filename [ format-spec ];
```

項目のエクスポートは 1 つのデータ テーブルからのみ行えます。複数のテーブルの項目がエクスポートされる場合、エクスポートされるデータ テーブルを作成するためには、事前にスクリプトで明示的に結合されている必要があります。

テキストの値は UTF-8 形式で CSV ファイルに出力されます。区切り文字を指定できます (LOAD を参照)。CSV ファイルへの store ステートメントは、BIFF エクスポートをサポートしていません。

例:

```
Store mytable into [lib://DataFiles/xyz.qvd]; 
Store * from mytable into [lib://DataFiles/xyz.qvd]; 
Store myfield from mytable into [lib://DataFiles/xyz.qvd]; 
Store myfield as renamedfield, myfield2 as renamedfield2 from mytable into [lib://DataFiles/xyz.qvd]; 
Store mytable into [lib://DataFiles/myfile1.txt]; 
Store mytable into [lib://DataFiles/myfile2.csv]; 
```

次の手順を実行します。

1. Advanced Scripting Tutorial (高度なスクリプト チュートリアル) のアプリケーションを開きます。
2. Product スクリプト セクションをクリックします。
3. 次の内容をスクリプトの最後に追加します。
   ```
   Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);
   ```

   これで、スクリプトは次のようになります。
   ```
   CrossTable(Month, Sales)
   LOAD
       Product,
       "Jan 2014",
       "Feb 2014",
       "Mar 2014",
       "Apr 2014",
       "May 2014"
   FROM [lib://DataFiles/Product.xlsx] 
   (ooxml, embedded labels, table is Product);

   Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);
   ```
4. [データのロード] をクリックします。

   これで Product.qvd ファイルがファイル リストに表示されるようになります。

   Crosstableスクリプトの結果であるこのデータ ファイルは、各カテゴリ (Product, Month, Sales) ごとに 1 つの列を持つ 3 列構成のテーブルです。このデータ ファイルは、Product スクリプト セクション全体を置換するために使用できます。

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

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

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

  例:

  LOAD \* from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1, fieldname2 from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1 as newfieldname1, fieldname2 as newfieldname2 from [lib://DataFiles/xyz.qvd](qvd);

* スクリプトからの QVD ファイルへのアクセス。(QVD で始まる) いくつかのスクリプト関数を使用して、QVD ファイルの XML ヘッダーにあるデータのさまざまな情報を取得できます。

次の手順を実行します。

1. Product スクリプト セクションのスクリプト全体をコメント アウトします。
2. 次のスクリプトを入力します。
   ```
   Load * from [lib://DataFiles/ProductData.qvd](qvd);			
   ```
3. [データのロード] をクリックします。

   データは QVD ファイルからロードされます。

   データ ロード進捗状況ウィンドウ

   データ ロード進捗状況ウィンドウ

   データ ロード進捗状況ウィンドウ![データ ロード進捗状況ウィンドウ。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-load-qvd.png)

情報メモ増分ロードでの QVD ファイルの使用について詳しくは、Qlik Community のブログ記事「[Overview of Qlik Incremental Loading](https://community.qlik.com/t5/Qlik-Design-Blog/Overview-of-Qlik-Incremental-Loading/ba-p/1466780)」(Qlik 増分ロードの概要) を参照してください。

## お疲れ様でした

以上でチュートリアルは終了です。ここでご紹介した基本情報を Qlik Sense でのスクリプト作成にお役立てください。ウェブサイトでは、ご利用可能なトレーニングについての情報を公開しています。ぜひご覧ください。