zoukankan      html  css  js  c++  java
  • ES查询优化

    1、上图

    2、存入数据筛选

    假如你向这台机器写入了300G的数据,那么就有270G左右的数据再磁盘。

    比如es存储要1T,那么你的多台机器留给os cache的内存总和要有512G以上。
     
    所以对存储在es中的数据进行筛选,比如就写入es id,name,age,然后其他的数据存储再hbase或者mysql中。
     
    hbase适用海量数据的在线存储。
     
    流程:
    1、es根据name或者age搜索,拿到20个doc id
    2、根据doc id到hbase中查询具体数据
     
    你最好写入es的数据大小 <= filesystem cache(os cache)总和
     

    3、数据预热

    假如按照上面的操作,es的数据还是超过了systemfile cache,那么就可以进行数据预热。比如将最多查看的商品,提前后台搞个程序,每隔1分钟访问一次,将它刷到os cache中

    4、冷热分离

    将冷数据写一个索引,热数据写一个索引

    假设六台机器,那么三台机器放热数据,热数据可能只占10%,那么访问热数据就能保持在os cache

    5、Document设计

    少用es的复杂查询语法,可以在插入的时候就将数据组装好

    6、分页优化

    1、不允许深度翻页、或者默认深度翻页性能好差
    2、如果类似微博下拉,可以使用scroll api(一次性生成快照,翻页通过游标移动),scroll api只能一页页翻,不能随意乱跳
  • 相关阅读:
    UED
    内容分发网络CDN(互联网技术)
    分布式系统基础架构
    十六进制后按高低位分开(转)
    Kafka.net使用编程入门(二)
    Storm集成Kafka应用的开发
    .net 框架
    .NET 的 WebSocket 开发包比较(转)
    ASP.NET Web API上实现 Web Socket
    Scrapyd部署爬虫
  • 原文地址:https://www.cnblogs.com/TripL/p/13520640.html
Copyright © 2011-2022 走看看