热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

47.易并行聚合算法,三角选择原则,近似聚合算法的基本慨念

主要知识点:什么是易并行算法什么是不易并行算法什么是三角选择原则什么是近似聚合算法一、易并行聚合算法(如max)es是多分步式的结构的,所以当你做下

主要知识点:

  • 什么是易并行算法
  • 什么是不易并行算法
  • 什么是三角选择原则
  • 什么是近似聚合算法

   

一、易并行聚合算法(如max

   

es是多分步式的结构的,所以当你做下个搜索或计算时都是会在各个node上执行,所以有些聚合分析的算法,是很容易就可以并行执行的,比如说max,你要在你的数据库中找一个最大的但,只需要两步

  • 各个node都返回最大值给coordinary node
  • coordinary node 根据各个node返回的值计算出最大值返回给应用程序

这两步在es中都是容易执行的(不会在coordinary node中占用大量内存,也不会在coordinary node占用大量cpu)

   

二、不易并行聚合算法(如count(distinct)

   

现在假设要计算count(distinct)。也就是说找出所有唯一值的总和,要执行这个算法es会执行以下几步

  • 各个node找到当前node的唯一值(比如有100万条)返回给coordinary node
  • coordinary node接收到各个node所返回的唯一值后,再进行去重处理,然后根据去重后的结果求和,再返回给应用程序。

在这个过程中coordinary node会至少保留300万条(假设只有3node)数据,并要对这300万条数据做处理,这样对coordinary node,不管是内存还是cpu的压力都很大,这就是不易并行聚合算法。

   

三、三角选择原则

   

在精准、实时、大数据 这三个条件中只能选择2个放弃一个。

  • 精准+实时: 这样就不能处理大数据
  • 精准+大数据:典型的就是hadoop,利用批处理技术,可以处理海量数据并保证精准,但是可能会跑几个小时
  • 大数据+实时:典型的是es,采用近似估计的方式,可能会有百分之几的错误率,但是处理是近实时。

   

四、近似聚合算法

   

es对那些不易平行处理的算法是采用会近似聚合的方式,就是采用在每个node上进行近估计的方式,得到最终的结论,近似估计后的结果,不完全准确,但是速度会很快,一般会达到完全精准算法的性能的数十倍。es如果采取近似估计算未能延时在100ms左右,0.5%错误率。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • SQL中UPDATE SET FROM语句的使用方法及应用场景
    本文详细介绍了SQL中UPDATE SET FROM语句的使用方法,通过具体示例展示了如何利用该语句高效地更新多表关联数据。适合数据库管理员和开发人员参考。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 理解存储器的层次结构有助于程序员优化程序性能,通过合理安排数据在不同层级的存储位置,提升CPU的数据访问速度。本文详细探讨了静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM)的工作原理及其应用场景,并介绍了存储器模块中的数据存取过程及局部性原理。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 近期遇到电脑网络不稳定和游戏时频繁重启的问题,寻求专业建议。网络环境为ADSL调制解调器通过路由器共享给两台电脑使用,怀疑存在ARP攻击或硬件配置问题。希望获得详细的故障排查和解决方案。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
author-avatar
暂时不用的微博
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有