Store | Qlik Cloud 說明
跳到主要內容 跳至補充內容

Store

上次更新:2026/9/16

Store 陳述式建立 QVD、Parquet、CSV 或 TXT 檔案。

語法:  

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

該陳述式將建立明確命名的 QVD、Parquet 或文字檔案。

陳述式只能從一個資料表格匯出欄位,除非您儲存至 Parquet。如果要將數個表格中的欄位匯出至 QVD、CSV 或 TXT 檔案,則必須在指令碼中提前進行明確 join,以建立應該匯出的資料表格。您可以在 Parquet 檔案中內嵌資料,以在單一 Parquet 中儲存多個表格。

文字值會以 BOM 格式匯出到 UTF-8 中的 CSV 檔案中。可指定分隔符號,請參閱 LOAD。在 CSV 檔案中使用 store 陳述式不支援 BIFF 匯出。

資訊備註在某些資料格式不正確的情況下,將會以雙引號括起欄位,以確保正確解譯資料。例如,若欄位包含引號、逗號、空格或分行符號等字元,就可能發生此情況。

您可以指定要將檔案儲存於個人空間或您有寫入權限的共用空間。若您儲存在共用空間,成員可以使用該資料以在空間中建立應用程式。請參閱:在共用空間中管理權限。

引數:  

儲存命令引數
引數 描述
fieldlist::= ( * | field) { , field } )

要選取的欄位清單。使用 * 做為欄位清單表示所有欄位。 

field::= fieldname [as aliasname ]

fieldname 是與 table 中欄位名稱相同的文字。(請注意,欄位名稱如果包含空格或其他非標準字元,則必須以一般雙引號或方括弧括住。)

aliasname 是在所產生 QVD 或 CSV 檔案中要使用之欄位的替代名稱。

table 代表已經載入的表格 (用作資料來源) 的指令碼標籤。
filename

包括通向現有資料夾資料連線的有效路徑的目標檔案的名稱。 如需關於什麼被視為有效路徑的具體資訊,請參閱 有效空間資料夾路徑的規則。。

在 Qlik Cloud 分析 中,支援階層資料夾結構,可以在陳述式中參考。

範例:  

  • 個人空間 (上層路徑):[lib://DataFiles/abc.qvd]

  • 個人空間 (巢狀資料夾):[lib://DataFiles/MyFolder/abc.qvd]

  • 共用空間 (上層路徑):[lib://TeamSharedSpace:DataFiles/xyz.qvd]

  • 共用空間 (巢狀資料夾):[lib://TeamSharedSpace:DataFiles/MyFolder/abc.qvd]

如需更多資訊和範例,請參閱 在 Qlik Cloud 分析 中將檔案儲存到空間。

format-spec ::=( ( txt | qvd | parquet),compression is 轉碼器)

您可以將格式規格設定為其中任一個檔案格式。若省略格式規格,會採用 qvd。

  • CSV 和 TXT 檔案的 txt。

  • qvd 適用於 QVD 檔案。

  • parquet 適用於 Parquet 檔案。

若您使用 parquet,您也可以設定要搭配 compression is 使用哪個壓縮轉碼器。若您沒有透過 compression is 指定壓縮轉碼器,則會使用 snappy。提供下列壓縮設定:

  • uncompressed

  • snappy

  • gzip

  • lz4

  • brotli

  • zstd

  • lz4_hadoop

範例:

Store mytable into [lib://DataFiles/myfile.parquet] (parquet, compression is lz4);

資訊備註DataFiles 連線的檔案延伸區分大小寫。例如:.qvd。

範例:  

Store mytable into [lib://DataFiles/xyz.qvd];

Store * from mytable into [lib://DataFiles/myfile.qvd];

Store Name, RegNo from mytable into [lib://DataFiles/xyz.qvd];

Store Name as a, RegNo as b from mytable into [lib://DataFiles/myfile.qvd];

Store mytable into [lib://DataFiles/myfile.txt] (txt);

Store mytable into [lib://DataFiles/myfile.parquet] (parquet);

Store * from mytable into [lib://DataFiles/myfile.csv] (txt);

Store * from mytable into [lib://TeamSharedSpace:DataFiles/myfile.qvd];

儲存在 Parquet 檔案中

Parquet 是強力輸入的檔案格式,其中每個欄位包含單一特定資料類型 (例如 in32、雙重、時間戳記或文字)。Qlik Sense 將內部資料儲存為鬆散輸入的雙重內容,其中來自不同來源的資料可以混合到相同的欄位中。由於 Parquet 的每個欄位中只能儲存一個雙重部分,知道每個欄位包含的內容很重要。依照預設,Qlik Sense 使用欄位類型決定應如何儲存欄位。以特定格式在 Parquet 檔案中儲存資料時,您必須指定欄位在載入時是什麼資料類型。若您嘗試以 Parquet 檔案將資料儲存到不相容的欄位中,例如在文字欄位中儲存數字或在時間戳記欄位中儲存文字,結果會是 Null 值。

載入您打算以 Parquet 儲存的資料時,可以變更預設行為。您可以格式化以變更資料類型,或標記以在 Parquet 強制特定欄類型。

格式化資料以儲存於 Parquet

您可以使用 Qlik Sense 格式化功能以分類資料。例如,Text()、Num()、Interval() 或 Timestamp() 可以在以 Parquet 儲存資料時強制資料格式。Qlik Sense 可以將資料儲存到將近 20 個資料類型,視欄位屬性和自動欄位標記而定。如需詳細資訊,請參閱解譯函數。

範例: 以 Num() 和 Text() 格式化資料

下列範例展示準備資料以儲存於 Parquet。Num() 套用至數字欄位。Text() 套用至文字和混合欄位。在混合情況下,Text() 可防止像 Parquet 中的數字欄位那樣來處理,並有變更為 Null 值的文字值。

Data: LOAD * INLINE [ num, text, mixed 123.321, abc, 123 456.654, def, xyz 789.987, ghi, 321 ]; Format:
NoConcatenate LOAD num, text, Text(mixed) as mixed RESIDENT Data; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);

標記資料以儲存於 Parquet

您使用 $parquet 標記來標記資料,以便在以 Parquet 儲存資料時強制特定欄類型。新增對應的控制標記以強制每個資料類型。例如,若要在 Parquet 將欄位儲存為 INT32,在載入指令碼中以 $parquet-int32 標記。根據資料類型,將會儲存雙重資料的字串或數字呈現。

下列 Parquet 控制標記可用來標記欄位,以儲存於 Parquet 檔案。

Parquet 控制標記
控制標記雙值實際類型邏輯類型轉換類型
$parquet-boolean數字布林值無無
$parquet-int32數字INT32無無
$parquet-int64數字INT64無無
$parquet-float數字浮動無無
$parquet-double數字雙重無無
$parquet-bytearray字串BYTE_ARRAY無UTF8
$parquet-bytearrayfix數字FIXED_LEN_BYTE_ARRAY無小數
$parquet-decimal數字INT64小數小數
$parquet-date數字INT32日期日期
$parquet-time數字INT64時間TIME_MICROS
$parquet-timestamp數字INT64時間戳記TIMESTAMP_MICROS
$parquet-string字串BYTE_ARRAY字串UTF8
$parquet-enum字串BYTE_ARRAYENUMENUM
$parquet-interval數字FIXED_LEN_BYTE_ARRAY間隔間隔
$parquet-json字串BYTE_ARRAYJSONJSON
$parquet-bson字串BYTE_ARRAYBSONBSON
$parquet-uuid字串FIXED_LEN_BYTE_ARRAYUUID無

範例: 標記資料以儲存於 Parquet

在此範例中,兩個標記用來定義 Parquet 的資料。欄位 num 以 $parquet-int32 標記,以定義為將會在 Parquet 設定為 INT32 的數字欄位。

Data: LOAD * INLINE [ num, text, 123.321, abc 456.654, def 789.987, ghi ]; TAG num WITH '$parquet-int32'; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);

在 Parquet 檔案中儲存巢狀資料

您可以將表格內嵌至結構化資料中,以在 Parquet 檔案中儲存多個表格。Store 支援結構化節點並以星狀結構描述列出節點。也可以使用 Delimiter is 說明符,以巢狀模式儲存單一表格。

儲存表格時,指定您要納入的表格並以逗號分隔。例如:STORE Table1, Table2, Table3 INTO [lib://<file location>/<file name>.parquet] (parquet);。您可以在 Store 陳述式使用欄位清單,以控制儲存哪些欄位。例如 STORE Field1, Field2, FROM Table1, Table2 INTO [lib://<file location>/<file name>.parquet] (parquet);。欄位清單中的所有欄位必須位於一個或多個列出的表格。Store 陳述式中的第一個表格將會作為星狀結構描述中的事實資料表使用。

欄位名稱用來控制如何建立和內嵌群組。依照預設,欄位名稱會以句號 (.) 分為節點。可以設定系統變數 FieldNameDelimiter 或使用說明符 Delimiter is,以變更分隔符號。說明符將會覆寫系統變數。如需詳細資訊,請參閱 在資料載入編輯器中使用變數。

欄位名稱透過分隔符號分割,部分用來透過巢狀群組建立結構描述。例如,STORE Field1, Field1.Field2, Field1.Field3, Field1.Field4 FROM Table1 INTO [nested.parquet] (parquet, delimiter is '.'); 將會透過 Fields1, Field2 和 Field3, Field4 建立兩個群組 (Group1 和 Group2)。

資訊備註群組和欄位在結構描述的節點中可能不會有相同的名稱。例如,STORE Address, Address.Street INTO [nested.parquet] (parquet, delimiter is '.''); 將會因為地址模糊且同時為資料欄位和群組而失敗。

在 Parquet 儲存巢狀資料時,表格之間的金鑰會轉換為結構描述中的連結節點。表格會轉換為結構描述中的結構化節點。您可以使用欄位名稱覆寫預設轉換。

範例: 在 Parquet 檔案中儲存巢狀資料

company: LOAD * INLINE [ company, contact A&G, Amanda Honda Cabro, Cary Frank Fenwick, Dennis Fisher Camros, Molly McKenzie ]; salesrep: LOAD * INLINE [ company, salesrep A&G, Bob Park Cabro, Cezar Sandu Fenwick, Ken Roberts Camros, Max Smith ]; headquarter: LOAD * INLINE [ company, country, city A&G, USA, Los Angeles Cabro, USA, Albuquerque Fenwick, USA, Baltimore Camros, USA, Omaha ]; region: LOAD * INLINE [ region, city West, Los Angeles Southwest, Albuquerque East, Baltimore Central, Omaha ]; STORE company, salesrep, headquarter, region INTO [lib://DataFiles/company.parquet] (parquet) DROP TABLES company, salesrep, headquarter, region;

產生的 Parquet 檔案有下列結構描述:

company (String) contact (String) company:salesrep (List) salesrep (Group) salesrep (String) company:headquarter (List) headquarter (Group) country (String) city (String) city:region (List) region (Group) region (String)

限制

在 Parquet 中儲存巢狀資料有下列限制:

  • 儲存不支援地圖節點。

  • 儲存不包括從載入中的巢狀 parquet 檔案產生的索引鍵欄位。

  • 您無法從表格一同儲存未與索引鍵欄位連結的資料。

  • 巢狀檔案反正規化資料模型。不會儲存非參考的值,將會複製參考多次的值。

在 Qlik Cloud 分析 中將檔案儲存到空間

在 Qlik Cloud 的載入指令碼中使用 Store 陳述式時,您可以參考要儲存所建立檔案的空間中的確切資料夾。按照有效空間資料夾路徑的規則。此外,以下行為也適用且是 Store 陳述式所獨有:

  • 如果空間存在但指定的資料夾路徑不存在,則會在空間中建立路徑。根據定義的資料夾結構,可能會建立一個或多個資料夾。會產生檔案並儲存於該處。

  • 如果空間存在,但指定的資料夾路徑使用無效的資料夾分隔符號 (例如 \、\\、//、/./ 或 /../),則仍會執行 Store 陳述式。輸出檔案會改為儲存在目標空間的上層路徑中,並且將具有包含其完整路徑的名稱,而不僅僅是指定的名稱。

  • 如果空間不存在,則 Store 陳述式無法執行並傳回錯誤。

以下範例示範如何在 Store 陳述式內參考空間中的特定資料夾路徑。

範例: 在空間上層路徑儲存檔案

在此範例中,整個表格 mytable 作為名為 myfile.qvd 的檔案匯出到 Qlik Cloud 分析 中。檔案已新增至空間 TeamSharedSpace。該檔案沒有位於任何特定資料夾中,而是位於空間中的上層路徑。

Store * from mytable into [lib://TeamSharedSpace:DataFiles/myfile.qvd];

範例: 將檔案儲存到空間內的特定資料夾路徑

在此範例中,整個表格 mytable 作為名為 myfile.qvd的檔案匯出到 Qlik Cloud 分析 中。該檔案已新增至空間 TeamSharedSpace 內的資料夾 SalesData 中。

Store * from mytable into [lib://TeamSharedSpace:DataFiles/SalesData/myfile.qvd];

如需更多關於在載入指令碼中參考空間資料夾結構的資訊,請參閱 在應用程式和指令碼開發中參考空間資料夾結構。

此頁面是否對您有幫助?

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