在使用阿里云Elasticsearch时,如果您希望提高近期数据查询的效率,同时降低历史数据的存储成本,可通过冷热数据分离实现。本文介绍如何创建冷热集群,并设置索引的冷热属性,来实现冷热数据分离。

背景信息

冷热集群是指在集群中包含冷、热两种属性的节点,可以提高Elasticsearch的处理性能和服务稳定性。两者区别如下。
节点类型 存储数据要求 读写性能要求 规格要求 存储要求
热节点 近期数据,例如最近2天的日志数据。 高,例如32核64G 建议使用SSD云盘存储数据,存储空间大小需根据数据大小进行设置。
冷节点 历史数据,例如2天之前的日志数据。 低,例如8核32G 建议使用高效云盘存储数据,存储空间大小需根据数据大小进行设置。
说明 您也可以通过生命周期管理,将热节点中的数据定期自动迁移至冷节点中,详情请参见ILM(Index lifecycle management) overview

创建冷热集群

购买阿里云Elasticsearch实例时,启用冷数据节点,即可创建冷热集群。当您启用了冷数据节点并购买后,系统会在节点启动参数中加入-Enode.attr.box_type参数。
  • 热数据节点:-Enode.attr.box_type=hot
    注意 购买实例时,只有当启用了冷数据节点后,数据节点才会变成热节点。
  • 冷数据节点:-Enode.attr.box_type=warm

设置索引的冷热属性

参见登录Kibana控制台,执行以下命令设置索引数据的冷热属性。
  • 设置索引数据为热数据
    PUT hot_data/_settings
    {
    "index.routing.allocation.require.box_type": "hot"
    }
  • 设置索引数据为冷数据
    PUT warm_data/_settings
    {
    "index.routing.allocation.require.box_type": "warm"
    }