ODPS source吞吐太低,建议升级到VVR >= 4.0.13。该版本添加了对odps tunnel压缩算法的设置功能,odps source表with参数里添加'compressAlgorithm' = 'snappy'将压缩算法设置为 snappy能较为有效地提升吞吐。
ODPS sink吞吐太低,优化odps tunnel如果下游可以接受failover时产生重复数据,首先建议改用streaming tunnel。升级到VVR>= 4.0.13,odps sink表的with参数里添加 'useStreamTunnel' = 'true'以使用streaming tunnel。如果坚持使用batch tunnel,首先检查每次checkpoint的时间是否太长(如果每3分钟一个checkpoint,一个 checkpoint做几十秒就是太长)。如果确认 checkpoint 时间太长,建议减少写入的 partition的数量(如果有多级partition,建议减少分级以减少 partition的种类),并适当延长checkpoint周期。优化flushVVR>= 4.0.14 对ODPS flush做了大量优化,如果可以,首先升级到VVR>= 4.0.14版本。另外,每次flush的大小太小,或 flush 太频繁也会降低odps sink的效率。VVR>= 4.0.14支持设置 flush 的大小和间隔。检查的with参数里是否有'batchSize'这一项,这是每次flush 的 bytes数。它的默认值是64 * 1024 * 1024(即 64MB),如果小于10MB建议调大。还有一个'flushIntervalMs'控制两次flush之间的间隔(毫秒),默认值为30000(即 30 秒),如有需要可以调大。升级到VVR>= 4.0.14之后还有一个'numFlushThreads'参数可以调节用于flush的线程数。默认值为1,可以调成 4,一般会有较大改善。优化压缩算法升级到VVR>= 4.0.13后,with参数里添加'compressAlgorithm' = 'snappy'将压缩算法设置为snappy能较为有效地提升吞吐。