转换(Transforms)

class elasticsearch.client.TransformClient

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

from elasticsearch import Elasticsearch

# Create the client instance
client = Elasticsearch(...)
# Use the transform client
client.transform.<method>(...)
delete_transform(*, transform_id, delete_dest_index=None, error_trace=None, filter_path=None, force=None, human=None, pretty=None, timeout=None)

删除一个转换。

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

Parameters:
  • transform_id (str) – 转换的唯一标识符。

  • delete_dest_index (bool | None) – 如果为 true,目标索引会随转换一起删除。如果为 false,目标索引不会被删除

  • force (bool | None) – 如果为 false,转换必须停止后才能删除。如果为 true,无论转换当前状态如何都会被删除

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时前未收到响应,请求将失败并返回错误

  • error_trace (bool | None)

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

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

get_transform(*, transform_id=None, allow_no_match=None, error_trace=None, exclude_generated=None, filter_path=None, from_=None, human=None, pretty=None, size=None)

获取转换。 获取转换的配置信息。

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

Parameters:
  • transform_id (str | Sequence[str] | None) – 转换的标识符。可以是转换标识符或通配符表达式。使用 _all、指定 * 作为 <transform_id> 或省略 <transform_id> 可获取所有转换信息

  • allow_no_match (bool | None) – 指定当请求出现以下情况时的处理方式:1.包含通配符表达式但没有匹配的转换 2.包含 _all 字符串或无标识符但没有匹配项 3.包含通配符表达式但只有部分匹配。如果此参数为 false,当没有匹配或只有部分匹配时请求会返回 404 状态码

  • exclude_generated (bool | None) – 排除创建转换时自动添加的字段。这使得配置能以可接受的格式被检索并添加到其他集群

  • from – 跳过指定数量的转换

  • size (int | None) – 指定要获取的最大转换数量

  • error_trace (bool | None)

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

  • from_ (int | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

get_transform_stats(*, transform_id, allow_no_match=None, error_trace=None, filter_path=None, from_=None, human=None, pretty=None, size=None, timeout=None)

获取转换统计信息。

获取转换的使用信息。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-get-transform-stats

Parameters:
  • transform_id (str | Sequence[str]) – 转换的标识符。可以是转换标识符或通配符表达式。使用 _all、指定 * 作为 <transform_id> 或省略 <transform_id> 可获取所有转换信息

  • allow_no_match (bool | None) – 指定当请求出现以下情况时的处理方式:1.包含通配符表达式但没有匹配的转换 2.包含 _all 字符串或无标识符但没有匹配项 3.包含通配符表达式但只有部分匹配。如果此参数为 false,当没有匹配或只有部分匹配时请求会返回 404 状态码

  • from – 跳过指定数量的转换

  • size (int | None) – 指定要获取的最大转换数量

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 控制等待统计信息的超时时间

  • error_trace (bool | None)

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

  • from_ (int | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

preview_transform(*, transform_id=None, description=None, dest=None, error_trace=None, filter_path=None, frequency=None, human=None, latest=None, pivot=None, pretty=None, retention_policy=None, settings=None, source=None, sync=None, timeout=None, body=None)

预览转换。 生成与相同配置创建转换时将获得的结果预览。

它最多返回 100 条结果。计算基于源索引中的所有当前数据。同时会生成目标索引的映射和设置列表。这些值根据源索引的字段类型和转换聚合确定。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-preview-transform

Parameters:
  • transform_id (str | None) – 要预览的转换标识符。如果指定此路径参数,则不能在请求体中提供转换配置详情

  • description (str | None) – 转换的自由文本描述

  • dest (Mapping[str, Any] | None) – 转换的目标

  • frequency (str | Literal[-1] | ~typing.Literal[0] | None) – 当转换持续运行时,检查源索引变更的时间间隔。同时决定转换在搜索或索引时遇到临时故障的重试间隔。最小值为1秒,最大值为1小时

  • latest (Mapping[str, Any] | None) – 最新方法通过为每个唯一键查找最新文档来转换数据

  • pivot (Mapping[str, Any] | None) – 透视方法通过聚合和分组数据来转换数据。这些对象定义分组字段和用于数据缩减的聚合

  • retention_policy (Mapping[str, Any] | None) – 为转换定义保留策略。符合定义条件的数据会从目标索引中删除

  • settings (Mapping[str, Any] | None) – 定义可选的转换设置

  • source (Mapping[str, Any] | None) – 转换的数据源

  • sync (Mapping[str, Any] | None) – 定义转换持续运行所需的属性

  • 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]

put_transform(*, transform_id, dest=None, source=None, defer_validation=None, description=None, error_trace=None, filter_path=None, frequency=None, human=None, latest=None, meta=None, pivot=None, pretty=None, retention_policy=None, settings=None, sync=None, timeout=None, body=None)

创建转换。 创建一个转换。

转换从源索引复制数据,转换后将其持久化到一个以实体为中心的目标索引。你也可以将目标索引视为二维表格数据结构(称为数据框)。数据框中每个文档的ID由实体的哈希生成,因此每个实体对应唯一行。

必须为转换选择最新方法或透视方法,不能在单个转换中同时使用两者。如果选择透视方法,实体由透视对象中的 group_by 字段集合定义。如果选择最新方法,实体由最新对象中的 unique_key 字段值定义。

必须对目标索引拥有 create_indexindexread 权限,对源索引拥有 readview_index_metadata 权限。当启用Elasticsearch安全功能时,转换会记住创建时用户的角色并使用相同角色。如果这些角色对源和目标索引没有所需权限,转换在尝试未授权操作时会失败。

注意:必须使用Kibana或此API创建转换。不要直接使用Elasticsearch索引API向任何 .transform-internal* 索引添加转换。如果启用了Elasticsearch安全功能,不要给用户任何 .transform-internal* 索引的权限。如果在7.5之前使用过转换,也不要给用户任何 .data-frame-internal* 索引的权限。

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

Parameters:
  • transform_id (str) – 转换的标识符。可包含小写字母数字字符(a-z和0-9)、连字符和下划线。最多64个字符且必须以字母数字开头和结尾

  • dest (Mapping[str, Any] | None) – 转换的目标

  • source (Mapping[str, Any] | None) – 转换的数据源

  • defer_validation (bool | None) – 创建转换时会进行一系列验证以确保成功。例如检查源索引是否存在以及目标索引不是源索引模式的一部分。可以使用此参数跳过检查,例如当源索引在转换创建后才存在时。启动转换时总会运行验证,但权限检查除外

  • description (str | None) – 转换的自由文本描述

  • frequency (str | Literal[-1] | ~typing.Literal[0] | None) – 当转换持续运行时,检查源索引变更的时间间隔。同时决定转换在搜索或索引时遇到临时故障的重试间隔。最小值为 1s,最大值为 1h

  • latest (Mapping[str, Any] | None) – 最新方法通过为每个唯一键查找最新文档来转换数据

  • meta (Mapping[str, Any] | None) – 定义可选的转换元数据

  • pivot (Mapping[str, Any] | None) – 透视方法通过聚合和分组数据来转换数据。这些对象定义分组字段和用于数据缩减的聚合

  • retention_policy (Mapping[str, Any] | None) – 为转换定义保留策略。符合定义条件的数据会从目标索引中删除

  • settings (Mapping[str, Any] | None) – 定义可选的转换设置

  • sync (Mapping[str, Any] | None) – 定义转换持续运行所需的属性

  • 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]

reset_transform(*, transform_id, error_trace=None, filter_path=None, force=None, human=None, pretty=None, timeout=None)

重置一个转换任务。

在重置之前必须先停止该任务;或者使用force查询参数强制重置。 如果目标索引是由该转换创建的,则该索引会被删除。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-reset-transform

Parameters:
  • transform_id (str) – 转换任务的标识符。该标识符可包含 小写字母数字字符(a-z和0-9)、连字符和下划线。 长度限制为64个字符,且必须以字母数字字符开头和结尾。

  • force (bool | None) – 如果为`true`,则无论当前状态如何都会重置转换任务。 如果为`false`,则必须在停止转换任务后才能重置。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时到期前未收到响应, 则请求失败并返回错误。

  • error_trace (bool | None)

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

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

schedule_now_transform(*, transform_id, error_trace=None, filter_path=None, human=None, pretty=None, timeout=None)

立即调度转换任务开始运行。

立即运行转换任务处理数据。 调用此API后,转换任务会立即处理新数据, 而无需等待配置的频率间隔。API调用后, 除非在此期间再次调用API,否则转换任务将在now + frequency时再次处理。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-schedule-now-transform

Parameters:
  • transform_id (str) – 转换任务的标识符。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 控制等待调度执行的时间

  • error_trace (bool | None)

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

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

start_transform(*, transform_id, error_trace=None, filter_path=None, from_=None, human=None, pretty=None, timeout=None)

启动一个转换任务。

启动转换任务时,如果目标索引不存在则会创建它。number_of_shards设置为1auto_expand_replicas设置为0-1。如果是透视转换,它会从源索引和转换聚合中推断目标索引的映射定义。 如果目标索引中的字段来自脚本(如scripted_metricbucket_script聚合), 除非存在索引模板,否则转换会使用动态映射。如果是最近值转换,它不会推断映射定义,而是使用动态映射。 要使用显式映射,应在启动转换前创建目标索引。或者可以创建索引模板,但不会影响透视转换中推断的映射。

转换启动时会进行一系列验证以确保成功。如果在创建转换时延迟了验证, 这些验证会在启动时进行——除了权限检查。当启用Elasticsearch安全功能时, 转换会记住创建时用户的角色并使用这些相同角色。如果这些角色对源索引和目标索引没有所需权限, 转换在尝试未经授权的操作时会失败。

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

Parameters:
  • transform_id (str) – 转换任务的标识符。

  • from – 将转换实体限制为在此时间之后更改的实体。支持相对时间如now-30d。 仅适用于连续转换。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时到期前未收到响应, 则请求失败并返回错误。

  • error_trace (bool | None)

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

  • from_ (str | None)

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]

stop_transform(*, transform_id, allow_no_match=None, error_trace=None, filter_path=None, force=None, human=None, pretty=None, timeout=None, wait_for_checkpoint=None, wait_for_completion=None)

停止转换任务。 停止一个或多个转换任务。

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

Parameters:
  • transform_id (str) – 转换任务的标识符。要停止多个转换任务, 可使用逗号分隔列表或通配符表达式。要停止所有转换任务, 可使用`_all`或`*`作为标识符。

  • allow_no_match (bool | None) – 指定当请求包含通配符表达式但没有匹配的转换任务时, 或包含`_all`字符串或无标识符且没有匹配项时, 或包含通配符表达式但只有部分匹配时的处理方式。如果为true, 当没有匹配项时API返回成功确认消息。当只有部分匹配时, API会停止相应的转换任务。如果为false,当没有匹配或只有部分匹配时, 请求返回404状态码。

  • force (bool | None) – 如果为true,API会强制停止转换任务。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 当`wait_for_completion`为`true`时等待响应的超时时间。 如果在超时到期前未收到响应,请求会返回超时异常。 但请求会继续处理并最终将转换任务移至STOPPED状态。

  • wait_for_checkpoint (bool | None) – 如果为true,转换任务直到当前检查点完成才会完全停止。 如果为false,转换任务会尽快停止。

  • 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]

update_transform(*, transform_id, defer_validation=None, description=None, dest=None, error_trace=None, filter_path=None, frequency=None, human=None, meta=None, pretty=None, retention_policy=None, settings=None, source=None, sync=None, timeout=None, body=None)

更新转换任务。 更新转换任务的某些属性。

description外,所有更新的属性在转换任务开始下一个检查点后才会生效, 从而保证每个检查点的数据一致性。使用此API需要拥有源索引的readview_index_metadata 权限。同时需要目标索引的indexread权限。当启用Elasticsearch安全功能时, 转换会记住更新时用户的角色并使用这些权限运行。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-update-transform

Parameters:
  • transform_id (str) – 转换任务的标识符。

  • defer_validation (bool | None) – 当为true时,不运行可延迟的验证。 如果源索引在创建转换后才存在,可能需要此行为。

  • description (str | None) – 转换任务的自由文本描述。

  • dest (Mapping[str, Any] | None) – 转换任务的目标配置。

  • frequency (str | Literal[-1] | ~typing.Literal[0] | None) – 当转换连续运行时检查源索引变更的间隔时间。 也决定了转换在搜索或索引时遇到临时故障的重试间隔。 最小值为1s,最大值为1h。

  • meta (Mapping[str, Any] | None) – 定义可选的转换元数据。

  • retention_policy (None | Mapping[str, Any]) – 定义转换的保留策略。 符合条件的数据会从目标索引中删除。

  • settings (Mapping[str, Any] | None) – 定义可选的转换设置。

  • source (Mapping[str, Any] | None) – 转换任务的数据源配置。

  • sync (Mapping[str, Any] | None) – 定义转换连续运行所需的属性。

  • 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]

upgrade_transforms(*, dry_run=None, error_trace=None, filter_path=None, human=None, pretty=None, timeout=None)

升级所有转换任务。

转换任务在次要版本之间以及受支持的主要版本之间是兼容的。 然而随着时间的推移,转换任务配置信息的格式可能会发生变化。 此API会识别使用旧版配置格式的转换任务,并将其升级到最新版本。 同时还会清理存储转换状态和检查点的内部数据结构。 升级不会影响源索引和目标索引。 当Elasticsearch安全功能启用时,升级也不会影响转换任务使用的角色;用于读取源数据和写入目标索引的角色保持不变。

如果转换任务升级步骤失败,升级将停止并返回关于根本问题的错误信息。 解决问题后需重新运行升级流程。 升级完成后会返回摘要信息。

为确保在集群进行主要版本升级期间(例如从7.16升级到8.0)连续转换任务能持续运行,建议在升级集群前先升级转换任务。 升级前建议执行最新的集群备份。

https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-upgrade-transforms

Parameters:
  • dry_run (bool | None) – 为true时,请求仅检查更新而不执行。

  • timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时到期前未收到响应, 请求将失败并返回错误。

  • error_trace (bool | None)

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

  • human (bool | None)

  • pretty (bool | None)

Return type:

ObjectApiResponse[Any]