天天看點

PCIe-SSD卡下的xfs vs ext4對比fileio及TpmC測試

目前在用的是社群版的infobright,不支援DML功能,隻能用LOAD DATA方式導入資料。

如果中繼資料中有特殊控制字元,導入過程中經常會報錯,很是惱火。應對政策有兩種方法:

  1. 設定Reject File

    導入之前,設定 @BH_REJECT_FILE_PATH 和 @BH_ABORT_ON_COUNT 就可以忽略多少條導入失敗的記錄,并且将這些記錄儲存在指定檔案

    /** when the number of rows rejected reaches 10, abort process **/

    set @BH_REJECT_FILE_PATH = '/tmp/reject_file';

    set @BH_ABORT_ON_COUNT = 10;

    BH_ABORT_ON_COUNT 設定為 -1 的話,表示永不忽略。

    也可以設定 BH_ABORT_ON_THRESHOLD 選項,該選項表示有最多多少百分比的資料允許被忽略,是以該選項的值是小數格式,例如 BH_ABORT_ON_THRESHOLD = 0.03(表示3%)

  2. 導出時指定結束符

    此外,還可以在導出資料時制定結束符,并且設定忽略哪些轉義字元(\、"、' 等字元),例如:

select fields_list... into outfile '/tmp/outfile.csv' fields terminated by '||' ESCAPED BY '\\' lines terminated by '\r\n' from mytable;

  1. 或者,将行間隔符設定為其他特殊辨別,例如:

    select fields_list... into outfile '/tmp/outfile.csv' fields terminated by '||' ESCAPED BY '\\' lines terminated by '$$$$$' from mytable;

    當然了,這種情況下,實際資料行中就不能存在 "$$$$$" 這個值了,否則會被當成換行辨別。