数据层
编辑数据层编辑
数据层是具有相同数据角色的节点集合,这些节点通常共享相同的硬件配置文件
Elasticsearch 通常希望数据层内的节点共享相同的硬件配置文件。不遵循此建议的变化应谨慎设计,以避免热点。
当您将文档直接索引到特定索引时,它们将无限期地保留在内容层节点上。
当您将文档索引到数据流时,它们最初驻留在热层节点上。您可以配置索引生命周期管理 (ILM) 策略,以根据您的性能、弹性和数据保留要求自动将时间序列数据在热层、温层和冷层之间转换。
内容层编辑
存储在内容层中的数据通常是项目的集合,例如产品目录或文章存档。与时间序列数据不同,内容的价值随着时间的推移保持相对恒定,因此在内容老化时将其移动到具有不同性能特征的层没有意义。内容数据通常具有较长的数据保留要求,并且您希望能够快速检索项目,而不管它们有多旧。
内容层节点通常针对查询性能进行了优化,它们优先考虑处理能力而不是 IO 吞吐量,因此它们可以处理复杂的搜索和聚合并快速返回结果。虽然它们也负责索引,但内容数据的摄取速率通常不如日志和指标等时间序列数据高。从弹性的角度来看,应将此层中的索引配置为使用一个或多个副本。
内容层是必需的。系统索引和其他不属于数据流的索引将自动分配给内容层。
热层编辑
热层是 Elasticsearch 时间序列数据的入口点,并保存您最新、最常搜索的时间序列数据。热层中的节点需要快速读取和写入,这需要更多的硬件资源和更快的存储(SSD)。为了实现弹性,应将热层中的索引配置为使用一个或多个副本。
热层是必需的。属于数据流的新索引会自动分配给热层。
温层编辑
当时间序列数据的查询频率低于热层中最近索引的数据时,它可以移动到温层。温层通常保存最近几周的数据。仍然允许更新,但可能不频繁。温层中的节点通常不需要像热层中的节点那样快。为了实现弹性,应将温层中的索引配置为使用一个或多个副本。
冷层编辑
当您不再需要定期搜索时间序列数据时,它可以从温层移动到冷层。虽然仍然可以搜索,但此层通常针对较低的存储成本而不是搜索速度进行了优化。
为了更好地节省存储空间,您可以将完全挂载的索引(可搜索快照)保留在冷层上。与常规索引不同,这些完全挂载的索引不需要副本即可实现可靠性。如果发生故障,它们可以从基础快照中恢复数据。这可能会使数据所需的本地存储空间减半。要在冷层中使用完全挂载的索引,需要一个快照存储库。完全挂载的索引是只读的。
或者,您可以使用冷层来存储带有副本的常规索引,而不是使用可搜索快照。这使您可以在成本更低的硬件上存储旧数据,但与温层相比,不会减少所需的磁盘空间。
冻结层编辑
一旦数据不再被查询,或者很少被查询,它可能会从冷层移动到冻结层,并在那里度过余生。
冻结层需要一个快照存储库。冻结层使用部分挂载的索引从快照存储库存储和加载数据。这降低了本地存储和运营成本,同时仍然允许您搜索冻结数据。因为 Elasticsearch 有时必须从快照存储库中获取冻结数据,所以在冻结层上的搜索通常比在冷层上慢。
在 Elasticsearch Service 或 Elastic Cloud Enterprise 上配置数据层编辑
Elastic Cloud 部署的默认配置包括用于热数据和内容数据的共享层。此层是必需的,无法删除。
要在创建部署时添加温层、冷层或冻结层
- 在创建部署页面上,单击高级设置。
- 单击要添加的任何数据层的+ 添加容量。
- 单击页面底部的创建部署以保存您的更改。
要将数据层添加到现有部署
- 登录到Elastic Cloud 控制台。
- 在部署页面上,选择您的部署。
- 在您的部署菜单中,选择编辑。
- 单击要添加的任何数据层的+ 添加容量。
- 单击页面底部的保存以保存您的更改。
要删除数据层,请参阅禁用数据层。
为自管部署配置数据层编辑
对于自管部署,每个节点的数据角色都在elasticsearch.yml
中配置。例如,集群中性能最高的节点可以同时分配给热层和内容层
node.roles: ["data_hot", "data_content"]
我们建议您在冻结层中使用专用节点。
数据层索引分配编辑
默认情况下,当您创建索引时,Elasticsearch 会将index.routing.allocation.include._tier_preference
设置为data_content
,以自动将索引分片分配给内容层。
默认情况下,当 Elasticsearch 创建索引作为数据流的一部分时,Elasticsearch 会将index.routing.allocation.include._tier_preference
设置为data_hot
,以自动将索引分片分配给热层。
您可以显式设置index.routing.allocation.include._tier_preference
以选择退出默认的基于层的分配。
自动数据层迁移编辑
ILM 使用迁移操作自动将托管索引在可用数据层之间转换。默认情况下,此操作会自动注入到每个阶段。您可以使用"enabled": false
显式指定迁移操作以禁用自动迁移,例如,如果您使用分配操作手动指定分配规则。