一女轿、前言
??在數(shù)據(jù)庫的導入導出方面壕翩,GBase數(shù)據(jù)庫和梧桐數(shù)據(jù)庫有著各自的特點和方法。以下就表數(shù)據(jù)的導入導出介紹下兩個數(shù)據(jù)庫這方面的差異并總結北救。
二芜抒、數(shù)據(jù)導入
1、GBase庫數(shù)據(jù)導入
??GBase數(shù)據(jù)庫在導入數(shù)據(jù)常使用 LOAD DATA INFILE
語句將數(shù)據(jù)從文件導入到表中宅倒,支持多種數(shù)據(jù)格式和字段分隔符,具體命令如下:
LOAD DATA INFILE 'file://主機地址/文件目錄/文件名' INTO TABLE 目標表 data_format 3 fields terminated by '|' ;
參數(shù)解釋:
data_format
:指定解析數(shù)據(jù)文件并加載的方式蹭劈,如文本方式加載(DATA_FORMAT 3)线召、定長方式加載(DATA_FORMAT 4)等铺韧,示例中指定的方式為 3 文本加載方式fields
: 段指示灶搜,包括分隔符、包圍符前酿、空格處理等鹏溯。例如,TERMINATED BY用于指定字段分隔符丙挽,ENCLOSED BY用于指定字段包圍符,示例中設定TERMINATED BY '|'
平窘,指定字段分割符為 '|';max_bad_records
: 設定錯誤數(shù)據(jù)行數(shù)的上限凳怨,當錯誤數(shù)據(jù)行數(shù)超過此值時是鬼,加載任務回滾并報錯退出紫新,設置為0時不允許存在錯誤記錄均蜜;CHARACTER SET
: 指定待加載數(shù)據(jù)文件的編碼格式芒率,支持GBK、UTF8等,如果省略充择,認為不需要轉碼匪蟀。引號中為目標文件地址及文件名;
備注
目標文件地址可以是本地文件系統(tǒng)或遠程數(shù)據(jù)源萄窜,可以是 FTP撒桨、SFTP、Hadoop
例:
sftp://主機賬號:主機密碼@主機地址//
hdp://主機賬號:主機密碼@主機地址//
2穗泵、梧桐數(shù)據(jù)庫數(shù)據(jù)導入
??梧桐數(shù)據(jù)庫可以使用COPY命令來進行本地文件系統(tǒng)的導入谜疤,也可通過外部表獲取遠程數(shù)據(jù)源的方式導入,具體命令如下:
使用COPY命令
\copy table_name from '文件名.csv' WITH FORMAT csv delimiter '|' null as '\\N';
參數(shù)解釋
table_name
導入的目標表名from
后接待導入的文件名-
WITH
后接導入的限制條件夷磕,示例中未完全寫出FORMAT
導入文件格式,要與文件的格式保持一致delimiter
指定文件分割符null as
指定字段為空值segment reject limit
允許的錯誤最大記錄數(shù)encoding
指定字符集尺棋,不指定則為默認log errors into
表名绵跷,將錯誤記錄數(shù)插入日志
??相比較于GBase庫,COPY命令只能導入本地系統(tǒng)的文件數(shù)據(jù)碾局,而GBase庫可以通過命令導入其他遠程數(shù)據(jù)源的文件,然而梧桐數(shù)據(jù)庫可以通過外部表的方式導入數(shù)據(jù)内斯,如下:
CREATE EXTERNAL TABLE test_table
(column_1 int, column_2 text, column_3 text)
LOCATION ('gpfdist://文件目錄/*.csv')
FORMAT 'CSV' DELIMITER ',';
LOCATION:指定文件目錄地址及文件名
其他參數(shù)與上述COPY命令一致,可按照需求添加
備注
gpfdist
是梧桐數(shù)據(jù)庫的并行文件分發(fā)程序嘿期,在執(zhí)行創(chuàng)建外部表時文件所在主機必須要安裝該程序。創(chuàng)建外部表后可將外部表數(shù)據(jù)插入本地數(shù)據(jù)庫表中萄传,完成導入操作蜜猾。
三、數(shù)據(jù)導出
1蹭睡、GBase數(shù)據(jù)庫數(shù)據(jù)導出
??GBase數(shù)據(jù)庫在導入數(shù)據(jù)常使用 SELECT INTO OUTFILE
語句將數(shù)據(jù)從文件導入到表中,支持多種數(shù)據(jù)格式和字段分隔符脊串,具體命令如下:
rmt:select * from 目標表名 into outfile '目標地址/文件名.txt' fields TERMINATED BY ',' enclosed by '"' lines TERMINATED BY '\n';
參數(shù)解釋:
fields
: 字段指示清钥,包括分隔符琼锋、包圍符祟昭、空格處理等。例如谜叹,TERMINATED BY用于指定字段分隔符搬葬,ENCLOSED BY用于指定字段包圍符,示例中設定TERMINATED BY '|'
踩萎,指定字段分割符為 '|';enclosed by '"'
指定' " '為字段包圍符;lines TERMINATED BY
: 指定行分隔符,默認為換行符(\n)董栽。WRITEMODE BY
:指定導出文件的寫入模式企孩。可以是NORMAL(如果文件已存在則報錯)或OVERWRITES(覆蓋已存在的文件)勿璃。CHARACTER SET
: 指定待加載數(shù)據(jù)文件的編碼格式推汽,支持GBK歧沪、UTF8等,如果省略,認為不需要轉碼诊胞。rmt:使用rmt前綴可以將數(shù)據(jù)導出到執(zhí)行命令的客戶端機器上,而不是服務器上.
2迈着、梧桐數(shù)據(jù)庫數(shù)據(jù)導出
??梧桐數(shù)據(jù)庫常使用COPY命令來進行數(shù)據(jù)的導出邪码,具體命令如下:
\COPY select * from table_name TO '文件地址/文件名' WITH (FORMAT 'csv',DELIMITER '|', HEADER true);
參數(shù)解釋:
TO
后接數(shù)據(jù)導出指定的目錄及文件名-
WITH
后接導入的限制條件,示例中未完全寫出FORMAT
導入文件格式闭专,要與文件的格式保持一致HEADER
指定輸出文件是否包含列頭∮┎剩可以設置為true或falsedelimiter
指定文件分割符斧拍,示例使用 ' | '作為分隔符ESCAPE
指定轉義字符杖小,用于轉義引號字符本身或其他特殊字符,默認為反斜杠\QUOTE
指定引號字符予权,用于包圍文本字段,默認為雙引號"encoding
指定字符集岗照,支持GBK笆环、UTF8等,不指定則為默認
??梧桐數(shù)據(jù)庫的數(shù)據(jù)庫可視化管理平臺也提供了導入導出的功能躁劣,可以通過對數(shù)據(jù)表進行導入導出。
四账忘、總結
??GBase數(shù)據(jù)庫和梧桐數(shù)據(jù)庫都提供了豐富的數(shù)據(jù)導入導出工具和參數(shù)熙宇,以滿足不同場景下的需求溉浙。用戶可以根據(jù)自己的具體需求選擇合適的工具和參數(shù)進行數(shù)據(jù)遷移。