寫在前面
gs_loader是對特定格式的文本文件執(zhí)行導(dǎo)入,類似于oracle的sqlloader,通過配置ctl文件,ctl控制文件主要是描述文本文件格式,比如字段、列分隔符、字符集等等。
通過描述得知,gs_loader的主要工作場景主要是針對外部數(shù)據(jù)(異構(gòu)數(shù)據(jù)庫)進行導(dǎo)入。
學(xué)習(xí)環(huán)境
NODE1(主庫) | NODE2(從庫) | |
Hostname | pkt_mogdb1 | pkt_mogdb2 |
IP | 10.80.9.249 | 10.80.9.250 |
磁盤 | 20G | 20G |
內(nèi)存 | 2G | 2G |
數(shù)據(jù)導(dǎo)入
- 前提條件
通過copy_summary_create函數(shù)創(chuàng)建系統(tǒng)表gs_copy_summary。用于記錄COPY執(zhí)行結(jié)果匯總,包括成功行數(shù),出錯行數(shù),忽略行數(shù),空行數(shù)。
call copy_summary_create(); select * from gs_copy_summary; |
- 準備外部數(shù)據(jù)
為了方便測試,使用Mogeaver客戶端工具導(dǎo)出表dump_tables為csv格式,在Mogeaver中選擇要導(dǎo)出的表,右鍵選擇“導(dǎo)出數(shù)據(jù)”,選擇csv格式,由于表的數(shù)據(jù)量較少,所有有造了一點數(shù)據(jù),數(shù)據(jù)量最后是64M。
[omm@pkt_mogdb1 ~]$ cp dump_tables.csv dump_tables_temp.csv [omm@pkt_mogdb1 ~]$ for i in {1..10000};do > cat dump_tables_temp.csv >>dump_tables.csv > done |
- 創(chuàng)建測試表
CREATE TABLE dump_tables_loader ( schemaname name, tablename name, tableowner name, tablespace name, hasindexes varchar(5), hasrules varchar(5), hastriggers varchar(5), tablecreator name, created varchar(50), last_ddl_time varchar(50) ) |
- 編輯ctl
[omm@pkt_mogdb1 ~]$ cat dump_tables_loader.ctl LOAD DATA truncate into table dump_tables_loader CHARACTERSET utf8 fields terminated by ',' trailing nullcols ( schemaname, tablename, tableowner, tablespace, hasindexes, hasrules, hastriggers, tablecreator, created, last_ddl_time ) |
- 數(shù)據(jù)導(dǎo)入
gs_loader control=dump_tables_loader.ctl data=dump_tables_temp.csv db=db_mogdb passwd=Zkh12345678 user=zkh |
小插曲到來,未找到命令,查看官方文檔中的描述如下:MogDB提供客戶端和服務(wù)器端應(yīng)用程序(工具),幫助用戶更好地維護MogDB,提供的所有工具如表1所示。工具位于安裝數(shù)據(jù)庫服務(wù)器的$GPHOME/script和$GAUSSHOME/bin路徑下。但是我始終沒有找到,然后把所有的MogDB壓縮包解壓了一下,也沒有發(fā)現(xiàn)此命令,于是去官網(wǎng)提交了一個問題,問題如下:
當(dāng)前版本不支持gs_loader,期待這個工具快點到來吧,畢竟現(xiàn)實中導(dǎo)入特定格式的文本文件還是非常常見的。
最后
雖然這次實驗沒有成功,但是我都是一邊測試一邊記錄筆記,所以也發(fā)出來吧,記錄一下。




