功能:把csv里面的數據導入到postgres數據庫。
實現步驟:
(1)查看數據,取得所有的字段名稱
"ID","CALLID","CALLERID","CALLEDID","LOGTIME","ACTION_TYPE","ACTION_DES"
5829,76881,cccccc,tttt,2009年07月13日09時57分34秒,"bbbbb",
5830,76881,cccccc,tttt,2009年07月13日09時57分34秒,"aaaaa","1\116.kkkk"
5831,76881,cccccc,tttt,2009年07月13日09時57分43秒,"aaaaa","1\142.kkkk"
5832,76881,cccccc,tttt,2009年07月13日09時57分46秒,"aaaaa","1\141.kkkk"
5833,76881,cccccc,tttt,2009年07月13日09時57分57秒,"aaaaa","1\116.kkkk"
5834,76881,cccccc,tttt,2009年07月13日09時58分07秒,"aaaaa","1\142.kkkk"
通過上面的字段名稱和下面的數據,可以知道數據的字段名稱和數據類型。
(2)根據字段名稱和類型,寫出創建表的腳本
drop table? aa_log ;
create table aa_log
(
??? id int8,
??? callid int8,
??? callerid int8,
??? calledid int8,
??? logtime varchar(100),
??? action_type varchar(100),
??? action_des varchar(100)
);
腳本保存為/tmp/a.sql
(3)創建數據表
?$ psql -hlocalhost -U postgres -d logdb? -f? /tmp/a.sql
執行,創建數據表。
(4)修改數據
? 上面的數據,字符串類型有"aaaaa" ,那么導入到數據庫的時候,對應的值也會有符號"aaaaa",所以,其值實際是""aaaaa"",為了避免這樣,我們要先把數據里面的"去掉。
在vim里面,用%s/“//g把所有的"符號替換掉。
5829,76881,cccccc,tttt,2009年07月13日09時57分34秒,bbbbb,
5830,76881,cccccc,tttt,2009年07月13日09時57分34秒,aaaaa,1\116.kkkk
5831,76881,cccccc,tttt,2009年07月13日09時57分43秒,aaaaa,1\142.kkkk
5832,76881,cccccc,tttt,2009年07月13日09時57分46秒,aaaaa,1\141.kkkk
5833,76881,cccccc,tttt,2009年07月13日09時57分57秒,aaaaa,1\116.kkkk
5834,76881,cccccc,tttt,2009年07月13日09時58分07秒,aaaaa,1\142.kkkk
(5)刪除title
把數據最上面的那行字段定義數據刪除掉。否則會出現導入數據庫錯誤。
(6)導入數據
logdb=# copy aa_log? from '/tmp/aa.csv' with delimiter ',';
COPY 273
logdb=#
(7)檢查數據
至此,導入數據處理完畢。
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|