試想一下,如果乙個檔案5g、10g甚至更大。如何將它迅速地載入到資料庫指定的表呢?我們看看sybase iq是如何迅速地將表的資料載入到資料庫的。
資料檔案格式:
1440,2011-01-09 00:00:00,1,珠海,1,c網,8612345678222,221943,1,12175,1,12,14426467,1191632,9,
1440,2011-01-09 00:00:00,1,珠海,1,c網,8612345678222,968852,1,82077,1,7,2430696,134921,5,
1440,2011-01-09 00:00:00,1,珠海,1,c網,8612345678222,936862,3,10847,1,5,4585323,362630,5,
1440,2011-01-09 00:00:00,1,珠海,1,c網,8612345678222,308796,2,5614,2,12,14401931,1202200,11,
1440,2011-01-09 00:00:00,1,珠海,2,固網,861234567000,11058523,6,984391,3,19,12789576,1113565,19,
據以「,」分割。並以「,」結尾。
commit;lock
table iqloadtest in write mode wait '
00:05:00';
settemporary
option conversion_error=
'off';
settemporary
option escape_character='on
';settemporary
option load_memory_mb=
256;
set temporary option timestamp_format='yyyy-mm-dd hh:mm:ss';--解決時間格式問題
load
table
iqloadtest
(
col1 ',
',
col2 ',
',
col3 ',
',
col4 ',
',
col5 ',
',
col6 ',
',
col7 ',
',
col8 ',
',
col9 ',
',
col10 ',
',
col11 ',
',
col12 ',
',
col13 ',
',
col14 ',
',
col15
',\x0a
',--最後乙個字段順便過濾掉換行符0a
filler(1)--在此例子中加了此條語句最後一行資料不被載入)
from
'/home/test/test.load
'escapes
offquotes
offignore
constraint
all0
message
log'
/home/test/iqmsg.log
'row
log'
/home/test/iqrow.log
'only
logall
notify
50000
with
checkpointon;
commit;
結論:如果行結束符後面帶了分隔符的話必須用此種方式。否則無法載入。
如果行結束符後面不帶分隔符的話可以用filler(1)這種方式
iqload 會遇到的問題。
1、 odbc 與 jdbc 的預設設定不一樣。 jdbc 需要加上
set temporary option escape_character='on';
2、當資料中存在null時的解決方法
commit;lock
table iqloadtest in write mode wait '
00:05:00';
settemporary
option conversion_error=
'off';
settemporary
option escape_character='on
';settemporary
option load_memory_mb=
256;
settemporary
option timestamp_format=
'yyyy-mm-dd hh:mm:ss';
load
table
iqloadtest
(
欄位1
'分隔符
'null('
null
'),
欄位2
'分隔符
'null('
null'),
col15
'分隔符\x0a
'null('
null
'),
filler(
1)--
在此例子中加了此條語句最後一行資料不被載入)
from
'/home/test/test.load
'escapes
offquotes
offignore
constraint
all0
message
log'
/home/test/iqmsg.log
'row
log'
/home/test/iqrow.log
'only
logall
notify
50000
with
checkpointon;
commit;
Sybase IQ如何將大檔案資料迅速載入到資料庫
試想一下,如果乙個檔案5g 10g甚至更大。如何將它迅速地載入到資料庫指定的表呢?我們看看sybase iq是如何迅速地將表的資料載入到資料庫的。資料檔案格式 1440,2011 01 09 00 00 00,1,珠海,1,c網,8612345678222,221943,1,12175,1,12,1...
Sybase IQ如何將大檔案資料迅速載入到資料庫
試想一下,如果乙個檔案5g 10g甚至更大。如何將它迅速地載入到資料庫指定的表呢?我們看看sybase iq是如何迅速地將表的資料載入到資料庫的。資料檔案格式 1440,2011 01 09 00 00 00,1,珠海,1,c網,8612345678222,221943,1,12175,1,12,1...
linux下如何將大檔案分為多個小檔案
1 將檔案按照儲存大小拆分 如下命令,將954m大小的檔案httpd.log,按照500mb每個檔案大小進行拆分。拆分後,變為xaa和xab兩個檔案,每個檔案大小為477m。rw r r 1 root root 477m mar 25 12 38 xab 2 將拆分後的檔案按照某個tag命名 如下命...