- Elasticsearch 指南其他版本
- 8.17 中的新功能
- Elasticsearch 基础
- 快速入门
- 设置 Elasticsearch
- 升级 Elasticsearch
- 索引模块
- 映射
- 文本分析
- 索引模板
- 数据流
- 摄取管道
- 别名
- 搜索您的数据
- 重新排名
- 查询 DSL
- 聚合
- 地理空间分析
- 连接器
- EQL
- ES|QL
- SQL
- 脚本
- 数据管理
- 自动缩放
- 监视集群
- 汇总或转换数据
- 设置高可用性集群
- 快照和还原
- 保护 Elastic Stack 的安全
- Watcher
- 命令行工具
- elasticsearch-certgen
- elasticsearch-certutil
- elasticsearch-create-enrollment-token
- elasticsearch-croneval
- elasticsearch-keystore
- elasticsearch-node
- elasticsearch-reconfigure-node
- elasticsearch-reset-password
- elasticsearch-saml-metadata
- elasticsearch-service-tokens
- elasticsearch-setup-passwords
- elasticsearch-shard
- elasticsearch-syskeygen
- elasticsearch-users
- 优化
- 故障排除
- 修复常见的集群问题
- 诊断未分配的分片
- 向系统中添加丢失的层
- 允许 Elasticsearch 在系统中分配数据
- 允许 Elasticsearch 分配索引
- 索引将索引分配过滤器与数据层节点角色混合,以在数据层之间移动
- 没有足够的节点来分配所有分片副本
- 单个节点上索引的分片总数已超过
- 每个节点的分片总数已达到
- 故障排除损坏
- 修复磁盘空间不足的数据节点
- 修复磁盘空间不足的主节点
- 修复磁盘空间不足的其他角色节点
- 启动索引生命周期管理
- 启动快照生命周期管理
- 从快照恢复
- 故障排除损坏的存储库
- 解决重复的快照策略失败问题
- 故障排除不稳定的集群
- 故障排除发现
- 故障排除监控
- 故障排除转换
- 故障排除 Watcher
- 故障排除搜索
- 故障排除分片容量健康问题
- 故障排除不平衡的集群
- 捕获诊断信息
- REST API
- API 约定
- 通用选项
- REST API 兼容性
- 自动缩放 API
- 行为分析 API
- 紧凑和对齐文本 (CAT) API
- 集群 API
- 跨集群复制 API
- 连接器 API
- 数据流 API
- 文档 API
- 丰富 API
- EQL API
- ES|QL API
- 功能 API
- Fleet API
- 图表探索 API
- 索引 API
- 别名是否存在
- 别名
- 分析
- 分析索引磁盘使用量
- 清除缓存
- 克隆索引
- 关闭索引
- 创建索引
- 创建或更新别名
- 创建或更新组件模板
- 创建或更新索引模板
- 创建或更新索引模板(旧版)
- 删除组件模板
- 删除悬挂索引
- 删除别名
- 删除索引
- 删除索引模板
- 删除索引模板(旧版)
- 存在
- 字段使用情况统计信息
- 刷新
- 强制合并
- 获取别名
- 获取组件模板
- 获取字段映射
- 获取索引
- 获取索引设置
- 获取索引模板
- 获取索引模板(旧版)
- 获取映射
- 导入悬挂索引
- 索引恢复
- 索引段
- 索引分片存储
- 索引统计信息
- 索引模板是否存在(旧版)
- 列出悬挂索引
- 打开索引
- 刷新
- 解析索引
- 解析集群
- 翻转
- 收缩索引
- 模拟索引
- 模拟模板
- 拆分索引
- 解冻索引
- 更新索引设置
- 更新映射
- 索引生命周期管理 API
- 推理 API
- 信息 API
- 摄取 API
- 许可 API
- Logstash API
- 机器学习 API
- 机器学习异常检测 API
- 机器学习数据帧分析 API
- 机器学习训练模型 API
- 迁移 API
- 节点生命周期 API
- 查询规则 API
- 重新加载搜索分析器 API
- 存储库计量 API
- 汇总 API
- 根 API
- 脚本 API
- 搜索 API
- 搜索应用程序 API
- 可搜索快照 API
- 安全 API
- 身份验证
- 更改密码
- 清除缓存
- 清除角色缓存
- 清除权限缓存
- 清除 API 密钥缓存
- 清除服务帐户令牌缓存
- 创建 API 密钥
- 创建或更新应用程序权限
- 创建或更新角色映射
- 创建或更新角色
- 批量创建或更新角色 API
- 批量删除角色 API
- 创建或更新用户
- 创建服务帐户令牌
- 委托 PKI 身份验证
- 删除应用程序权限
- 删除角色映射
- 删除角色
- 删除服务帐户令牌
- 删除用户
- 禁用用户
- 启用用户
- 注册 Kibana
- 注册节点
- 获取 API 密钥信息
- 获取应用程序权限
- 获取内置权限
- 获取角色映射
- 获取角色
- 查询角色
- 获取服务帐户
- 获取服务帐户凭据
- 获取安全设置
- 获取令牌
- 获取用户权限
- 获取用户
- 授予 API 密钥
- 具有权限
- 使 API 密钥失效
- 使令牌失效
- OpenID Connect 准备身份验证
- OpenID Connect 身份验证
- OpenID Connect 注销
- 查询 API 密钥信息
- 查询用户
- 更新 API 密钥
- 更新安全设置
- 批量更新 API 密钥
- SAML 准备身份验证
- SAML 身份验证
- SAML 注销
- SAML 失效
- SAML 完成注销
- SAML 服务提供商元数据
- SSL 证书
- 激活用户配置文件
- 禁用用户配置文件
- 启用用户配置文件
- 获取用户配置文件
- 建议用户配置文件
- 更新用户配置文件数据
- 具有用户配置文件权限
- 创建跨集群 API 密钥
- 更新跨集群 API 密钥
- 快照和还原 API
- 快照生命周期管理 API
- SQL API
- 同义词 API
- 文本结构 API
- 转换 API
- 使用情况 API
- Watcher API
- 定义
- 迁移指南
- 发行说明
- Elasticsearch 版本 8.17.0
- Elasticsearch 版本 8.16.1
- Elasticsearch 版本 8.16.0
- Elasticsearch 版本 8.15.5
- Elasticsearch 版本 8.15.4
- Elasticsearch 版本 8.15.3
- Elasticsearch 版本 8.15.2
- Elasticsearch 版本 8.15.1
- Elasticsearch 版本 8.15.0
- Elasticsearch 版本 8.14.3
- Elasticsearch 版本 8.14.2
- Elasticsearch 版本 8.14.1
- Elasticsearch 版本 8.14.0
- Elasticsearch 版本 8.13.4
- Elasticsearch 版本 8.13.3
- Elasticsearch 版本 8.13.2
- Elasticsearch 版本 8.13.1
- Elasticsearch 版本 8.13.0
- Elasticsearch 版本 8.12.2
- Elasticsearch 版本 8.12.1
- Elasticsearch 版本 8.12.0
- Elasticsearch 版本 8.11.4
- Elasticsearch 版本 8.11.3
- Elasticsearch 版本 8.11.2
- Elasticsearch 版本 8.11.1
- Elasticsearch 版本 8.11.0
- Elasticsearch 版本 8.10.4
- Elasticsearch 版本 8.10.3
- Elasticsearch 版本 8.10.2
- Elasticsearch 版本 8.10.1
- Elasticsearch 版本 8.10.0
- Elasticsearch 版本 8.9.2
- Elasticsearch 版本 8.9.1
- Elasticsearch 版本 8.9.0
- Elasticsearch 版本 8.8.2
- Elasticsearch 版本 8.8.1
- Elasticsearch 版本 8.8.0
- Elasticsearch 版本 8.7.1
- Elasticsearch 版本 8.7.0
- Elasticsearch 版本 8.6.2
- Elasticsearch 版本 8.6.1
- Elasticsearch 版本 8.6.0
- Elasticsearch 版本 8.5.3
- Elasticsearch 版本 8.5.2
- Elasticsearch 版本 8.5.1
- Elasticsearch 版本 8.5.0
- Elasticsearch 版本 8.4.3
- Elasticsearch 版本 8.4.2
- Elasticsearch 版本 8.4.1
- Elasticsearch 版本 8.4.0
- Elasticsearch 版本 8.3.3
- Elasticsearch 版本 8.3.2
- Elasticsearch 版本 8.3.1
- Elasticsearch 版本 8.3.0
- Elasticsearch 版本 8.2.3
- Elasticsearch 版本 8.2.2
- Elasticsearch 版本 8.2.1
- Elasticsearch 版本 8.2.0
- Elasticsearch 版本 8.1.3
- Elasticsearch 版本 8.1.2
- Elasticsearch 版本 8.1.1
- Elasticsearch 版本 8.1.0
- Elasticsearch 版本 8.0.1
- Elasticsearch 版本 8.0.0
- Elasticsearch 版本 8.0.0-rc2
- Elasticsearch 版本 8.0.0-rc1
- Elasticsearch 版本 8.0.0-beta1
- Elasticsearch 版本 8.0.0-alpha2
- Elasticsearch 版本 8.0.0-alpha1
- 依赖项和版本
转换限制
编辑转换限制
编辑以下限制和已知问题适用于 Elastic 转换功能的 8.17.0 版本。这些限制分为以下几类:
- 配置限制 适用于转换的配置过程。
- 操作限制 会影响正在运行的转换的行为。
- Kibana 中的限制 仅适用于通过用户界面管理的转换。
配置限制
编辑前缀为下划线的字段名在最新的转换中被省略
编辑如果您使用 latest
类型的转换,并且源索引的字段名以下划线 (_) 字符开头,则这些字段被假定为内部字段。这些字段将从目标索引的文档中省略。
如果远程集群配置正确,转换支持跨集群搜索
编辑如果您使用 跨集群搜索,则远程集群必须支持您在转换中使用的搜索和聚合。转换会验证其配置;如果您使用跨集群搜索并且验证失败,请确保远程集群支持您使用的查询和聚合。
在转换中使用脚本
编辑当聚合支持脚本时,转换在每种情况下都支持脚本。但是,在转换中使用脚本时,您可能需要考虑某些因素
- 当字段由脚本创建时,转换无法推断输出字段的索引映射。在这种情况下,您可能需要在创建转换之前自己创建目标索引的映射。
- 脚本字段可能会增加转换的运行时。
- 当您将脚本用于
group_by
中定义的所有分组时,转换无法优化查询,当您以这种方式使用脚本时,您将收到警告消息。
转换中 Painless 脚本的弃用警告
编辑如果转换包含使用已弃用语法的 Painless 脚本,则在预览或启动转换时会显示弃用警告。但是,无法批量检查所有转换的弃用警告,因为运行所需的查询可能是一个资源密集型过程。因此,由于已弃用的 Painless 语法导致的任何弃用警告在升级助手(Upgrade Assistant)中都不可用。
转换在索引字段上表现更好
编辑转换按用户定义的时间字段对数据进行排序,该字段会被频繁访问。如果时间字段是 运行时字段,则在查询时计算字段值的性能影响可能会显著减慢转换速度。使用索引字段作为时间字段(使用转换时)。
连续转换调度限制
编辑连续转换会定期检查源数据的更改。调度程序的功能目前仅限于基本的定期计时器,该计时器的 frequency
范围为 1 秒到 1 小时。默认值为 1 分钟。这旨在运行少而频繁。为该计时器选择 frequency
时,请考虑您的摄取率以及转换搜索/索引操作对集群中其他用户的影响。另请注意,重试以 frequency
间隔发生。
操作限制
编辑聚合响应可能与目标索引映射不兼容
编辑首次启动透视转换时,它将推断目标索引所需的映射。此过程基于源索引的字段类型和使用的聚合。如果字段来自 scripted_metrics
或 bucket_scripts
,则将使用 动态映射。在某些情况下,推断的映射可能与实际数据不兼容。例如,可能会发生数值溢出,或者动态映射的字段可能同时包含数字和字符串。如果您认为可能发生了这种情况,请检查 Elasticsearch 日志。
您可以使用 预览转换 API 查看推断的映射。请参阅 API 响应中的 generated_dest_index
对象。
如果需要,您可以使用 创建索引 API 通过创建自定义目标索引在启动转换之前定义自定义映射。由于推断的映射不能被索引模板覆盖,因此请使用创建索引 API 来定义自定义映射。索引模板仅适用于来自使用动态映射的脚本的字段。
批量转换可能无法考虑已更改的文档
编辑批量转换使用 复合聚合,该聚合允许高效地分页浏览所有存储桶。复合聚合尚不支持搜索上下文,因此如果在批量数据帧正在进行时更改了源数据(删除、更新、添加),则结果可能不包括这些更改。
连续转换的一致性不考虑已删除或更新的文档
编辑虽然转换过程允许在摄取新数据的同时持续重新计算转换,但它也存在一些限制。
只有当更改实体的时间字段也被更新并落在检查更改操作的范围内时,才能识别更改的实体。这在原则上是为以下用例设计的,并且适用于该用例,即新数据被赋予摄取时间的时间戳。
如果删除了源索引模式范围内的索引,例如在删除基于历史时间索引时,则在连续检查点处理中执行的复合聚合将搜索不同的源数据,并且仅存在于已删除索引中的实体将不会从数据帧目标索引中删除。
根据您的用例,您可能希望在删除后完全重新创建转换。或者,如果您的用例可以容忍历史存档,您可能希望在聚合中包含最大摄取时间戳。这将使您可以在查看目标索引时排除最近未更新的结果。
删除转换不会删除目标索引或 Kibana 索引模式
编辑当使用 DELETE _transform/index
删除转换时,目标索引和 Kibana 索引模式(如果已创建)都不会被删除。必须单独删除这些对象。
处理聚合页面大小的动态调整
编辑在转换的开发过程中,控制优先于性能。在设计考虑中,最好让转换在后台安静地花费更长时间完成,而不是快速完成并在资源消耗中优先。
复合聚合非常适合高基数数据,可以分页浏览结果。如果在执行复合聚合搜索时发生 熔断器 内存异常,则我们将尝试再次减少请求的存储桶数量。此熔断器是根据集群内的所有活动计算的,而不仅仅是来自转换的活动,因此它可能只是一个临时资源可用性问题。
对于批量转换,请求的存储桶数量只会向下调整。值的降低可能会导致转换检查点完成的时间更长。对于连续转换,请求的存储桶数量在每个检查点开始时都会重置回其默认值,并且可能会在 Elasticsearch 日志中重复出现熔断器异常。
转换以批处理方式检索数据,这意味着它一次计算多个存储桶。默认情况下,每个搜索/索引操作 500 个存储桶。可以使用 max_page_search_size
更改默认值,最小值是 10。如果请求的存储桶数量减少到最小值后仍然发生故障,则转换将设置为失败状态。
处理多个术语的动态调整
编辑对于每个检查点,都会识别自上次执行检查以来已更改的实体。此更改实体列表作为 术语查询 提供给转换复合聚合,一次一页。然后,将更新应用于每个实体页面的目标索引。
页面 size
由 max_page_search_size
定义,该值也用于定义复合聚合搜索返回的存储桶数量。默认值为 500,最小值为 10。
索引设置 index.max_terms_count
定义了 terms 查询中可以使用的最大词项数量。默认值为 65536。如果 max_page_search_size
超过 index.max_terms_count
,转换将失败。
为 max_page_search_size
使用较小的值可能会导致转换检查点完成的时间更长。
处理失败的转换
编辑失败的转换会作为持久性任务保留,应适当处理,可以删除它或解决失败的根本原因并重新启动。
当使用 API 删除失败的转换时,首先使用 _stop?force=true
停止它,然后再删除它。
如果文档尚未可用于搜索,则连续转换可能会给出不正确的结果
编辑索引文档后,会有很短的延迟,直到它可以用于搜索。
连续转换会定期检查自上次检查以来和 now
减去 sync.time.delay
之间发生更改的实体。此时间窗口移动而不会重叠。如果最近索引的文档的时间戳落在此时间窗口内,但此文档尚不可用于搜索,则此实体将不会被更新。
如果使用表示数据摄取时间的 sync.time.field
并使用零秒或非常小的 sync.time.delay
,则更可能发生此问题。
支持日期纳秒数据类型
编辑如果您的数据使用 日期纳秒数据类型,则聚合仍然是毫秒分辨率。此限制也会影响您的转换中的聚合。
不支持将数据流作为目标索引
编辑转换会更新目标索引中的数据,这需要写入目标索引。数据流 被设计为仅追加,这意味着您不能直接向数据流发送更新或删除请求。因此,不支持将数据流用作转换的目标索引。
将 ILM 作为目标索引可能会导致重复的文档
编辑不建议将 ILM 用作转换目标索引。转换会更新当前目标中的文档,并且不能删除 ILM 以前使用的索引中的文档。如果在滚动更新的情况下将转换与 ILM 结合使用,这可能会导致重复的文档。
如果您使用 ILM 来拥有基于时间的索引,请考虑改用 日期索引名称。如果您的转换包含基于 date_histogram
的 group_by
,则该处理器在没有重复文档的情况下工作。
Kibana 中的限制
编辑转换在所有 Kibana 空间中可见
编辑空间 使您能够在 Kibana 中组织源索引和目标索引以及其他已保存的对象,并且只查看属于您的空间的对象。但是,转换是一项在集群级别管理的长期运行的任务,因此其范围不限于特定的空间。可以在 堆栈管理 > Kibana 下为数据视图实现空间感知,该数据视图允许对转换目标索引的权限。
Kibana 中列出最多 1,000 个转换
编辑Kibana 中的转换管理页面最多列出 1000 个转换。
Kibana 可能不支持所有转换配置选项
编辑可能存在通过转换 API 可用但在 Kibana 中不受支持的配置选项。有关配置选项的完整列表,请参阅文档。
On this page
- 配置限制
- 前缀为下划线的字段名在最新的转换中被省略
- 如果远程集群配置正确,转换支持跨集群搜索
- 在转换中使用脚本
- 转换中 Painless 脚本的弃用警告
- 转换在索引字段上表现更好
- 连续转换调度限制
- 操作限制
- 聚合响应可能与目标索引映射不兼容
- 批量转换可能无法考虑已更改的文档
- 连续转换的一致性不考虑已删除或更新的文档
- 删除转换不会删除目标索引或 Kibana 索引模式
- 处理聚合页面大小的动态调整
- 处理多个术语的动态调整
- 处理失败的转换
- 如果文档尚未可用于搜索,则连续转换可能会给出不正确的结果
- 支持日期纳秒数据类型
- 不支持将数据流作为目标索引
- 将 ILM 作为目标索引可能会导致重复的文档
- Kibana 中的限制
- 转换在所有 Kibana 空间中可见
- Kibana 中列出最多 1,000 个转换
- Kibana 可能不支持所有转换配置选项