聚合数据

Elasticsearch系列---聚合查询(一)

筅森魡賤 提交于 2020-04-06 15:55:06
概要 Elasticsearch的聚合查询,跟数据库的聚合查询效果是一样的,我们可以将二者拿来对比学习,如求和、求平均值、求最大最小等等。 基础概念 bucket 数据分组,一些数据按照某个字段进行bucket划分,这个字段值相同的数据放到一个bucket中。可以理解成Java中的Map<String, List<Object>>结构,类似于Mysql中的group by后的查询结果。 metric: 对一个数据分组执行的统计,比如计算最大值,最小值,平均值等 类似于Mysql中的max(),min(),avg()函数的值,都是在group by后使用的。 案例 我们还是以英文儿歌为案例背景,回顾一下索引结构: PUT /music { "mappings": { "children": { "properties": { "id": { "type": "keyword" }, "author_first_name": { "type": "text", "analyzer": "english" }, "author_last_name": { "type": "text", "analyzer": "english" }, "author": { "type": "text", "analyzer": "english", "fields": { "keyword": {

flink业务使用记录

让人想犯罪 __ 提交于 2020-04-06 05:07:40
flink业务使用记录 部署好flink集群,我的模式是flink on yarn 新建flink处理逻辑代码模块 将该模块打成可执行的jar放到整个项目中 在flink客户端执行提交作业操作 在flink管理页面上查看业务详情。 Flink窗口函数(Window Functions) 定义完窗口分配器后,我们还需要为每一个窗口指定我们需要执行的计算,这是窗口的责任,当系统决定一个窗口已经准备好执行之后,这个窗口函数将被用来处理窗口中的每一个元素(可能是分组的)。 请参考: https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/windows.html#triggers 来了解当一个窗口准备好之后,Flink是如何决定的。   window函数可以是 ReduceFunction , FoldFunction 或者 WindowFunction 中的一个。前面两个更高效一些(),因为在每个窗口中增量地对每一个到达的元素执行聚合操作。一个 WindowFunction 可以获取一个窗口中的所有元素的一个迭代以及哪个元素属于哪个窗口的额外元信息。   有 WindowFunction 的窗口化操作会比其他的操作效率要差一些,因为Flink内部在调用函数之前会将窗口中的所有元素都缓存起来。这个可以通过

MongoDB聚合(aggregate)

元气小坏坏 提交于 2020-04-04 06:31:31
https://www.cnblogs.com/wt7018/p/11929359.html MongoDB聚合(aggregate) 一、基础 1、什么是聚合? 聚合是基于数据处理的聚合管道,每个文档通过一个有多个阶段(stage)组成的管道 可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果 db.集合名称.aggregate({管道: {表达式}}) 有点像Django中ORM聚合的语法 2、常用管道 $group: 将集合中的文档分组,用于统计结果 $match: 过滤数据,只输出符合条件的文档 $project: 修改输入文档的结构,如重命名、增加、删除字段、创建计算结果 $sort: 将输入文档排序后输出 $limit: 限制聚合管道返回的文档数 $skip: 跳过指定数量的文档,并返回余下的文档 $unwind(): 将列表(数组)类型的字段进行拆分 3、常用表达式 处理输入文档,并输出 语法: 表达式:'$列名' 常用表达式 $sum: 计算总和, $sum:1 表示以一倍计数 $avg: 计数平均值 $min: 获取最小值 $max: 获取最大值 $push: 在结果文档中插入值到一个数组中 $first: 根据资源文档的排序获取第一个文档数据 $last: 根据资源文档的排序获取最后一个文档数据 二、常用管道用法 1、$group

Kafka设计解析(七)Kafka Stream

久未见 提交于 2020-03-24 11:28:31
转载自 技术世界 ,原文链接 Kafka设计解析(七)- Kafka Stream 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream。接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集KStream和KTable。并且分析了Kafka Stream如何解决流式系统中的关键问题,如时间定义,窗口操作,Join操作,聚合操作,以及如何处理乱序和提供容错能力。最后结合示例讲解了如何使用Kafka Stream。 目录 一、Kafka Stream背景 1. Kafka Stream是什么 2. 什么是流式计算 3. 为什么要有Kafka Stream 二、Kafka Stream架构 1. Kafka Stream整体架构 2. Processor Topology 3. Kafka Stream并行模型 4. KTable vs. KStream 5. State store 三、Kafka Stream如何解决流式系统中关键问题 1. 时间 2. 窗口 3. Join 4. 聚合与乱序处理 5. 容错 四、Kafka Stream应用示例 五、总结 一、Kafka Stream背景 1. Kafka Stream是什么 Kafka Stream是Apache

TP5中多字段聚合查询,多字段运算总和(其他运算)

夙愿已清 提交于 2020-03-24 10:50:10
项目需求:获取当月每天(当天多条数据)数据汇总,需要运用到聚合查询,但是都多个字段进行分别展示。 代码如下: DB::('table_name')->where(['date' => '2020-03-24']) //这里写条件即可,比如当天->field("id,date,sum(memberactive) as 'memberactive',sum(memberadd) as 'memberadd'") //当运算完一个数据之后 as 起一个别名 用于展示->group('date')    //以天为单位->order("date desc")    来源: https://www.cnblogs.com/T8888/p/12557306.html

Spark MapReduce实现移动聚合操作(移动平均、求和、计数等)

≡放荡痞女 提交于 2020-03-13 01:42:19
1. 需求 在处理时间序列或者是有序数据时候,经常会越到这样的情形:1、求客户最近一个月的平均消费金额;2、求客户最近一个月的消费次数;3、求与客户在最近一个月内发生大额消费的客户数量 上述问题中,问题1与问题2是典型的求指定客户在指定时间段的行为统计值,可以通过客户进行分组然后过滤统计即可,而问题三则是求解与该客户在指定时间段内发生某种行为的客户数量,即没有具体的聚合Key,从而不同按照问题1与问题2进行分组的方式求解,而通过类似时间序列中求一个序列的移动平均方法来求解 针对上述两类情形,下面分别提供了两个函数,这个两个函数,一个是aggregateByKey,根据key聚合,并对聚合后的每一条记录采用窗口函数获取聚合数据,即该函数是对每一个key对应的value进行移动聚合操作。另一个是aggregateByAll,根据key进行排序,通过窗口函数获取结果进行聚合。这两个函数都是根据窗口函数进行聚合操作,但不同点在于作用范围不同。 窗口函数与聚合函数用户定义可以自由定义,通过定义不同的窗口函数与聚合函数,可以实现不同的移动逻辑以及聚合运算。 2. 实现思路 2.1 aggregateByKey aggregateByKey实现起来比较简单,因为一般情况先,单个key对应的value不会很大(单个executor的内存是可以装得下的)

Spark MapReduce实现移动聚合操作(移动平均、求和、计数等)

左心房为你撑大大i 提交于 2020-03-13 01:34:24
1. 需求 在处理时间序列或者是有序数据时候,经常会越到这样的情形:1、求客户最近一个月的平均消费金额;2、求客户最近一个月的消费次数;3、求与客户在最近一个月内发生大额消费的客户数量 上述问题中,问题1与问题2是典型的求指定客户在指定时间段的行为统计值,可以通过客户进行分组然后过滤统计即可,而问题三则是求解与该客户在指定时间段内发生某种行为的客户数量,即没有具体的聚合Key,从而不同按照问题1与问题2进行分组的方式求解,而通过类似时间序列中求一个序列的移动平均方法来求解 针对上述两类情形,下面分别提供了两个函数,这个两个函数,一个是aggregateByKey,根据key聚合,并对聚合后的每一条记录采用窗口函数获取聚合数据,即该函数是对每一个key对应的value进行移动聚合操作。另一个是aggregateByAll,根据key进行排序,通过窗口函数获取结果进行聚合。这两个函数都是根据窗口函数进行聚合操作,但不同点在于作用范围不同。 窗口函数与聚合函数用户定义可以自由定义,通过定义不同的窗口函数与聚合函数,可以实现不同的移动逻辑以及聚合运算。 2. 实现思路 2.1 aggregateByKey aggregateByKey实现起来比较简单,因为一般情况先,单个key对应的value不会很大(单个executor的内存是可以装得下的)

whisper数据库

自闭症网瘾萝莉.ら 提交于 2020-03-06 15:37:05
简介 Whisper是一个固定大小的数据库,在设计上类似于RRD(round-robin-database)。它可以为随时间不断变化的数值型数据提供快速,可靠的存储。Whisper还可以把高精度的指标数据转换成低精度的指标数据以满足存储长期的历史数据的需求。比如说把按秒采集的指标转换成按分钟采集的指标,以减少数据量,进行长期存储。 数据点 Whisper使用大端双精度浮点类型来存储数据。每个数据点包含一个时间戳和一个值。 采集和存储策略 每个whisper数据库可以包含一个或者多个针对不同数据的采集和存储策略的定义。这些定义保存在graphite安装路径下的conf/ storage-schemas.conf配置文件里面,如下图所示: 上图就定义了四个数据采集和存储的策略,策略的定义语法如下: [name] pattern = regex retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ... name : 策略名称,可随意指定 pattern : 用来匹配具体指标名的正则表达式。如果配置文件里面定义了多个策略,那么收到一个指标数据的时候,会从上到下使用每个策略里面的pattern对指标名称进行正则表达式匹配,最先匹配到的策略将会被使用。 retentions : 定义了数据采集精度和存储时长

9-15 16-21 23-26 29-30 索引

烂漫一生 提交于 2020-03-03 04:43:14
第9节 柱状图 第10节 分组柱图 第11节 水平柱状图 第12节 饼图 第13节 折线图、叠加区域图 第14节 散点图、直方图 第15节 密度图、数据相关性 第16节 多表联合 第17节 数据校验、轴的概念 第18节 分割列 第19节 求和平均统计 第20节 定位、消除重复数据 第21节 旋转表格 第23节透视表、分组、聚合 第24节线性回归、数据预测 第25节条件格式 第26节条件格式 第29课SQL Server 第30课复杂函数调用 来源: CSDN 作者: 好多米的秃头之路1024 链接: https://blog.csdn.net/weixin_46276803/article/details/104618157

机器学习在马蜂窝酒店聚合中的应用初探

让人想犯罪 __ 提交于 2020-02-28 08:20:50
出门旅行,订酒店是必不可少的一个环节。住得干净、舒心对于每个出门在外的人来说都非常重要。 在线预订酒店让这件事更加方便。当用户在马蜂窝打开一家选中的酒店时,不同供应商提供的预订信息会形成一个聚合列表准确地展示给用户。这样做首先避免同样的信息多次展示给用户影响体验,更重要的是帮助用户进行全网酒店实时比价,快速找到性价比最高的供应商,完成消费决策。 酒店聚合能力的强弱,决定着用户预订酒店时可选价格的「厚度」,进而影响用户个性化、多元化的预订体验。为了使酒店聚合更加实时、准确、高效,现在马蜂窝酒店业务中近 80% 的聚合任务都是由机器自动完成。本文将详细阐述酒店聚合是什么,以及时下热门的机器学习技术在酒店聚合中是如何应用的。 Part.1 应用场景和挑战 1.酒店聚合的应用场景 马蜂窝酒旅平台接入了大量的供应商,不同供应商会提供很多相同的酒店,但对同一酒店的描述可能会存在差异,比如: 酒店聚合要做的,就是将这些来自不同供应商的酒店信息聚合在一起集中展示给用户,为用户提供一站式实时比价预订服务: 下图为马蜂窝对不同供应商的酒店进行聚合后的展示,不同供应商的报价一目了然,用户进行消费决策更加高效、便捷。 2.挑战 (1) 准确性 上文说过,不同供应商对于同一酒店的描述可能存在偏差。如果聚合出现错误,就会导致用户在 App 中看到的酒店不是实际想要预订的: 在上图中,用户在 App