源数据情况
POC源数据为营销宽表测试数据。
总字段数 | 202个 | |
---|---|---|
其中:文本 | 98个 | |
数字 | 104个 | |
总行数 | 2000万条 | 20,007,391(IQ和GP相差条脏数据) |
表物理文件大小 | 2.4G |
数据加载
注1:iq数据加载方式为:BW到Sybase; 注2:GP数据加载方式为:IQ到TXT,GP加载外部表,GP加载实体表; 注3:仅测试了200条但数据大小和2000万一致2.4G,BW加载到GP;
加载项 | IQ | |
---|---|---|
BW到IQ | 418秒 | 为煌锦测试数据 |
注:由于hana权限来不及,poc采取从iq取数,如果从bw取性能会更好一点
加载项 | GP | |
---|---|---|
BW到GP | 420秒 | 注:只测试了BW到TXT200万条数据大小仍然是2.4G |
IQ到TXT | 300秒 | |
TXT到GP外部表 | 0秒 | |
外部表到实体表 | 1.7秒 |
实现方式说明,通过DS远程文件功能,连接GP服务器的ftp(DS也支持SFTP这个没测试)
附截图:
BW到GP外部表,数比之前的测试少。只有200万级但是数据大小仍然是2.4G。
BW到IQ
IQ到TXT
外部表到实体表
文件大小
数据聚合
GP为MPP架构,一般情况,量越大越复杂的关联运算优势越明显,越小越简单的运算单体架构数据库优势更明显。
聚合项 | IQ | GP |
---|---|---|
count | 39毫秒 | 897毫秒 |
sum | 190毫秒 | 939毫秒 |
distinct | 104毫秒 | 748毫秒 |
group by | 318毫秒 | 1.4秒 |
子查询 | 1.48秒 | 1.44秒 |
附截图:
count
sum
distinct
group by
子查询
硬件说明
由于poc部署的时候,没有注意硬件配置,master选用了15内存最差的硬件,如果采用32G内存,性能可能还有小幅提升。本次poc,gp一共三台虚拟机。
注意事项
本次POC,遇到最多的问题是数据格式问题,具体表现在两方面。
1.错误最大的问题,导致无法gp无法全量读取,是因为 字段里面有回车和换行符。2000万条数据里面大约有17条。就是这17条数据导致poc时间大幅增加。
解决办法样例:
REPLACE(REPLACE("/BIC/Z_SACFY",CHAR(10),''),CHAR(13),'')
2.字段类型和长度。由于字段很多,导致创建表的时候各种报错。经过实践有一个简单的办法。
解决办法:直接从ds里面的atl把sql拷贝出来修改。