36.1 容量规划案例1
- 固定大小的数据集
- 一些案例:唱片信息库 / 产品信息
- 一些特性
- 被搜索的数据集很大,但是增长相对比较慢(不会有大量的写入)。更关心搜索和聚合的读取性能
- 数据的重要性与时间范围无关。关注的是搜索的相关度
- 估算索引的的数据量,然后确定分片的大小
- 单个分片的数据不要超过 20 GB
- 可以通过增加副本分片,提高查询的吞吐量
36.2 拆分索引
- 如果业务上有大量的查询是基于一个字段进行 Filter,该字段又是一个数量有限的枚举值,例如订单所在的地区
- 如果在单个索引有大量的数据
- 如果要对多个索引进行查询,还是可以在查询中指定多个索引得以实现
- 如果业务上有大量的查询是基于一个字段进行 Filter,该字段数值并不固定,可以启用 Routing 功能,按照 filter 字段的值分布到集群中不同的 shard,降低查询时相关的 shard, 提高 CPU 利用率,示例:
PUT my-index-000001/_doc/1?routing=user1&refresh=true
{
"title": "This is a document"
}
36.3 容量规划案例2
- 基于时间序列的数据
- 相关的用案
- 日志 / 指标 / 安全相关的 Events
- 舆情分析
- 特性
- 每条数据都有时间戳;文档基本不会被更新(日志和指标数据)
- 用户更多的会查询近期的数据;对旧的数据查询相对较少
- 对数据的写入性能要求比较高
- 相关的用案
36.4 创建基于时间序列的索引
- 创建 time-based 索引
- 在索引的名字中增加时间信息
- 按照 每天 / 每周 / 每月 的方式进行划分
- 好处
- 更加合理的组织索引,例如随着时间推移,便于对索引做的老化处理
- 利用 Hot & Warm Architecture
- 备份和删除的效率高
36.5 写入时间序列的数据:基于 Date Math 的方式
- 容易使用
- 如果时间发生变化,需要重新部署代码
- 如果时间发生变化,需要重新部署代码
36.6 写入时间序列的数据 – 基于 Index Alias
- Time-based 索引
- 创建索引,每天 / 每周 / 每月
- 在索引的名字中增加时间信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEJH2yyo-1655257179886)(https://upload-images.jianshu.io/upload_images/19745945-06294fa2c3c567b2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
36.7 集群扩容
- 增加 Coordinating / Ingest Node
- 解决 CPU 和 内存开销的问题
- 增加数据节点
- 解决存储的容量的问题
- 为避免分片分布不均的问题,要提前监控磁盘空间,提前清理数据或增加节点(70%)
大数据视频推荐:
腾讯课堂
CSDN
ELK入门精讲
AIOps智能运维实战
ELK7 stack开发运维
大数据语音推荐:
ELK7 stack开发运维
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通