本篇內容介紹了“greenplum中怎么使用gpfdist與外部表高效導入數(shù)據(jù)”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
greenplum作為OLAP分析型軟件,自然避免不了從外部數(shù)據(jù)庫加載大量的數(shù)據(jù),然而傳統(tǒng)的ETL數(shù)據(jù)傳輸方法(select=>insert)到GP需要經(jīng)過GP的單點master,效率非常低。
下面介紹外部表用gpfdist快速導入數(shù)據(jù):
普通外部表和可寫外部表區(qū)別:
1、普通外部表只能select,可寫外部表只能insert
2、可寫外部表沒有錯誤表
3、可寫外部表可以指定分布鍵,如果不指定,默認隨機分布;普通外部表只能隨機分布
gpfdist優(yōu)勢:
1、直接由segment并發(fā)加載
2、直接加載數(shù)據(jù)文件,并可讀寫(和選擇的外部表類型有關)
3、默認數(shù)據(jù)隨機分配,每個節(jié)點負載均衡(和選擇的外部表類型有關)
示例:
1、啟動gpfdist
安裝完GP后,自帶gpfdist文件,直接指定目錄、端口等就能啟動服務。如果需要獨立的文件服務器,則需要在文件服務器上單獨下載gpfdist使用
[gpadmin@gp-master ~]nohup /disk/GP/bin/gpfdist -p 8081 -d /disk/upload &
使用nohup &是起守護進程作用,不然執(zhí)行啟動服務的客戶端關閉后,這個進程也會被關閉;指定端口8081,指定文件服務器目錄/disk/upload
[gpadmin@gp-master ~]$ ps -ef|grep gpfdist
gpadmin 816 32606 0 17:08 pts/4 00:00:00 grep gpfdist
gpadmin 13036 1 0 Oct21 ? 00:00:44 /disk/GP/bin/gpfdist -p 8081 -d /disk/upload
2、創(chuàng)建普通外部表
CREATE EXTERNAL TABLE "ods"."order" (
"id" varchar(64),
"create_by" varchar(64),
"create_date" timestamp,
"update_by" varchar(64),
"update_date" timestamp,
"del_flag" char(1),
"user_id" varchar(64),
"user_name" varchar(64),
"account_id" varchar(64),
"equ_def_id" varchar(64),
"amount_in" numeric(20,2),
"amount_in_money" numeric(20,2),
"amount_out" numeric(20,2),
"amount_out_money" numeric(20,2),
"fee" numeric(20,2),
"fee_discount" numeric(20,2),
"money" numeric(20,2),
"actual_pay_money" numeric(20,2),
"discount_money" numeric(20,2),
"pay_time" timestamp,
"order_type" varchar(16),
"status" varchar(64),
"rel_biz_type" varchar(64),
"rel_biz_id" varchar(64),
"equ_agreement" varchar(64),
"remarks" varchar(100),
"transaction_type" varchar(1),
"pay_stop_date" timestamp,
"stop_time" timestamp,
"bid_method" varchar(64),
"profit_fee_rate" numeric(20,2),
"quit_charge_rate" numeric(20,2),
"return_tb" numeric(20,2),
"last_order_id" varchar(64),
"root_order_id" varchar(64),
"invest_name_for_me" varchar(64),
"invest_name_for_buyer" varchar(64),
"invest_start_time" timestamp,
"available_amount" numeric(20,2),
"surplus_days" int4,
"transferable_flag" varchar(64),
"trc_order_id" varchar(64)
) LOCATION ('gpfdist://gp-master:8081/order.csv') format 'csv' (DELIMITER ';');
注意有幾個坑:
1、這個實驗數(shù)據(jù)order.csv是生產(chǎn)環(huán)境mysql的測試數(shù)據(jù),表中有時間類型字段,如果從線上數(shù)據(jù)導出到txt文本,這個時候你的時間格式就變成了varchar,再導入到GP的時間類型字段時候會報格式錯誤,所以盡量導出為csv格式的文本
2、指定gpfdist信息:LOCATION ('gpfdist://文件服務器主機名或IP:gpfdist端口/加載文件') format '文件格式' (DELIMITER '分隔字符')
3、從線上數(shù)據(jù)導出到文本,不要行頭,不要封閉符,只需要分隔字符
測試數(shù)據(jù)90W記錄的數(shù)據(jù),gpfdist加載數(shù)據(jù)在秒級別,效率很高
創(chuàng)建可寫外部表
CREATE WRITABLE EXTERNAL TABLE "ods"."order1" (
"id" varchar(64),
"create_by" varchar(64),
"create_date" timestamp,
"update_by" varchar(64),
"update_date" timestamp,
"del_flag" char(1),
"user_id" varchar(64),
"user_name" varchar(64),
"account_id" varchar(64),
"equ_def_id" varchar(64),
"amount_in" numeric(20,2),
"amount_in_money" numeric(20,2),
"amount_out" numeric(20,2),
"amount_out_money" numeric(20,2),
"fee" numeric(20,2),
"fee_discount" numeric(20,2),
"money" numeric(20,2),
"actual_pay_money" numeric(20,2),
"discount_money" numeric(20,2),
"pay_time" timestamp,
"order_type" varchar(16),
"status" varchar(64),
"rel_biz_type" varchar(64),
"rel_biz_id" varchar(64),
"equ_agreement" varchar(64),
"remarks" varchar(100),
"transaction_type" varchar(1),
"pay_stop_date" timestamp,
"stop_time" timestamp,
"bid_method" varchar(64),
"profit_fee_rate" numeric(20,2),
"quit_charge_rate" numeric(20,2),
"return_tb" numeric(20,2),
"last_order_id" varchar(64),
"root_order_id" varchar(64),
"invest_name_for_me" varchar(64),
"invest_name_for_buyer" varchar(64),
"invest_start_time" timestamp,
"available_amount" numeric(20,2),
"surplus_days" int4,
"transferable_flag" varchar(64),
"trc_order_id" varchar(64)
) LOCATION ('gpfdist://gp-master:8081/order1.csv') format 'CSV' (DELIMITER ';')
DISTRIBUTED BY (id);
“greenplum中怎么使用gpfdist與外部表高效導入數(shù)據(jù)”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
網(wǎng)頁標題:greenplum中怎么使用gpfdist與外部表高效導入數(shù)據(jù)-創(chuàng)新互聯(lián)
本文地址:http://www.rwnh.cn/article12/csdhgc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、定制網(wǎng)站、外貿建站、微信公眾號、關鍵詞優(yōu)化、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容