粒度

企业数据仓库构架(Kimball架构)

断了今生、忘了曾经 提交于 2019-12-02 15:08:41
1、建立维度模型的时候不一定要求维度模型满足3范式,维度表存储空间的权衡往往需要关注简单性和 可关注简单性和可访问性 2、维度模型 星型和OLAP多维数据库 3、粒度 每行中的数据是一个特定级别的细节数据,称为粒度 4、维度建模的核心 事实表中的所有度量必须具有相同的粒度 5、事实表的粒度划分为三类 事务、周期性快照和累计快照 6、展现区数据特点 维度化的、原子的、以业务过程为中心的 # 在整个项目的过程中,都要关注数据的质量、一致性和完整性A 系统框架主要有三部分组成:源事务、后端、前端 Kimball的DW/BI架构 Kimball DW/BI 架构的核心元素 Kimball 分工明确,资源占用更加合理,调用链路少,整个DW/BI系统更加稳定、高效、有保障。 ETL系统高度关注数据质量、完整性、一致性。输入数据在进入时要检查其质量。一致的获取增值度量和属性的业务规则由ETL系统中的有技能的专业人员开发,这样会给客户发布更好的、保持一致性的产品。 展现区根据客户要求使用统一维度组织数据。方便,高效为BI应用提供数据服务。 来源: https://blog.csdn.net/Jmayday/article/details/102778207

[转帖]MySQL的又一神器-锁,MySQL面试必备

心已入冬 提交于 2019-12-02 14:14:41
MySQL的又一神器-锁,MySQL面试必备 https://segmentfault.com/a/1190000020762791 lock 低一级的是 latch 原文链接:blog.ouyangsihai.cn >> MySQL的又一神器-锁,MySQL面试必备 在看这篇文章之前,我们回顾一下前面的几篇关于MySQL的文章,应该对你读下面的文章有所帮助。 InnoDB与MyISAM等存储引擎对比 面试官问你B树和B+树,就把这篇文章丢给他 MySQL的B+树索引的概念、使用、优化及使用场景 MySQL全文索引最强教程 MySQL的又一神器-锁,MySQL面试必备 1 什么是锁 1.1 锁的概述 在生活中锁的例子多的不能再多了,从古老的简单的门锁,到密码锁,再到现在的指纹解锁,人脸识别锁,这都是锁的鲜明的例子,所以,我们理解锁应该是非常简单的。 再到MySQL中的锁,对于MySQL来说,锁是一个很重要的特性,数据库的锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性,这样才能保证在高并发的情况下,访问数据库的时候,数据不会出现问题。 1.2 锁的两个概念 在数据库中,lock和latch都可以称为锁,但是意义却不同。 Latch 一般称为 闩锁 (轻量级的锁),因为其要求锁定的时间必须非常短。若持续的时间长,则应用的性能会非常差,在InnoDB引擎中

Zuul【限流】

泄露秘密 提交于 2019-12-02 11:41:18
在项目中,大部分都会使用到hyrtrix做熔断机制,通过某个预定的阈值来对异常流量进行降级处理,除了做服务降级以外,还可以对服务进行限流,分流,排队等。 当然,zuul也能做到限流策略,最简单的方式就是使用自定义的filter加上限流算法,生产环境中zuul网关肯定是部署的多节点,所以还会借助类似Redis的K/V存储工具。 这里借助的是第三方工具《 spring-cloud-zuul-ratelimit 》,开箱即用,直接加入pom依赖即可: <dependency> <groupId>com.marcosbarbero.cloud</groupId> <artifactId>spring-cloud-zuul-ratelimit</artifactId> <version>2.0.6.RELEASE</version> </dependency> 它提供了多种细粒度策略: user:认证用户名或者匿名,针对某个用户进行限流。 origin:客户机IP,针对请求的客户机IP进行限流。 url:针对某个特定的url进行限流。 serviceId:针对某个服务进行限流。 多粒度临时变量存储方式: IN_MEMEORY:基于本地内存,底层是ConcurrentHashMap。 REDIS:基于Redis的K/V存储。 CONSUL:基于consul的K/V存储。 JPA:基于数据库。

性能分析 函数粒度

社会主义新天地 提交于 2019-12-01 13:53:54
在Linux下做性能分析3:perf - 知乎 https://zhuanlan.zhihu.com/p/22194920 Linux Perf 性能分析工具及火焰图浅析 - 知乎 https://zhuanlan.zhihu.com/p/54276509 来源: https://www.cnblogs.com/yuanjiangw/p/11689445.html

DW-ODS

两盒软妹~` 提交于 2019-12-01 07:57:14
ODS (操作数据存储) 编辑 讨论 操作数据存储ODS(Operational Data Store)是 数据仓库 体系结构中的一个可选部分,也被称为贴源层。ODS具备数据仓库的部分特征和 OLTP 系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、不断变化的”数据。 中文名 操作数据存储 外文名 Operational Data Store 用 途 业务系统 功 能 存储、查询以及形成隔离层 目录 1 作用 2 设计方法 3 设计指南 ▪ 数据调研 ▪ 数据范围 ▪ 主题元素 作用 编辑 一般在带有ODS的 系统体系结构 中,ODS都设计为如下几个作用: 1、在业务系统和数据仓库之间形成一个隔离层 一般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。 2、转移一部分业务系统细节查询的功能 在数据仓库建立之前,大量的报表、分析是由业务系统直接支持的,在一些比较复杂的报表生成过程中,对业务系统的运行产生相当大的压力。ODS的数据从粒度

mysql 的S 锁和X锁的区别

别说谁变了你拦得住时间么 提交于 2019-11-29 09:53:18
共享锁和排它锁 MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock) 读锁是共享的,或者说是相互不阻塞的 写锁是排他的,一个写锁会阻塞其他的写锁和读锁 在实际的数据库系统中,每时每刻都发生锁定,当某个用户在修改某部分数据时,mysql会通过锁定阻止其他用户对同一数据的读取 共享锁【S锁】 又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。 这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 排他锁【X锁】 又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。 这保证了其他事务在T释放A上的锁之前不能再读取和修改A。 锁的粒度和锁的策略MySQL 有三种锁的级别:页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。 MySQL这3种锁的特性可大致归纳如下: 表级锁:开销小

架构设计(2)-架构设计原则

喜夏-厌秋 提交于 2019-11-28 08:11:37
如何设计出一个好的架构,不像数据公式或者定律,很难一概而就。很多时候是设计者(架构师)的各种设想,各种权衡折中而符合系统需求的智慧输出。但我们掌握前人总结的经验,让我们站在巨人的肩膀上高山远瞩。一些好的架构设计原则可以确保设计决策在一定程度上能够满足需求。 一、形成架构原则的过程 二、15条普适架构原则 《架构真经》这本书简单阐述了架构设计的一些常用的原则。罗列一些常用的原则,下面是15个具有普适价值架构原则 : 1、N+1设计 :开发的系统在发生故障时,至少有一个冗余的实例 广泛地应用在从数据中心设计到应用服务的部署: • 在发生故障时,系统至少要有一个冗余的实例。 • 必须确保一个为自己,一个为客户、 一个为失败 2、回滚设计 :确保系统可以向后兼容。 1)如果很久才能修复服务,那么就要在一定的时间范围内完成回滚。 2)灾难性的事故,例如损坏客户数据,往往在部署后好几天才出现。 3)系统最好按照预先的设计,通过发布或回滚解决问题。 3、禁用设计:可以关闭任何发布功能 当设计系统,特别是与其他系统或服务通讯的高风险系统时,要确保这些系统能够通过开关来禁用。这将为修复服务提供额外的时间,同时确保系统不因为错误引起诡异需求而宕机。 4、监控设计 :在设计阶段就要考虑监控,而不是在部署完成后。 通过监控发现系统的可用性问题。 • 通过监控使系统自我诊断、自我修复成为可能。 •

关于粗粒度细粒度

冷暖自知 提交于 2019-11-28 01:14:55
一、粗粒度 1.工作原理: (1)Spark Streaming接收到实时数据流(data stream) (2)Spark Streaming把数据按照指定的时间段切成一片片小的数据块(小批次) (3)然后Spark Streaming把小的数据块传给Spark Engine处理 (4)Spark Engine处理后,输出处理后的数据(processed result) 每个应用程序的运行环境由一个Driver和若干个Executor组成,其中,每个Executor占用若干个资源,内部可运行多个Task,应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源(即使不用),最后程序运行结束之后,回收这些资源 Spark是一个典型粗粒度资源调度。 二、细粒度 1.工作原理: (1)driver:启动spark应用程序,构建StreamingContext (2)executor:启动receiver接收器,接收数据 (3)executor:接收input Stream,然后拆分不同block(小块) (4)executor:receiver将block存储信息发送给StreamingContext (5)driver:启动job,然后将task提交到对应executor上执行 与粗粒度模式一样,应用程序启动时,辉县启动executor

用Python粒度分析及其在沉积学中应用研究

允我心安 提交于 2019-11-27 03:44:28
原文链接: http://tecdat.cn/?p=5754 谷物沉降是沉积学中最重要的问题之一(因此也是沉积地质学),因为在不知道某一粒度粒子的沉降速度是多少的情况下,沉积物运输和沉积都不能被理解和建模。当浸没在水中时,非常小的颗粒具有足够小的质量,使得它们在任何湍流发展之前达到最终速度。这适用于在水中沉降的粘土和淤泥尺寸的颗粒,对于这些颗粒尺寸等级,斯托克斯定律可用于计算沉降速度: ​ 对于比淤泥更粗糙的粒度,这一类别明显包括地质学家非常感兴趣的大量沉积物和岩石类型,事情变得更加复杂。其原因是在落下的谷物后面产生了分离尾迹; 该尾迹的出现导致颗粒的前部和后部之间的湍流和大的压力差。对于大颗粒 - 鹅卵石,鹅卵石 - 这种效应非常强烈,与压力相比,粘性力变小,湍流阻力占主导地位; 可以使用经验方程估计沉降速度 ​ 重要的是,对于较大的颗粒,沉降速度增加得更慢,颗粒尺寸的平方根与粒子直径的平方相反,如斯托克斯定律。 沙粒足够小,粘性力仍然在其水下沉降行为中发挥重要作用,但足够大以至于偏离斯托克斯定律是显着的,并且尾流紊流不容忽视。 : ​ 在D的小值处,分母中的左项比包含D的三次幂的左项大得多,并且该等式等效于斯托克斯定律。在D值较大时,第二项占主导地位,并且沉降速度收敛于湍流阻力方程的解。 首先,我们必须将这三个方程实现为Python函数: import numpy as np

电商用户画像数据仓库建立

隐身守侯 提交于 2019-11-27 02:20:41
7.1 数据仓库准备工作 为什么要对数据仓库分层? l 用空间换时间,通过大量的预处理来提升应用系统的用户体验(效率),因此数据仓库会存在大量冗余的数据; l 如果不分层的话,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大 l 通过数据分层管理可以简化数据清洗的过程,因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。 数据仓库标准上可以分为四层:ODS(临时存储层)、PDW(数据仓库层)、MID(数据集市层)、APP(应用层) ODS层: 为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。一般来说ODS层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说ODS层的数据粒度是最细的。ODS层的表通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存; PDW层: 为数据仓库层,PDW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了杂质