前言
- 本文对 Elasticsearch 7.17 有效
- 梳理 Elasticsearch Python 客户端的异步批量写入
官方文档
解读
qbit
开始对stats_only
和raise_on_error
参数的用法有些迷惑- 下面是研究后的解读
- 默认返回成功写入的数据条数和错误列表
- 如果
stats_only
设置为True
,返回写入成功的条数和失败的条数 raise_on_error
默认值为True
,也就是如果有错误数据,默认会抛出异常,应用程序不能得到成功写入的数量和错误列表(client 自身有记录)- 无论这两个参数怎么设置,都会把所有正常数据写入到ES,错误数据记录到
errors
列表 - 有大量错误数据时,
errors
列表会占用大量内存,建议使用async_streaming_bulk
函数
组合
stats_only
=False
AND raise_on_error
=True
(默认)
无异常数据时,返回得到成功写入条数和空的错误列表
success, []
- 有异常数据时,抛出异常,不能得到返回值
stats_only
=False
AND raise_on_error
=False
无异常数据时,返回得到写入成功的条数和空的错误列表(空)
success, []
有异常数据时,返回得到写入成功条数和写入失败的错误列表(非空)
success, [1,2,3...]
stats_only
=True
AND raise_on_error
=True
无异常数据时,返回得到写入成功条数和写入失败的条数(0)
success, 0
- 有异常数据时,抛出异常,不能得到返回值
stats_only
=True
AND raise_on_error
=False
无异常数据时,返回得到写入成功条数和写入失败的条数(0)
success, 0
有异常数据时,不抛出异常,返回得到写入成功条数和写入失败的条数(大于0)
success, failed
本文出自 qbit snap
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。