我想问一下大家是如何对 greenplum的数据 进行实时写入的
我现在用的是使用sparkstreaming的方式,15S写入一次,采用微批量的方式从kafka拉取数据,通过copyin的方式写入到greenplum。
但是发现有2个问题:
1,copyin的方式效率一般,因为copyin的数据从master走的,速度在每秒2000左右
表是行表,greenplum的节点18个。
2,如果对这个写入的表有个大的查询动作,就会发现写入速度会下降,我的微批量可能堆积。
我想问一下大家是如何对 greenplum的数据 进行实时写入的
我现在用的是使用sparkstreaming的方式,15S写入一次,采用微批量的方式从kafka拉取数据,通过copyin的方式写入到greenplum。
但是发现有2个问题:
1,copyin的方式效率一般,因为copyin的数据从master走的,速度在每秒2000左右
表是行表,greenplum的节点18个。
2,如果对这个写入的表有个大的查询动作,就会发现写入速度会下降,我的微批量可能堆积。
COPY 应该不是瓶颈。COPY 的速度远比你想象的要快。你可以考虑一下,数据表上是否有索引?索引列是什么类型?CheckPoint 多久做一次? checkpoint后索引写入的时候是否因为 full page writes 引发了写膨胀,最后导致了 segment 的磁盘成为瓶颈?