源数据情况

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。image.png

BW到IQ

image.png

IQ到TXT

image.png

外部表到实体表

image.png

文件大小

image.png

数据聚合

GP为MPP架构,一般情况,量越大越复杂的关联运算优势越明显,越小越简单的运算单体架构数据库优势更明显。

聚合项 IQ GP
count 39毫秒 897毫秒
sum 190毫秒 939毫秒
distinct 104毫秒 748毫秒
group by 318毫秒 1.4秒
子查询 1.48秒 1.44秒

附截图:

count

image.png
image.png

sum

image.png
image.png

distinct

image.png
image.png

group by

image.png
image.png

子查询

image.png
image.png

硬件说明

由于poc部署的时候,没有注意硬件配置,master选用了15内存最差的硬件,如果采用32G内存,性能可能还有小幅提升。本次poc,gp一共三台虚拟机。

注意事项

本次POC,遇到最多的问题是数据格式问题,具体表现在两方面。

1.错误最大的问题,导致无法gp无法全量读取,是因为 字段里面有回车和换行符。2000万条数据里面大约有17条。就是这17条数据导致poc时间大幅增加。
解决办法样例:

  1. REPLACE(REPLACE("/BIC/Z_SACFY",CHAR(10),''),CHAR(13),'')

2.字段类型和长度。由于字段很多,导致创建表的时候各种报错。经过实践有一个简单的办法。
解决办法:直接从ds里面的atl把sql拷贝出来修改。