【问题标题】:lambda c# function timeout inserting records in elasticsearchlambda c#函数超时在elasticsearch中插入记录
【发布时间】:2018-02-15 00:11:52
【问题描述】:

我必须使用 lambda 函数将一百万条记录插入到 elasticsearch 中。但是,我遇到了这个超时问题......查询需要超过 5 分钟,这是运行 lambda 的限制。我只插入 800.000 一样多。我已经在 lambda 的配置中增加了内存和进程的所有参数。

您看到了哪些解决方案?

【问题讨论】:

  • 你可以增加你的ES集群的大小,你可以做并行批量请求,也可以小批量处理。
  • 您还可以试验批量请求的大小,看看哪种方式最适合您的 ES 配置。 (我假设您使用的是批量 API——如果不是,您绝对应该这样做。)

标签: c# elasticsearch lambda timeout


【解决方案1】:

我还没有评论的声誉,所以我不能给出答案。

将您的记录分页成更小的块。并对每个块执行 lambda。

例如,如果您的记录存储在列表中,您可以使用 LinQ 执行以下操作。

var records = getRecords()

// while there are still records to process
While( records.count > 0){

// get first 100 items in list.
var chunk = records.take(100) 

// remove items from 0 to 99 - so the first 100
records.removeRange(0,99) 

lambdafunction(chunk) // do lambda on chunk
}

【讨论】:

  • 您可以通过将块传递给执行 lambda 的异步任务来进一步提高性能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 2011-02-15
  • 2020-11-17
  • 2017-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多