ElasticFlow任务拓扑结构是典型的Source->Processor->Sink模型,计费单位是CU,一个CU对应虚拟的1核CPU和4G内存。您对增量任务和全量任务指定的计算资源,会全部分配给相应的任务。为了让Source、Processor和Sink能够达到最大吞吐量(没有瓶颈节点,不会反压),可以根据本文中的策略来平衡资源分配。

增量任务分配策略

  • 资源分配:各个节点和并发均匀分配(通常情况下5CU能够满足1000QPS)。
  • 在Source节点:DTS采用单并发策略,即只有一个并发。LogService会根据Shard来控制并发。
  • 在Sink节点:Sink节点单并发向目标Elasticsearch发送数据。

全量任务分配策略

  • 资源分配:根据数据源和Elasticsearch的index动态计算。通常当资源量在20~200CU时,能够在2小时内建立100G数据的index。
  • 在Source节点:MaxCompute数据源中的数据会被水平切分成多个并发。RDS考虑到数据一致性采用单并发策略,即只有一个并发。
  • 在Sink节点:最大限度满足资源需求,同时考虑index的partition数量。