QVD 檔案

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

可用兩種模式讀取 QVD 檔案:標準 (快) 與最佳化 (更快)。QlikView 指令碼引擎會自動決定選取的模式。雖然允許重新命名欄位,但只有在單純讀取所有載入的欄位,而不轉換 (在欄位上作用的公式) 的情況下,才能使用最佳化模式。造成 QlikView 解壓縮記錄的 WHERE 子句也會停用最佳化載入。欄位進行轉換時,最佳化 .qvd 格式檔案會按照標準的擷取 - 轉換 - 載入程序擷取並處理,而效能將會下降。指定格式將不會保留,而改用並識別基礎原始數字格式。.qvd 中可以進行欄位轉換,先前「最佳化」的 .qvd 會變成標準非最佳化 .qvd。

QVD 檔案剛好只有一個資料表,且包含三個部分:

  1. 描述表格中欄位良好格式的 XML 標頭 (為 UTF-8 字元集)、後續資訊的版面配置以及部分其他中繼資料。
  2. 位元組填充格式的符號表。
  3. 些許填充格式的實際資料表。

QVD 檔案的用途

QVD 檔案可用於多種用途。至少有四個主要的用途。超過一種以上的用途適用於任何指定情況:

增加載入速度

藉由緩衝 QVD 檔案中輸入資料的不變或緩慢變更的區塊,指令碼在大型資料集的執行可變得相當快速。

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

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

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

可使用 binary 指令碼陳述式將只來自單一 QlikView 應用程式的資料載入另一個 QlikView 應用程式,但若使用 QVD 檔案,QlikView 指令碼可合併來自任何數目的 QlikView 應用程式的資料。這樣應用程式就可以從不同的業務單位合併相似的資料。

累加載入

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

使用 QVD 檔案進行累加載入

建立 QVD 檔案

可使用三種不同方式之一來建立 QVD 檔案:

  1. 使用 QlikView 指令碼中的 store 命令可明確建立與命名。只要在指令碼中陳述要將先前讀取的表格或部分匯出到您所選位置中明確命名的檔案即可。
  2. 從指令碼自動建立與維護。在 loadselect 陳述式前面加上 buffer 前置詞,QlikView 會自動建立 QVD 檔案,在某些狀況中可在重新載入資料時使用此 QVD 檔案而不使用原始資料來源。
  3. 從版面配置或透過內部巨集解譯器明確地手動建立與命名。可透過 GUI 命令或自動巨集從 QlikView 版面配置匯出資料。在 GUI 中,您可在大部分工作表物件的物件功能表上的匯出...命令中找到 QVD 為其中一個可能的匯出格式。

    內部巨集解譯器

產生的 QVD 檔案之間不會有任何差異,例如關於讀取速度。

從 QVD 檔案讀取資料

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

  1. 將 QVD 檔案載入為明確的資料來源。QVD 檔案可由 QlikView 指令碼中的 load 陳述式參考,如任何其他文字檔類型一樣 (csv、fix、dif、biff 等)。檔案精靈:類型會依相同的原則處理 QVD 檔案。

    檔案精靈:類型

  2. Examples:  

    load * from xyz.qvd (qvd);

    load Name, RegNo from xyz.qvd (qvd);

    load Name as a, RegNo as b from xyz.qvd (qvd);

  3. 自動載入緩衝的 QVD 檔案。在 loadselect 陳述式使用 buffer 前置詞時,不需要用於讀取的明確陳述式。QlikView 會判斷其從 QVD 檔案使用資料的範圍,而不是透過原始 loadselect 陳述式來取得資料。
  4. 透過指令碼存取 QVD 檔案。可使用數個指令碼函數 (皆以 qvd 開頭) 來擷取 QVD 檔案 XML 標頭上所找到資料的不同資訊。

    檔案函數

不支援匯入標上星號的 QVD。