一个针对Python的自以为是的Elasticsearch批量索引器。
pyesbulk的Python项目详细描述
批量生产
Pythonelasticsearch
客户机put_template()
、streaming_bulk()
和{
此库旨在跨各种版本的
elasticsearch Python模块和elasticsearch服务器的
动态标识用于创建Elasticsearch
对象的模块。在
这些名称可用于导入:
- 在
put_template
使用指定的将文档模板推送到服务器 Elasticsearch对象。此模块将确定 已存在同名和版本的模板文档 存在,如果不存在,则放入新模板。在
参数:
es
:一个Elasticsearch
类的实例。在name
:模板的名称。在mapping_name
:模板中使用的映射的名称。在body
:模板的有效负载主体。在
返回:一个元组(开始时间、结束时间、重试计数、错误键)
在 - 在
streaming_bulk
将多个源文档推送到Elasticsearch索引, 使用正确的错误处理和重试逻辑。在
参数:
- “es”:一个
Elasticsearch
类的实例。在 actions
:Elasticsearch动作记录的iterable(直接传递给Elasticsearch)。在errorsfp
:记录http400错误的文件指针。在logger
:可以记录消息的Logger
对象。在
返回:一个元组(开始时间、结束时间、成功索引、复制、失败、重试计数)。在
在 - “es”:一个
- 在
parallel_bulk
将多个源文档推送到Elasticsearch索引 在多个线程之间并行,使用适当的错误 处理并重试逻辑。在
参数:
es
:一个Elasticsearch
类的实例。在actions
:Elasticsearch动作记录的iterable (直接传递给Elasticsearch)errorsfp
:记录http400错误的文件指针。在logger
:可以记录消息的Logger
对象。在chunk_size=10000000
:一个块中发送到Elasticsearch的文档数。在max_chunk_bytes=104857600
:请求的最大大小。在thread_count=8
:要使用的线程池的大小。在queue_size=4
:控制器和处理线程之间的任务队列的大小。在
返回:一个元组(开始时间、结束时间、成功索引、复制、失败、重试计数)
在 - 在
TemplateException
当 模板文档不包含所需的版本 元数据(
在{"_meta": {"version": <integer>}}
);或者,当 一个调用中包含多个模板文档 如果这些文档的版本是 不完全相同。在
单元测试支持
pyesbulk
包尝试动态确定
Python模块用于生成传入Elasticsearch
方法的Elasticsearch
对象。为了正确解析错误处理和重试逻辑的异常类,这是必需的。在
然而,单元测试通常使用模拟对象
不会有“真正的”Python包结构,而且
模块识别算法可能失败。当这种情况发生时,
pyesbulk
将尝试导入elasticsearch
。如果不正确(例如,如果使用elasticsearch1
或者elasticsearch5
),您可以覆盖自动搜索
通过在上包含force_elastic_search_module
属性
模拟的Elasticsearch
对象。在
例如
class MockElasticsearch:
def __init__(self):
self.force_elastic_search_module = "elasticsearch5"
或者
^{pr2}$另请参见https://pypi.org/project/pyesbulk/。在
- 项目
标签: