转换(Transforms)
- class elasticsearch.client.TransformClient
To use this client, access
client.transform
from anElasticsearch
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)
human (bool | None)
pretty (bool | None)
- Return type:
- 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)
from_ (int | None)
human (bool | None)
pretty (bool | None)
- Return type:
- 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)
from_ (int | None)
human (bool | None)
pretty (bool | None)
- Return type:
- 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) – 转换的自由文本描述
frequency (str | Literal[-1] | ~typing.Literal[0] | None) – 当转换持续运行时,检查源索引变更的时间间隔。同时决定转换在搜索或索引时遇到临时故障的重试间隔。最小值为1秒,最大值为1小时
pivot (Mapping[str, Any] | None) – 透视方法通过聚合和分组数据来转换数据。这些对象定义分组字段和用于数据缩减的聚合
retention_policy (Mapping[str, Any] | None) – 为转换定义保留策略。符合定义条件的数据会从目标索引中删除
timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时前未收到响应,请求将失败并返回错误
error_trace (bool | None)
human (bool | None)
pretty (bool | None)
- Return type:
- 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_index
、index
和read
权限,对源索引拥有read
和view_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个字符且必须以字母数字开头和结尾
defer_validation (bool | None) – 创建转换时会进行一系列验证以确保成功。例如检查源索引是否存在以及目标索引不是源索引模式的一部分。可以使用此参数跳过检查,例如当源索引在转换创建后才存在时。启动转换时总会运行验证,但权限检查除外
description (str | None) – 转换的自由文本描述
frequency (str | Literal[-1] | ~typing.Literal[0] | None) – 当转换持续运行时,检查源索引变更的时间间隔。同时决定转换在搜索或索引时遇到临时故障的重试间隔。最小值为 1s,最大值为 1h
pivot (Mapping[str, Any] | None) – 透视方法通过聚合和分组数据来转换数据。这些对象定义分组字段和用于数据缩减的聚合
retention_policy (Mapping[str, Any] | None) – 为转换定义保留策略。符合定义条件的数据会从目标索引中删除
timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时前未收到响应,请求将失败并返回错误
error_trace (bool | None)
human (bool | None)
pretty (bool | None)
- Return type:
- 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)
human (bool | None)
pretty (bool | None)
- Return type:
- schedule_now_transform(*, transform_id, error_trace=None, filter_path=None, human=None, pretty=None, timeout=None)
立即调度转换任务开始运行。
立即运行转换任务处理数据。 调用此API后,转换任务会立即处理新数据, 而无需等待配置的频率间隔。API调用后, 除非在此期间再次调用API,否则转换任务将在
now + frequency
时再次处理。
- start_transform(*, transform_id, error_trace=None, filter_path=None, from_=None, human=None, pretty=None, timeout=None)
启动一个转换任务。
启动转换任务时,如果目标索引不存在则会创建它。
number_of_shards
设置为1
,auto_expand_replicas
设置为0-1
。如果是透视转换,它会从源索引和转换聚合中推断目标索引的映射定义。 如果目标索引中的字段来自脚本(如scripted_metric
或bucket_script
聚合), 除非存在索引模板,否则转换会使用动态映射。如果是最近值转换,它不会推断映射定义,而是使用动态映射。 要使用显式映射,应在启动转换前创建目标索引。或者可以创建索引模板,但不会影响透视转换中推断的映射。转换启动时会进行一系列验证以确保成功。如果在创建转换时延迟了验证, 这些验证会在启动时进行——除了权限检查。当启用Elasticsearch安全功能时, 转换会记住创建时用户的角色并使用这些相同角色。如果这些角色对源索引和目标索引没有所需权限, 转换在尝试未经授权的操作时会失败。
https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-transform-start-transform
- 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)
human (bool | None)
pretty (bool | None)
- Return type:
- 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需要拥有源索引的read
和view_index_metadata
权限。同时需要目标索引的index
和read
权限。当启用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) – 转换任务的自由文本描述。
frequency (str | Literal[-1] | ~typing.Literal[0] | None) – 当转换连续运行时检查源索引变更的间隔时间。 也决定了转换在搜索或索引时遇到临时故障的重试间隔。 最小值为1s,最大值为1h。
retention_policy (None | Mapping[str, Any]) – 定义转换的保留策略。 符合条件的数据会从目标索引中删除。
timeout (str | Literal[-1] | ~typing.Literal[0] | None) – 等待响应的超时时间。如果在超时到期前未收到响应, 则请求失败并返回错误。
error_trace (bool | None)
human (bool | None)
pretty (bool | None)
- Return type:
- 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