mysql數據倉庫 infobright 數據導入

mysql 數據倉庫 Infobright 數據導入

infobright 是 採用列存儲引擎, 不須要索引、主鍵,性能很高, 億級別數據 第一次查單挑數據耗時 1.6 秒。html

數據導入 到 infobright

load data infile "/opt/sm_1.log" into table user_register fields terminated by '\t'

不過數據量大的狀況下,不免有部分數據有問題,以防導入出錯,先設置 忽略錯誤條數 或 忽略百分比mysql

/** 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%)linux

使用 split 命令進行大文件切割,參考: linux文件分割(將大的日誌文件分割成小的)

split -l 30000000 sm_tmp.log sm_last_month_login_

以上是按 3千萬 行一個文件切割,新文件名字爲 sm_last_month_login_ + aa,ab,ac 以此類推
sql

導出數據到文件

字符串不要被 "" 包圍數據庫

select * from user_register into outfile "/tmp/sm.log"  fields terminated by '\t' enclosed by ‘NULL’ escaped by ‘\\’ ;

字符串兩邊加 引號 「」性能

select * from user_register into outfile "/tmp/sm.log"  fields terminated by '\t' enclosed by ‘「’ escaped by ‘\\’ ;

IB loader

ib loader 導入模式容錯性差,我 導入幾個 5g 的數據,有些文件能導入,有些始終導入不了,也不報錯,卡在那不動了。
後來 換成 mysql 導入模式 成功了.net

-- 使用IB loader來導入CSV格式的變量定長文本 
set @bh_dataformat = 'txt_variable'; 

-- 二進制文件 
set @bh_dataformat = 'binary'; 
 
-- 使用mysql loader 
set @bh_dataformat = 'mysql';

參考資料:

  1. infobright的load加載
  2. infobright中導入數據避免特殊字符問題
  3. linux文件分割(將大的日誌文件分割成小的)
  4. Infobright Tips
  5. infobright中數據導入與避免特殊字符的方法
  6. MySQL · 引擎特性 · Infobright 列存數據庫
  7. Infobright ICE數據倉庫在線實戰手冊
相關文章
相關標籤/搜索