阿里云大佬叮嘱我务必要科普这个 Elasticsearch API
上截图是阿里云魏子珺大佬(阿里巴巴集团技术专家)周一叮嘱我的。
魏子珺大佬的早期分享参考:
2021 年 Elasticsearch 生态和技术峰会干货总结
1、啥 API 这么重要,阿里大佬要亲自叮嘱?
There’s a new API that supports analyzing the disk usage of each field of an index, including the entire index itself. The API estimates the disk usage of a field by iterating over its content and tracking the number of bytes read
https://www.elastic.co/guide/en/elasticsearch/reference/7.15/release-highlights.html#_index_disk_usage_api
POST kibana_sample_data_ecommerce/_disk_usage?run_expensive_tasks=true
用途:
第一:支持统计索引自身的磁盘使用。
第二:支持统计每个字段级别的磁盘使用。
2、_disk_usage API 适用场景是啥?
此 API 不支持在以前的 Elasticsearch 版本中创建的索引。
适用于大索引。
PS:小索引的结果可能不准确,因为 API 可能无法分析索引的某些细节部分。
本质用途:
技术人员可直观看到索引各个字段占据存储空间的大小。
评估数据建模的合理性。
定量指导Mapping 优化。
3、_disk_usage API对应版本?
7.15+ 之后的版本才可以用哦。
4、_disk_usage API 如何用?
POST kibana_sample_data_ecommerce/_disk_usage?run_expensive_tasks=true
注意一个细节:run_expensive_tasks 意味着这个 API 非常耗费资源,所以大家别频繁验证线上环境。
召回结果如下:
执行结果部分截图
每个字段的磁盘使用率清晰、明白的列举出来了。
7.17 版本 Elasticsearch 集群验证一把:
POST _reindex
{"source": {"index": "kibana_sample_data_logs","_source": ["host","index","ip","tags","response"]},"dest": {"index": "kibana_sample_data_logs_ext"}
}POST kibana_sample_data_logs_ext/_disk_usage?run_expensive_tasks=true
官方并没有统计,我把结果数据梳理统计了一下,如下两张图所示:
说明了啥?
所有字段的存储实际是:倒排索引所占据存储空间大小 + doc_values 正排索引存储空间大小 + store_fields 存储空间大小等的总和。
再深问一句,这个和咱们最早设定的 Mapping 就有关系了,和数据建模就有关系了。
看一下 Mapping:
{"kibana_sample_data_logs_ext" : {"mappings" : {"properties" : {"host" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"index" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"ip" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"response" : {"type" : "long"},"tags" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}}}}}
}
再进一步看看各个字段所占据的存储空间大小:
能有什么结论?
_source 是占据存储空间的。
默认的 Mapping 在 dynamic 默认为 true 的前提下字符串类型会包含两种类型:text 和 keyword,两个是分别占据不同的存储空间的。
数据建模建议:如果只需要全文检索,字符串类型设置 text 就足够了。
数据建模建议:如果不需要全文检索只需要排序和聚合,字符串类型设置 keyword 就足够了。
_version 是占据存储空间的,咱们的 update_by_query 和 delete_by_query 本质都是逻辑删除,势必会增加 _version 的空间。
如果未来再有字段选型搞不定存储空间的时候——用这个 API 一下就搞定了。
。。。。。
还能进一步推出很多有意思的结论。
5、_disk_usage API "牛逼"在什么地方?
之前我们对于磁盘占据空间是一个泛泛的整体概念,现在有了这个 API 我们可以做的很细
了。
具体到哪个字段占据了多少磁盘知道了以后,极大便利的指导我们的数据建模。
相当于数据建模有了可量化的、可视化的参考依据。
之前两个同事可能为某个字段的某些属性的设置会争吵,甚至吵得不可开交。
现在不需要了,“走两步”,对比一下磁盘容量,直接就能给出孰优孰劣的结论。
图片来自:优酷
6、小结
个人更期望的功能就是字段存储空间的可视化功能,各个字段占据一目了然呈现出来,类似:search_profile 的功能。估计未来版本会出现。
欢迎大家留言说一下自己的思考。
您或者您的团队发现类似好用但相对小众的“新功能”,也欢迎第一时间联系我。我会尽自己的一点微薄之力,让更多 Elastic 爱好者知道。
感谢魏子珺大佬!
推荐
1、重磅 | 死磕 Elasticsearch 方法论认知清单(2021年国庆更新版)
2、Elasticsearch 7.X 进阶实战私训课(口碑不错)
3、如何系统的学习 Elasticsearch ?
4、Elasticsearch 数据建模实战指南
5、干货 | 论Elasticsearch数据建模的重要性
6、从一个实战问题再谈 Elasticsearch 数据建模
更短时间更快习得更多干货!
和全球近 1600+ Elastic 爱好者一起精进!
比同事抢先一步学习进阶干货!
阿里云大佬叮嘱我务必要科普这个 Elasticsearch API相关推荐
- Unicloud 阿里云服务器作图床,从上传到部署api全流程
Unicloud 阿里云服务器作图床 uniCloud提供免费10G云存储空间,不限流量,底层是阿里云OSS,因此速度非常快 这个源码是利用uniCloud云存储开发的一款图床源码.和网上其他的uni ...
- 阿里云Apsara Clouder专项技能认证:实现调用API接口(学习笔记及证书)
文章目录 课程学习笔记的思维导图 认证证书示意 课程学习笔记的思维导图 (点击可放大查看) 认证证书示意 通过阿里云Apsara Clouder专项技能认证的学习及考试后,会得到一张阿里云给的认证证书 ...
- 阿里云服务器调用微信支付接口慢的解决方案 (api.mch.weixin.qq.com)
联通宽带访问电信宽带通常会比价慢,所以需要在hosts里进行映射,映射的IP的运营商应该和自己服务器的一致 C:\Windows\System32\Drivers\etc\hosts里加101.226 ...
- 慎重决定!从自建服务器到选择阿里云
上云前序 我们公司因为业务需求,需要来服务器托管微信公众号平台.之前我们先是自建服务器,然后就是使用IDC机房托管服务器,后来因为种种原因,最后转到了阿里云上云.很多同学会有疑问,为什么已 ...
- 高大上的阿里云认证,小白真的不配拥有嘛?
01 写在前面的话 介似小编的公众号全新改版后第一次发文,先前制作这个公众号的时候只是单纯的想玩一玩,没有想过要做什么有价值的事情,所以除了几位亲朋好友在小编的强迫下关注了以外,便没有什么流量了-- ...
- 阿里云ACA课程之在线实验二
阿里云ACA课程之在线实验二 使用OSS API上传和下载文件 查看OSS环境 调用OSS API上传小文件 调用OSS API下载小文件 调用OSS API删除Object 负载均衡使用初体验 分别 ...
- 阿里云短信服务的签名和模板的审核通过办法(已申请通过)
简介: 关于阿里云的短信验证服务的签名和模板申请相对比其他服务有些麻烦,但是依然是可以解决的 首先我们先去产品是搜索到短信服务,开通短信服务,进入控制台 首先如果是企业用户操作就非常方便快捷了,因为直 ...
- 从自建服务器到选择阿里云
↑ ↑ ↑ ↑ ↑ 提示:CSDN支持浏览目录功能,浏览目录后阅读效果更佳 ↑ ↑ ↑ ↑ ↑ 本文涉及的代码已托管在GitHub中,有兴趣的同学可以浏览 有什么不懂可以浏览一下 上云前序 ...
- Qt——记录:http表单格式上传文件到七牛云和阿里云
环境:windows10 版本:Qt 5.15.2 工具:Qt Creator 背景:通过http表单格式上传文件,兼容阿里云和七牛云. 一.记录问题:上传文件到阿里云 问题1:ErrorCode: ...
最新文章
- 弹出窗口显示输出内容_前端加油站(3)-JavaScript 输出
- oracle管理员是sys吗,Oracle管理员sys,system登录无权限的坑
- 跨域产生的原因和解决方法_幼儿语言障碍产生的原因及其解决方法
- Fragment生命周期与Fragment执行hide、show后的生命周期探讨
- 关于h264bitstream的bug修正及完善
- 【Flink】Metrics运作机制
- undefined reference to `kbhit'
- Spring Boot 2 快速教程:WebFlux 集成 Thymeleaf(五)
- 【C++】判断指定元素是否在vector中的若干种方法小结
- 使用getopt函数对命令行短形参进行处理
- 淘宝API 拍立淘图片搜索接口
- 利用Python画出《人民日报》各国疫情图——南丁格尔玫瑰图
- 【从零开始vnpy量化投资】三. 手动安装vnpy环境
- android studio try catch自动生成,Android Studio:Try-catch异常崩溃了应用程序
- 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...
- shell中初始化数组并遍历数组
- Linux计划任务、周期性任务执行
- js正则表达式的使用:
- Android监听程序进入后台,或者恢复到前台
- ELK系列(四)、Logstash读取nginx日志写入ES中
热门文章
- 微信小程序做问卷——前端部分(生成问卷)
- C语言初阶_初识C语言(1)
- Gta4 微软服务器,R星发布《GTA4》Win10补丁 业界良心从不令人失望
- 最全软件测试面试题(经典)
- RDIFramework.NET敏捷开发框架助力企业BPM业务流程系统的开发与落地
- 我终于刷完了《觉醒年代》,对PMP有了新的思考...
- 如何了解职场公司信息,正确投简历?
- conceptdraw office(专业办公套件) v6.0.0附安装教程
- hive 修改分区备注_hive修改 表/分区语句
- java 代码 二义性是什么_Java接口默认方法带来的问题分析【二义性问题】