聚合数据

Elasticsearch操作索引

最后都变了- 提交于 2019-12-08 09:48:32
目录 操作索引 1. 基本概念 2. 创建索引 2.1 语法 2.2查看索引设置 2.3.删除索引 2.4 映射配置 2.5 新增数据 2.6 修改数据 2.7 删除数据 3. 查询 3.1 基本查询 3.2.结果过滤 3.3 高级查询 3.4 过滤(filter) 3.5 排序 4. 聚合aggregations 4.1 基本概念 4.2 聚合为桶 4.3 桶内度量 4.4 桶内嵌套桶 4.5 划分桶的其它方式 操作索引 1. 基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。 对比关系: 索引(indices)---------------------------------Databases 数据库 类型(type)----------------------------------Table 数据表 文档(Document)---------------------------Row 行 字段(Field)---------------------------Columns 列 详细说明: 概念 说明 索引库(indices) indices是index的复数,代表许多的索引, 类型(type) 类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同

性能调优8:分组聚合 - group by

旧城冷巷雨未停 提交于 2019-12-06 11:41:06
原文: 性能调优8:分组聚合 - group by 聚合实际上对数据做分组统计,SQL Server使用两种操作符来实现聚合,流聚合(Stream Aggregation)和哈希聚合(Hash aggration)。流聚合是非阻塞性的,具有流的特性,流聚合操作符;边处理数据,边输出聚合的结果。而哈希聚合是阻塞性的,只要处理完所有的数据,才会输出聚合的结果。 一,流聚合 流聚合要求输入的数据集在group by 即分组列上是有序的,也就是说,流聚合需要排序。分组列的位置和顺序不会影响聚合的结果,因此分组列的排序是任意的。对于索引上的流聚合,由于数据是已经排序的,使用流聚合算法没有排序操作的开销。 流聚合算法是:第一个被读取的数据会创建第一个分组,后续读入的数据都会先和当前的分组匹配,如果匹配,把该行放入到当前的分组中;如果不匹配,创建新的分组,直到所有数据行都处理完成为止,最终对各个分组计算聚合值。 二,哈希聚合 在执行计划中,哈希聚合使用的物理操作符是:Hash Match(Aggregate),实际上,Hash Join也是使用Hash Match作为物理操作符。哈希聚合不需要排序,但是需要授予内存来创建Hash表。优化器倾向于使用哈希聚合来对无序的大表进行聚合操作,哈希聚合的算法: 对于每一个输入行,在group by列上计算哈希值, 检查该行是否映射到hash表中

Django聚合查询 orm字段及属性

一个人想着一个人 提交于 2019-12-06 03:32:35
目录 一 聚合查询 1. 级联 级联删除 级联更新 2. 聚合函数 使用 aggregate 使用场景 3. 分组查询 语法 使用 annotate 代码 4. F与Q查询 F查询 Q查询 二 ORM字段及参数 1.ORM字段 常用字段 不常用字段 字段合集 2. 关系字段 ForeignKey():外键字段 OneToOneField():一对一外键字段 ManyToManyField():多对多关系字段 3. 字段属性 null unique db_index default 4. 自定义字段类型 三 断开关联的关系表 1. 断开外键关联的ForeignKey使用 2.断开关联的多对多自动创建关系表 3. 断开关联的多对多手动创建关系表 总结 图书管理系统 RBAC 基于角色的权限管理 ORM中的事务操作 什么是事务 四大特性 数据库的三大范式(设计范式) 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) django开启事务 导入 开启 回滚 一 聚合查询 1. 级联 级联删除 操作外键字段管理数据的时候 书跟出版社是一对多关系,外键字段在书那,如果把出版社删了,所对应的书也会自动删除 级联更新 如果把出版社主键值改变,那么书籍表中的出版社主键值也会更新改变 2. 聚合函数 聚合函数必须用在分组之后 没有分组其实默认整体就是一组 Max Min Sum Sum

Spark性能优化

[亡魂溺海] 提交于 2019-12-06 03:09:44
Spark性能优化 1)避免创建重复RDD 2)尽可能复用同一个RDD 3)对多次使用的RDD进行持久化 4)尽量避免使用shuffle类算子 5)使用map-side预聚合的shuffle操作 6)使用高性能的算子 7)广播大变量 8)使用Kryo优化序列化性能 9)优化数据结构 10)资源参数调优 1)避免创建重复RDD ​ 对于同一份数据,只应该创建一个RDD,不能创建多个RDD来代表同一份数据。 2)尽可能复用同一个RDD ​ 除了要避免在开发过程中对一份完全相同的数据创建多个RDD之外,在对不同的数据执行算子 操作时还要尽可能地复用一个RDD。比如说,有一个RDD的数据格式是key-value类型的,另 一个是单value类型的,这两个RDD的value数据是完全一样的。那么此时我们可以只使用key-value类型的那个RDD,因为其中已经包含了另一个的数据。对于类似这种多个RDD的数据有重叠或者包含的情况,我们应该尽量复用一个RDD,这样可以尽可能地减少RDD的数量,从而尽可能减少算子执行的次数。 3)对多次使用的RDD进行持久化 Spark中对于一个RDD执行多次算子的默认原理是这样的:每次你对一个RDD执行一个算子操作时,都会重新从源头处计算一遍,计算出那个RDD来,然后再对这个RDD执行你的算子操作。因此对于这种情况,建议是:对多次使用的RDD进行持久化

04-01 存储库之MongoDB

拥有回忆 提交于 2019-12-06 01:12:25
04-01 存储库之MongoDB 一 简介 MongoDB是一款强大、灵活、且易于扩展的通用型数据库 1、易用性 MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库。不采用关系型主要是为了获得更好得扩展性。当然还有一些其他好处,与关系数据库相比,面向文档的数据库不再有“行“(row)的概念取而代之的是更为灵活的“文档”(document)模型。通过在文档中嵌入文档和数组,面向文档的方法能够仅使用一条记录来表现复杂的层级关系,这与现代的面向对象语言的开发者对数据的看法一致。 另外,不再有预定义模式(predefined schema):文档的键(key)和值(value)不再是固定的类型和大小。由于没有固定的模式,根据需要添加或删除字段变得更容易了。通常由于开发者能够进行快速迭代,所以开发进程得以加快。而且,实验更容易进行。开发者能尝试大量的数据模型,从中选一个最好的。 2、易扩展性 应用程序数据集的大小正在以不可思议的速度增长。随着可用带宽的增长和存储器价格的下降,即使是一个小规模的应用程序,需要存储的数据量也可能大的惊人,甚至超出 了很多数据库的处理能力。过去非常罕见的T级数据,现在已经是司空见惯了。 由于需要存储的数据量不断增长,开发者面临一个问题:应该如何扩展数据库,分为纵向扩展和横向扩展,纵向扩展是最省力的做法

Flink SQL Window源码全解析

混江龙づ霸主 提交于 2019-12-05 17:54:23
文章目录 一、概述 二、Window分类 1、TimeWindow与CountWindow 2、TimeWindow子类型 Tumble Window(翻转窗口) Hop Window(滑动窗口) Session Window(会话窗口) 三、Window分类及整体流程 四、创建WindowOperator算子 五、WindowOperator处理数据图解 六、WindowOperator源码调试 1、StreamExecGroupWindowAggregate#createWindowOperator()创建算子 2、WindowOperator#processElement()处理数据,注册Timer 3、Timer触发 InternalTimerServiceImpl#advanceWatermark() WindwOperator#onEventTime() emitWindowResult()提交结果 七、Emit(Trigger)触发器 1、Emit策略 2、用途 3、语法 4、示例 5、Trigger类和结构关系 概述 窗口是无限流上一种核心机制,可以流分割为有限大小的“窗口”,同时,在窗口内进行聚合,从而把源源不断产生的数据根据不同的条件划分成一段一段有边界的数据区间,使用户能够利用窗口功能实现很多复杂的统计分析需求。 本文内容: Flink SQL

设计能力(一)

我是研究僧i 提交于 2019-12-05 02:27:14
说说概要设计 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段。 概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。 你如何划分领域边界 # 【领域驱动设计】浅谈聚合的划分与设计 聚合以及聚合根是领域驱动设计中的重要概念,根据定义,聚合是针对数据变化可以考虑成一个单元的一组相关的对象。聚合使用边界将内部和外部的对象划分开来。每个聚合有一个根。这个根是一个实体,并且它是外部可以访问的唯一的对象。根可以保持对任意聚合对象的引用,并且其他的对象可以持有任意其他的对象,但一个外部对象只能持有根对象的引用。如果边界内有其他的实体,那些实体的标识符是本地化的,只在聚合内有意义(参见《领域驱动设计-精简版》第42页)。从定义上看,貌似针对特定上下文的领域模型来讲,聚合的划分与设计并不那么困难

spark项目技术点整理

不羁的心 提交于 2019-12-04 18:01:41
spark项目技术点整理 1.性能调优:    1>分配更多的资源: 性能调优的王道就是分配和增加更多的资源。写完一个spark作业后第一个要是调节最优的资源配置,能够分配的资源达到你的能力范围的顶端后,才是考虑以后的性能调优。    2>分配那些资源: executor,cpu per executor,memory per executor.,driver memory    3>在哪里分配: 在提交spark作业时,用spark脚本,里面调整参数    /usr/local/spark/bin/spark-submit \   --class.cn.spark.sparktest.core.WordCountCluster \   --num-executor 3 \   --driver-memory 100m \   --executor-memory 100m \   --executor-core \   /usr/localSparkTest-0.0.1SNAPHOT-jar-with-dependencies.jar \    4>调节多大合适:   spark standalone:根据公司集群配置,如每台可以提供4G内存,2个cpu core;20台机器:一个作业同时提交:executor:20,4g内存,2个cpu core ,平均每个executor。  

在线公开课 | 京东云监控系统设计及落地之路

时间秒杀一切 提交于 2019-12-03 23:52:14
谈运维为什么离不开监控?典型监控系统一般是如何设计的?业务驱动的高可用监控系统又有何不同?作为巨头之一的电商平台京东, 其基于京东云的监控系统是否有值得借鉴的地方?本文将解答这些问题。本文整理自 10 月 30 日由京东云开发者社区和英特尔联合举办的在线公开课,京东云工具产品研发部专家架构师颜志杰的在线课程演讲——业务驱动监控系统设计与落地。 世上没有百分百可靠的系统,程序、机器、网络都可能在运行中出现问题,进而导致服务异常, 带来金钱及品牌的损失,所以监控目标就是降低损失,通过发现、定位、解决问题,期望缩短异常出现的 MTTR (平均修复时间)。 要达到这个目标,监控对象必须具备可观测性,即通过数据描述是否出现异常,这些数据包括指标监控 Metric、日志 log 和 Trace 数据。 为了实现缩短 MTTR 的目标,监控系统应该具有这些能力: 数据采集能力,获取可观测的数据 数据能够方便加工,比如把相关的数据汇聚起来,得到我们需要关注的数据 对这些关注的数据,做异常检测,及时产生告警 收到告警后,通过 Dashbord 查图定位,最好有专家推荐,加速定位 定位问题后,通过预案平台进行快速止损 整个监控系统需要做到高可用,监控就是为了发现异常,如果由于异常导致自身不可用,肯定是减分的 “典型监控系统从功能模块分为采集、计算、存储、告警、算法、业务端等。” 从下往上来看

Spark 调优

我们两清 提交于 2019-12-03 17:30:39
资源调优 (1). 在部署 spark 集群中指定资源分配的默认参数 在 spark 安装包的 conf 下的 spark-env.sh SPARK_WORKER_CORES SPARK_WORKER_MEMORY SPARK_WORKER_INSTANCES 每台机器启动 worker 数 #### (2). 在提交 Application 的时候给当前的 Application 分配更多的资源 提交命令选项: (在提交 Application 的时候使用选项) --executor-cores --executor-memory --total-executor-cores 配置信息: (Application 的代码设置或在 Spark-default.conf 中设置) spark.executor.cores spark.executor.memory spark.max.cores 动态分配资源 启用 External shuffle Service 服务: spark.shuffle.service.enabled true Shuffle Service 服务端口, 必须和 yarn-site中的一致: spark.shuffle.service.port 7337 开启动态资源分配: spark.dynamicAllocation.enabled true 每个