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

Store

Store 陳述式建立 QVDParquetCSVTXT 檔案。

語法:  

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

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

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

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

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

引數:  

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

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

field::= fieldname [as aliasname ]

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

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

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

包括通向現有資料夾資料連線的有效路徑的目標檔案的名稱。

範例: 'lib://Table Files/target.qvd'

在舊式指令碼模式下,還支援下列路徑格式:

  • 絕對路徑

    範例: c:\data\sales.qvd

  • Qlik Sense 應用程式工作目錄相關。

    範例: data\sales.qvd

    如果省略路徑,Qlik Sense 將在 Directory 陳述式指定的目錄中儲存該檔案。如果沒有 Directory 陳述式,則 Qlik Sense 會在工作目錄 (C:\Users\{user}\Documents\Qlik\Sense\Apps) 中儲存該檔案。

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

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

  • CSVTXT 檔案的 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);

範例:

Store mytable into xyz.qvd (qvd);

Store * from mytable into 'lib://FolderConnection/myfile.qvd';

Store Name, RegNo from mytable into xyz.qvd;

Store Name as a, RegNo as b from mytable into 'lib://FolderConnection/myfile.qvd';

Store mytable into myfile.txt (txt);

Store mytable into myfile.parquet (parquet);

Store * from mytable into 'lib://FolderConnection/myfile.qvd';

資訊備註DataFiles 連線的檔案延伸區分大小寫。例如:.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_ARRAYUTF8
$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 Data INTO [lib://DataFiles/Tmp.parquet] (parquet);

此頁面是否對您有幫助?

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