# 使用 QVD 檔案

QVD (QlikView Data) 檔案是包含從 Qlik Sense 應用程式或從指令碼所匯出之資料表格的檔案。QVD 是原生 Qlik 格式，而且只可寫入 Qlik Sense 或 QlikView 並由其讀取。從指令碼讀取資料時，檔案格式的速度已經過最佳化處理，但是仍然十分精簡。從 QVD 檔案讀取資料通常比從其他資料來源讀取資料快 10-100 倍。

可用兩種模式讀取 QVD 檔案：標準 (快速) 與最佳化 (更快速)。指令碼引擎會自動決定選取的模式。

關於最佳化載入有一些限制。可以重新命名欄位，但此處提及的任何操作將會停用最佳化載入，並造成標準載入。

* 載入欄位上的任何轉換。
* 使用造成 Qlik Sense 解壓縮記錄的 where 子句。
* 在載入的欄位上使用對應。

## QVD 檔案的目的

QVD 檔案可用於許多目的，在任何指定情況下，皆適用多種用途。至少有四個主要的用途：

* 減少資料庫伺服器上的負載

  另外也會大幅減少從外部資料來源擷取的資料量。這可減少外部資料庫上的工作負載與網路流量。此外，當數個指令碼共用相同的資料時，只需要將資料從來源資料庫載入 QVD 檔案一次即可。其他應用程式或指令碼可透過此 QVD 檔案利用相同的資料。

* 合併來自多個應用程式的資料

  可使用 binary 指令碼陳述式，將來自單一 應用程式 的資料載入另一個應用程式或指令碼，但若使用 QVD 檔案，載入指令碼可合併來自任何數目的應用程式或其他資料來源的資料。例如，這可以使應用程式和指令碼從不同的業務單位合併相似的資料。

* 累加

  在許多常見案例中，可使用 QVD 功能來累加載入，亦即僅從增長中的資料庫載入新記錄。

  如需詳細資訊，請參閱[使用累加載入載入新的和更新的記錄](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/use-QVD-files-incremental-load.htm)。

  資訊備註

  若要查看 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 檔案

可以在載入指令碼中使用 Store 命令建立並命名 QVD 檔案。在指令碼中陳述要將先前讀取的表格或部分匯出到您所選位置中明確命名的檔案。

如需詳細資訊，請參閱[Store](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Store.htm)。

## 從 QVD 檔案讀取資料

可使用下列方法讀取或存取 QVD 檔案：

* 將 QVD 檔案載入為明確的資料來源。QVD 檔案可由指令碼中的 LOAD 陳述式參考，如任何其他文字檔案類型一樣 (csv、fix、dif、biff 等)。

  例如︰

  * `LOAD  * from [lib://DataFiles/xyz.qvd];``LOAD Name, RegNo from [lib://DataFiles/xyz.qvd];``LOAD Name as a, RegNo as b from [lib://DataFiles/xyz.qvd];`

* 透過指令碼存取 QVD 檔案。可使用數個指令碼函數 (皆以 qvd 開頭) 來擷取 QVD 檔案 XML 標頭上所找到資料的各種資訊。

## QVD 格式

QVD 檔案剛好只有一個資料表格，且包含三個部分：

* 標頭。

  資訊備註如果 QVD 檔案是使用 QlikView 產生的，則標頭為格式良好的 XML 標頭 (為 UTF-8 字元集)，其中描述了表格中欄位、後續資訊的版面配置以及部分其他中繼資料。

* 位元組填充格式的符號表格。

* 些許填充格式的實際資料表。