greenPlum数据库管理文档
Load实验
Mdw做为ETL 抽取组件,抽取file文件所在的机器。
不成功
Gpfdist数据加载和数据unloading;
外部表分成两种类型,一种是可读外部表,用于将外部文件导入到外部表。另一种是可写外部表,用于将外部表写去到外部文件。
For readable external tables, if load files are compressed using gzip or bzip2 (have a .gz or .bz2 file extension), gpfdist uncompresses the files automatically before loading provided that gunzip or bunzip2 is in your path.
--gpfdist可以自动的解压缩gzip或者是bzip2类型的压缩文件。
gpfdist [-d directory] [-p http_port] [-l log_file] [-t timeout]
[-S] [-w time] [-v | -V] [-s] [-m max_length] [--ssl certificate_path]
-d:目录为要加载的文件所在的目录,当文件在ETL上的某个目录,既-d 后面跟着就是这个目录路径。
-l:日志输入文件所在目录
-p:端口 http协议,这个端口是在文件服务器上的端口。默认的是8080端口
-t:设置gpfdist和GP连接时间,默认时间是5秒,允许2~600秒。通过提升网络流量来提升系统。
-m max_length:设置允许的最大数据行的字节长度。有限范围:Valid range is 32K to 256MB.window系统的上线是1MB。
-s :启动简化的日志记录。
-ssl certificate_path
添加SSL加密数据传输
gpfdist -d /var/load_files -p 8081 &
Gpfdist -d /var/load_files -p 8081 -l /home/gpadmin/log &
测试实验:GP的数据加载实验
【出现的问题1】greenplum ERROR: connection with gpfdist failed for gpfdist://172.80.80.34:8088 /tmp/bs_cdr_gsm_loc*.csv. effective url: http://172.80.80.34:8088 /tmp/bs_cdr_gsm_loc*.csv. (seg2 slice1 sdw2:40000 pid=5257)
问题定位第一:IP定义的不对,第二就是ETL gpfdist没有启动
最后定位是外部表的定义gpfdist://172.80.80.34:8088 /tmp/bs_cdr_gsm_loc*.csv不正确
最后应该定义gpfdist://172.80.80.34:8088 /bs_cdr_gsm_loc*.csv
实验一:实验场景
1、ET主机上安装gpfdist协议:greenplum-clients-4.1.1.0-build-4-RHEL5-x86_64.zip ; greenplum-loaders-4.1.1.0-build-4-RHEL5-x86_64.zip
2.在master上创建外部表:
drop external table if exists BS_CDR_GSM_LOC_02_ext ;
create external table BS_CDR_GSM_LOC_02_ext
(
N_ROWS numeric(8),
SOURCE_TYPE VARCHAR(2),
CALL_TYPE numeric(3),
IMSI_numeric VARCHAR(15),
MSISDN VARCHAR(19),
OTHER_PARTY VARCHAR(11),
SDATE timestamp,
STAT_DATE numeric(8),
PERIOD_TIME numeric(2),
CALL_DURATION numeric(5),
DURATION60 numeric(3),
DURATION6 numeric(4),
MSRN VARCHAR(11),
MSC VARCHAR(10),
LAC VARCHAR(4),
CELL_ID VARCHAR(4),
OTHER_LAC VARCHAR(4),
OTHER_CELL_ID VARCHAR(2),
TRUNK_GROUPOUT VARCHAR(7),
TRUNK_GROUPIN VARCHAR(7),
FILE_NO VARCHAR(20),
STOP_CAUSE VARCHAR(1),
ORIGIN_NO VARCHAR(15),
DEAL_TIME VARCHAR(10),
AREA_ID numeric(7),
VISIT_AREA_ID numeric(7),
CALLED_AREA_ID numeric(7),
CALLED_VISIT_AREA_ID numeric(7),
PURVIEW_AREA_ID numeric(7),
ROAM_TYPE numeric(1),
EDGE_FLAG CHAR(1),
A_ASP numeric(1),
A_BRAND_ID char(2),
A_SERV_TYPE VARCHAR(2),
TERM_TYPE numeric(7),
B_SERV_TYPE VARCHAR(2),
B_HOME_TYPE CHAR(1),
OTHER_ASP numeric(2),
C_SERV_TYPE VARCHAR(2),
CARRIER_TYPE numeric(4),
LONG_TYPE numeric(9),
USER_ID numeric(16),
PAY_MODE char(1),
CHANNEL_NO VARCHAR(4),
CFEE numeric(7),
LFEE numeric(6),
OTHERFEE numeric(5),
REAL_CFEE numeric(7),
REAL_LFEE numeric(6),
REAL_OTHERFEE numeric(5),
FREETIME_ITEM numeric(3),
FREETIME numeric(6),
VPN_ID varchar(16),
VPN_FLAG CHAR(1),
FREE_CODE VARCHAR(40),
FREETIME_ITEM2 numeric(3),
FREETIME2 numeric(5),
FREETIME_ITEM3 numeric(3),
FREETIME3 numeric(5),
FREETIME_ITEM4 numeric(3),
FREETIME4 numeric(4),
FILE_NAME VARCHAR(36),
DAY_numeric numeric(2),
ORIGIN_NO_AREA_ID varchar(8),
ORIGIN_NO_ASP char(2),
ORIGIN_NO_TERM_TYPE varchar(7),
CDR_NO varchar(3),
B_BRAND_ID numeric(2),
B_SERVICE_TYPE2 CHAR(2),
FREE_CODE1 VARCHAR(10),
FREE_FEE1 numeric(5),
FREE_CODE2 VARCHAR(1),
FREE_FEE2 numeric(1),
FREE_CODE3 VARCHAR(1),
FREE_FEE3 numeric(1),
FREE_CODE4 VARCHAR(1),
FREE_FEE4 numeric(1),
CDR_TYPE numeric(1),
IMEI VARCHAR(16),
FIRST_CFEE numeric(7),
FIRST_LFEE numeric(6),
FIRST_OFEE numeric(5),
TPREMARK VARCHAR(89),
SERVICE_TYPE VARCHAR(3),
SERVICE_CODE VARCHAR(4),
RATE_IND CHAR(1)
)LOCATION(
'gpfdist://172.80.80.34:8088/bs_cdr_gsm_loc.csv'
)
FORMAT 'csv' (delimiter ',' null '')
ENCODING 'GB18030' ;
drop table if exists BS_CDR_GSM_LOC_02;
create table BS_CDR_GSM_LOC_02 ( like BS_CDR_GSM_LOC_02_ext)
with(appendonly=true,orientation=column,compresslevel=5,compresstype=zlib)
distributed by (MSISDN);