Redshift插入瓶颈

Hel*_*lad 1 postgresql pentaho amazon-web-services kettle amazon-redshift

我试图将一个巨大的表从postgres迁移到Redshift.

  1. 该表的大小约为5,697,213,832

  2. 工具:pentaho Kettle表输入(来自postgres) - >表输出(Redshift)

  3. 使用Redshift JDBC4连接

通过观察我发现插入Redshift是瓶颈.只有大约500行/秒.

有没有办法加速在单机模式下插入Redshift?喜欢使用JDBC参数?

vtu*_*tan 15

您是否考虑将S3用作中间层?

将数据转储到csv文件并应用gzip压缩.将文件上载到S3,然后使用copy命令加载数据.

http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html


Ris*_*shu 9

我考虑的是红移性能瓶颈的主要原因是Redshift将每个对集群的命中视为一个单一查询.它在其集群上执行每个查询,然后进入下一阶段.现在,当我发送多行(在本例中为10)时,每行数据都被视为一个单独的查询.Redshift逐个执行每个查询,并在执行所有查询后完成数据加载.这意味着如果您有1亿行,那么Redshift群集上将运行1亿个查询.那么性能就好了!

PDI中使用S3 File Output步骤将数据加载到S3 Bucket,然后在redshift群集上应用COPY命令以从S3读取相同的数据到Redshift.这将解决您的性能问题.

您还可以阅读以下博客链接:

  1. 使用PDI将数据加载到AWS S3
  2. 从S3读取数据到Redshift

希望这可以帮助 :)