Sybase IQ如何將大檔案資料迅速載入到資料庫

2022-03-23 08:03:13 字數 3277 閱讀 8310

試想一下,如果乙個檔案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命名 如下命...