Rollup 索引

class elasticsearch.client.RollupClient

To use this client, access client.rollup from an Elasticsearch client. For example:

from elasticsearch import Elasticsearch

# Create the client instance
client = Elasticsearch(...)
# Use the rollup client
client.rollup.<method>(...)
delete_job(*, id, error_trace=None, filter_path=None, human=None, pretty=None)

删除一个汇总任务。

任务必须先停止才能被删除。 如果尝试删除一个已启动的任务,将会发生错误。 同样地,如果尝试删除一个不存在的任务,将会抛出异常。

重要提示:删除任务时,仅移除正在主动监控和汇总数据的进程。 该API不会删除任何先前已汇总的数据。 这是设计使然;用户可能希望对静态数据集进行汇总。 由于数据集是静态的,在完全汇总后就没有必要保留索引汇总任务(因为不会有新数据)。 因此可以删除任务,保留汇总数据用于分析。 如果希望同时移除汇总数据且汇总索引仅包含单个任务的数据,可以删除整个汇总索引。 如果汇总索引存储了多个任务的数据,必须针对汇总索引中该任务的标识符发起按查询删除。例如:

POST my_rollup_index/_delete_by_query
{
  "query": {
    "term": {
      "_rollup.id": "the_rollup_job_id"
    }
  }
}

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-delete-job

Parameters:
Return type:

ObjectApiResponse[Any]

get_jobs(*, id=None, error_trace=None, filter_path=None, human=None, pretty=None)

获取汇总任务信息。 获取汇总任务的配置、统计和状态。

注意:此API仅返回活跃(包括STARTEDSTOPPED状态)的任务。 如果一个任务被创建后运行了一段时间然后被删除,API不会返回其任何详细信息。 对于历史汇总任务的详情,汇总能力API可能更有用。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-get-jobs

Parameters:
  • id (str | None) – 汇总任务的标识符。如果是`_all`或省略,API 将返回所有汇总任务。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

get_rollup_caps(*, id=None, error_trace=None, filter_path=None, human=None, pretty=None)

获取汇总任务能力。 获取为特定索引或索引模式配置的任何汇总任务的能力。

此API很有用,因为汇总任务通常配置为仅从源索引汇总字段的子集。 此外,不同字段只能配置特定的聚合操作,导致功能子集取决于该配置。 此API允许您检查索引并确定:

  1. 该索引在集群中是否有相关联的汇总数据?
  2. 如果第一个问题的答案是肯定的,哪些字段被汇总了,可以执行哪些聚合操作,数据存储在何处?

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-get-rollup-caps

Parameters:
  • id (str | None) – 要返回汇总能力的索引、多个索引或索引模式。 `_all`可用于从所有任务获取汇总能力。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

get_rollup_index_caps(*, index, error_trace=None, filter_path=None, human=None, pretty=None)

获取汇总索引能力。 获取汇总索引内所有任务的汇总能力。 单个汇总索引可能存储多个汇总任务的数据,并且根据这些任务可能具有各种能力。此API允许您确定:

  • 哪些任务存储在索引(或通过模式指定的多个索引)中?
  • 哪些目标索引被汇总了,汇总中使用了哪些字段,每个任务可以执行哪些聚合操作?

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-get-rollup-index-caps

Parameters:
  • index (str | Sequence[str]) – 要检查汇总能力的数据流或索引。支持通配符 (*)表达式。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

put_job(*, id, cron=None, groups=None, index_pattern=None, page_size=None, rollup_index=None, error_trace=None, filter_path=None, headers=None, human=None, metrics=None, pretty=None, timeout=None, body=None)

创建汇总任务。

警告:从8.15.0版本开始,在没有汇总使用情况的集群中调用此API将失败,并显示关于汇总功能弃用和计划移除的消息。集群需要包含汇总任务或汇总索引才能允许此API运行。

汇总任务配置包含所有关于任务如何运行的详细信息,包括何时索引文档以及未来可以对汇总索引运行的查询。

任务配置有三个主要部分:关于任务的逻辑细节(例如cron计划)、用于分组的字段以及为每个分组收集的指标。

任务以STOPPED状态创建。可以使用启动汇总任务API来启动它们。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-put-job

Parameters:
  • id (str) – 汇总任务的标识符。可以是任何字母数字字符串 并唯一标识与汇总任务相关联的数据。 ID是持久的;它与汇总数据一起存储。如果创建 一个任务,让它运行一段时间,然后删除任务,该任务 汇总的数据仍与此任务ID相关联。不能创建具有相同 ID的新任务,因为这可能导致任务配置不匹配的问题。

  • cron (str | None) – 定义汇总任务执行间隔的cron字符串。当间隔触发时, 索引器尝试汇总索引模式中的数据。cron模式与 被汇总数据的时间间隔无关。例如,您可能希望创建文档的 每小时汇总,但仅按cron定义的每天午夜运行索引器。 cron模式的定义方式与Watcher cron计划相同。

  • groups (Mapping[str, Any] | None) – 定义为此汇总任务配置的分组字段和聚合操作。 这些字段随后可用于聚合到桶中。这些聚合和字段可以 以任何组合使用。将groups配置视为定义一组工具, 以后可以在聚合中使用这些工具来分区数据。与原始数据不同, 我们必须提前考虑可能使用哪些字段和聚合操作。汇总提供了足够的 灵活性,您只需确定需要哪些字段,而不需要 确定它们的使用顺序。

  • index_pattern (str | None) – 要汇总的索引或索引模式。支持通配符 模式(logstash-*)。任务尝试汇总整个索引或索引模式。

  • page_size (int | None) – 在汇总索引器的每次迭代中处理的桶结果数量。 较大的值通常执行更快,但处理期间需要更多内存。此值 对数据如何汇总没有影响;仅用于调整索引器的 速度或内存成本。

  • rollup_index (str | None) – 包含汇总结果的索引。该索引可以 与其他汇总任务共享。数据存储方式不会干扰 不相关的任务。

  • headers (Mapping[str, str | Sequence[str]] | None)

  • metrics (Sequence[Mapping[str, Any]] | None) – 定义每个分组元组要收集的指标。默认情况下, 仅为每个分组收集doc_counts。为了使汇总有用, 您通常会添加平均值、最小值、最大值等指标。指标是 按字段定义的,对于每个字段,您可以配置应收集 哪些指标。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待请求完成的超时时间。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

  • body (Dict[str, Any] | None)

Return type:

ObjectApiResponse[Any]

搜索汇总数据。 需要汇总搜索端点是因为在内部,汇总文档使用的数据结构与原始数据不同。 它将标准查询DSL重写为匹配汇总文档的格式,然后获取响应并将其重写回客户端根据原始查询期望的形式。

请求体支持常规搜索API的部分功能。 以下功能不可用:

size: 由于汇总处理的是预聚合数据,无法返回搜索结果,因此size必须设置为零或完全省略。 highlighter, suggestors, post_filter, profile, explain: 这些功能同样不允许使用。

有关使用汇总搜索API的更详细示例,包括仅查询汇总数据或结合汇总数据与实时数据,请参阅外部文档。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-rollup-search

Parameters:
  • index (str | Sequence[str]) – 用于限制请求的数据流和索引的逗号分隔列表。该参数有以下规则:* 必须指定至少一个数据流、索引或通配符表达式。目标可以包含汇总或非汇总索引。对于数据流,流的后备索引只能作为非汇总索引。省略参数或使用`_all`是不允许的。* 可以指定多个非汇总索引。* 只能指定一个汇总索引。如果提供多个,将引发异常。* 可以使用通配符表达式(*)。如果匹配多个汇总索引,将引发异常。但可以使用表达式匹配多个非汇总索引或数据流。

  • aggregations (Mapping[str, Mapping[str, Any]] | None) – 指定聚合。

  • aggs (Mapping[str, Mapping[str, Any]] | None) – 指定聚合。

  • query (Mapping[str, Any] | None) – 指定受某些限制的DSL查询。

  • rest_total_hits_as_int (bool | None) – 指示hits.total在rest搜索响应中应呈现为整数还是对象

  • size (int | None) – 如果设置必须为零,因为汇总处理的是预聚合数据。

  • typed_keys (bool | None) – 指定响应中聚合和建议器名称是否应带有各自类型的前缀

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

  • body (Dict[str, Any] | None)

Return type:

ObjectApiResponse[Any]

start_job(*, id, error_trace=None, filter_path=None, human=None, pretty=None)

启动汇总任务。 如果尝试启动不存在的任务,将引发异常。 如果尝试启动已启动的任务,则不会发生任何操作。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-start-job

Parameters:
  • id (str) – 汇总任务的标识符。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

stop_job(*, id, error_trace=None, filter_path=None, human=None, pretty=None, timeout=None, wait_for_completion=None)

停止汇总任务。 如果尝试停止不存在的任务,将引发异常。 如果尝试停止已停止的任务,则不会发生任何操作。

由于只有停止的任务才能被删除,因此阻塞API直到索引器完全停止可能很有用。 这是通过wait_for_completion查询参数和可选的超时来实现的。例如:

POST _rollup/job/sensor/_stop?wait_for_completion=true&timeout=10s

该参数会阻塞API调用,直到任务移至STOPPED状态或指定的时间过去。 如果指定时间过去而任务未移至STOPPED状态,将引发超时异常。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-rollup-stop-job

Parameters:
  • id (str) – 汇总任务的标识符。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 如果`wait_for_completion`为`true`,API在等待任务停止时会阻塞(最多)指定的持续时间。如果超过`timeout`时间,API会抛出超时异常。注意:即使发生超时,停止请求仍在处理中,最终会将任务移至STOPPED状态。超时仅意味着API调用本身在等待状态更改时超时。

  • wait_for_completion (bool | None) – 如果设置为`true`,会导致API阻塞直到索引器状态完全停止。如果设置为`false`,API立即返回,索引器在后台异步停止。

  • error_trace (bool | None)

  • filter_path (str | Sequence[str] | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]