跳到主要內容 跳至補充內容

QVD 檔案

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

可用兩種模式讀取 QVD 檔案:標準 (快速) 與最佳化 (更快速)。Qlik Sense 指令碼引擎會自動決定選取的模式。雖然允許重新命名欄位,但只有在單純讀取所有載入的欄位,而不轉換 (在欄位上作用的公式) 的情況下,才能使用最佳化模式。造成 Qlik Sense 解壓縮記錄的 Where 子句也會停用最佳化載入。

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

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

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

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

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

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

資訊備註

若要查看 Qlik 社群如何使用 Qlik 應用程式自動化 改善 QVD 載入時間,請參閱如何使用自動化分割 QVD 以改善載入

建立 QVD 檔案

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

Store

此指令碼陳述式可建立明確命名的 QVDParquetCSVTXT 檔案。

語法:  

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

陳述式只能從一個資料表格匯出欄位。如果要匯出數個表格中的欄位,則必須在指令碼中提前加入明確的 join 前置詞,以建立應該匯出的資料表格。

文字值會以 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. 開啟進階指令碼教學課程應用程式。
  2. 按一下 Product 指令碼區段。
  3. 將下列內容新增至指令碼結尾:
  4. 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);

  5. 按一下載入資料
  6. Product.qvd 檔案現在應於檔案清單中。

    此資料檔案是 Crosstable 指令碼產生的擁有三個資料行的表格,每個資料行代表一個類別 (Product, Month, Sales)。此資料檔案現可用於取代整個 Product 指令碼區段。

QVD 檔案讀取資料

可使用下列方法透過 Qlik Sense 讀取或存取 QVD 檔案:

  • QVD 檔案載入為明確的資料來源。QVD 檔案可由 Qlik Sense 指令碼中的 LOAD 陳述式參考,如任何其他文字檔案類型一樣 (csvfixdifbiff 等)。
  • 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. 輸入以下指令碼:
  3. Load * from [lib://DataFiles/ProductData.qvd](qvd);			

  4. 按一下載入資料
  5. 資料從 QVD 檔案載入。

    資料載入進度視窗

    資料載入進度視窗。
資訊備註若要瞭解關於使用 QVD 檔案進行累加載入的資訊,請參閱 Qlik Community 中的此篇部落格貼文:Qlik 累加載入概述

 

謝謝您!

現在,您已完成此教學課程,希望您已獲得有關 Qlik Sense 中指令碼的更多知識。請瀏覽我們的網站,瞭解更多培訓詳情。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!