数据仓库

大数据平台建设系列:(二)浅谈数据仓库管理体系

时间秒杀一切 提交于 2020-01-14 15:02:14
数据仓库首要解决的问题是数据孤岛问题!在企业生产过程中,每个部门、子公司都会产生数据,数据如果不能统一管理,久而久之部门间或子公司间的数据会烟囱式生产,最终会形成数据孤岛。 数据孤岛只能片面的反应生产经营情况,缺乏全局的数据支持,是分析决策的大忌。因此,数据仓库在解决了数据孤岛问题后,才可以谈指标体系、资产管理等概念。良好的数据仓库管理体系需覆盖企业生产经营的所有数据,才能全面、真实、客观的反应企业发展情况。数据仓库需具备企业全域数据收集和存储能力(数据湖),在此基础上展开ETL分析。 数据仓库管理体系图 为保证数据处理的时效性,实时数据仓库也需要规划到数据仓库体系中。数据仓库的下游对应不同主题域的数据集市,数据使用方从数据集市中获取他们需要的数据。 因此我觉得良好的数据仓库管理体系应该包含以下几部分内容: 1.数据湖: 负责企业全范围的数据收集和存储,避免数据烟筒式生产的关键; 2.数据仓库: 离线数据仓库(传统意义上的数据仓库)、实时数据仓库(解决数据时效性问题),负责对数据湖中的数据进行ETL; 3.数据集市: 数据仓库分析结果的载体,根据不同场景划分为不同的主题域。是后续开展指标体系、数据质量体系,数据资产体系的关键因素。 来源: CSDN 作者: juan333 链接: https://blog.csdn.net/juan333/article/details

数据仓库设计

好久不见. 提交于 2020-01-13 18:51:25
数仓设计 维度建模 以维度为标准 开展数据的分析需求 适用于面向分析领域的理论。比如分析型数据库 数据仓库 数据集市(OLAP) 事实表 分析主题的客观事件度量 是分析主题的数据聚集 事实表中一条记录往往对应着客观的一个事件 往往是一堆主键的聚集 维度表 所谓的维度就是指看待问题的角度 可以通过不同的维度去分析同一个事实表 得出不同的分析结果 维度表可以跟事实表进行关联查询 多维度数据分析 所谓的多维数据分析就是指通过不同维度的聚集计算出某种度量值。 常见度量值:max min count sum avg topN 举个栗子:统计来自于北京女性24岁未婚的过去三年购物金额最多的前三个。 ​ 维度:地域 性别 年龄 婚姻 时间 度量值:sum(订单金额)--->top3 维度建模的三种模式 星型模式 一个事实表多个维度表 维度表之间没有关系 维度表跟事实表进行关联 企业数仓发展初期常见的模型 雪花模式 一个事实表多个维度表 维度表可以继续关联维度表 不利于后期维护 企业中尽量避免演化成该种模型 星座模式 多个事实表 多个维度表 某些维度表可以共用 企业数仓发展中后期常见的模型 维度建模 1、星型模式 重点 在项目初期会用到,表的数量较少 2、雪花模式 不推荐使用,关联复杂,不利于后期维护 3、星座模式 重点 在项目后期使用,可以找到相同的分析维度,建立关联,多个星型的模式

Hive入门级教程(详细)

偶尔善良 提交于 2020-01-13 08:30:20
什么是Hive Hive 是建立在 Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。 Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。 Hive的表其实就是HDFS的目录/文件,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R Job里使用这些数据。 Hive的metastore metastore是hive元数据的集中存放地(元数据存在hive数据库的数据表与HDFS存储文件的对应关系) metastore默认使用内嵌的derby数据库作为存储引擎 Derby引擎的缺点:一次只能打开一个会话 使用Mysql作为外置存储引擎,多用户同时访问 Hive系统架构 Hive安装 把hive-0.12.0.tar.gz解压到/data/目录下 [root@master conf]# tar -zxvf hive-0.12.0.tar.gz -C /data 配置Hive环境变量,可参考java环境变量配置。 [root@master conf]# source /etc/profile 配置mysql metastore 上传mysql数据库驱动mysql-connector-java-5.1.28.jar到

大数据之搭建Hive(数据仓库)单用户

孤街浪徒 提交于 2020-01-12 22:39:07
第一步: 准备一个Hdfs集群,怎么搭建Hdfs集群,在我之前的博客中写过,这里就不在叙述。jdk1.7版本以上 第二步 安装mysql,使用下面的命令进行安装 yum install mysql-server 安装mysql后启动mysql服务 service mysqld start 启动后修改mysql权限,并刷新权限 登录进mysql中,输入下面命令即可 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION; //修改权限 flush privileges; //刷新权限 123为密码,可以根据个人设置 修改完成后将mysql中的test库中user表中Host!='root’的记录删除掉,然后退出mysql,在登录就需要账号密码了。 第三步 将mysql驱动mysql-connector-java-5.1.32-bin和hive安装包apache-hive-1.2.1-bin.tar.gz放在需要的目录下。我把他们放在了/root目录下 然后解压安装hive tar xvf apache-hive-1.2.1-bin.tar.gz 然后我将apache-hive-1.2.1-bin文件夹改名为hive(改不改都不影响,主要是改完以后配置环境变量时更加方便了) 第四步

商业智能学习笔记

好久不见. 提交于 2020-01-11 02:29:32
商业智能 ,又称 商务智能 ,英文为 Business Intelligence ,简写为 BI 。 商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具 。这里所谈的数据包括来自企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部环境中的各种数据。而 商业智能能够辅助的业务经营决策,既可以是操作层的,也可以是战术层和战略层的决策 。为了 将数据转化为知识 ,需要利用 数据仓库 、 联机分析处理( OLAP )工具 和 数据挖掘 等技术。因此,从技术层面上讲,商业智能不是什么新技术,它 只是数据仓库、 OLAP 和数据挖掘等技术的综合运用 。 商业智能的概念于 1996 年最早由加特纳集团( Gartner Group )提出,加特纳集团将商业智能定义为: 商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定 。 商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息,然后分发到企业各处 。 可以认为, 商业智能是对商业信息的搜集、管理和分析过程,目的是使企业的各级决策者获得知识或洞察力( insight ),促使他们做出对企业更有利的决策 。商业智能一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成

构建数据仓库五步法

折月煮酒 提交于 2020-01-10 13:10:55
一、确定主题 即确定数据分析或前端展现的主题。(以汽车行业的KPI管理分析系统为例) 例如:我们希望分析某年某月某区域某门店销售情况,这就是一个主题。 主题要体现出某一方面的各分析角度(维度)和统计数值型数据(量度)之间的关系,确定主题时要综合考虑。统计数值型数据(量度)存在于中间的事实表;分析角度是各个维度;我们将通过维度的组合,来考察量度。 那么,“某年某月某某一地区某一门店的销售情况”这样一个主题,就要求我们通过时间、地区和门店三个维度组合,来考察销售情况这个量度。 从而,不同的主题来源于数据仓库中的不同子集,我们可以称之为数据集市。数据集市体现了数据仓库某一方面的信息,多个数据集市构成了数据仓库。 二、确定量度 在确定了主题以后,我们将考虑要分析的技术指标,诸如:年销售额之类。它们一般为数值型数据。 我们或者将该数据汇总,或者将该数据取次数、独立次数或取最大值最小值等,这样的数据称为量度。量度是要统计的指标,必须事先选择恰当,基于不同的量度可以进行复杂关键性能指标(KPI)等的设计和计算。 三、确定事实数据粒度 在确定了量度之后,我们要考虑到该量度的汇总和不同维度下量度的聚合情况。考虑到量度的聚合程度不同,我们将采用“最小粒度原则”,即将量度的粒度设置到最小。 例如:假设目前的数据最小记录到月,即数据库中记录了每月的交易额。 那么,如果我们可以确认,在将来的分析需求中

OLTP和OLAP的区别

好久不见. 提交于 2020-01-08 04:37:40
OLTP:联机事物处理 OLAP:联机分析处理 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。 OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。 OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。一般针对某些主题的历史数据进行分析,支持管理决策。 数据仓库标准上可以分为四层:ODS(临时存储层)、PDW(数据仓库层)、DM(数据集市层)、APP(应用层)。 ODS层: 为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。一般来说ODS层的数据和源系统的数据是同构的,主要目的是简化后续数据加工处理的工作。从数据粒度上来说ODS层的数据粒度是最细的。ODS层的表通常包括两类,一个用于存储当前需要加载的数据,一个用于存储处理完后的历史数据。历史数据一般保存3-6个月后需要清除,以节省空间。但不同的项目要区别对待,如果源系统的数据量不大,可以保留更长的时间,甚至全量保存; PDW层: 为数据仓库层,PDW层的数据应该是一致的、准确的、干净的数据

数据仓库模型分层

时光总嘲笑我的痴心妄想 提交于 2020-01-02 09:22:36
层级 细分 建模方法 说明 ODS 和业务表保持结构一致 同步业务源数据到数仓 DW 实体关系模型 类三范式和雪花模型建模 规划主题域、整合实体和关系; 规范化表名、字段名、字段备注等; 清洗脏数据; 生成通用字典表(地理、时间等); 包含所有业务数据、历史数据 DM dmd 维度建模(星型模型) 按照业务主题整合事实表和维度表; 为了使用方便、明确,放弃雪花模型,以DW的实体和关系组合各种维度表的星型模型 dm 计算模型 基于dmd层开发各种维度的计算指标,以聚合指标为主,也包含一些明细指标 dm_long 长表模型 每一个主题只有一张表,汇总该主题下所有的数据指标; 将指标信息维护在同一的维度字典表(dim_feature_info)中,提供统一管理、使用入口; 适用于聚合指标比较多的主题,可以直接作为dm_wide层的唯一源表; 在dm_wide更新速度跟不上时,直接作为源表支持APP层 dm_wide 大宽表模型 每一个主题只有一张表,整合了一个主题对应的大部分明细数据和通用聚合指标; 作为对外提供数据支持的主要数据层,数据仓库模型的最后一层 ADS 按照业务需求定制 提供个性化的数据指标; 提供复杂的固定报表数据模型; 应用系统专用表,独立,定位和排查线上问题方便,历史可追溯 来源: CSDN 作者: lwmxa 链接: https://blog.csdn.net

数据挖掘试题(150道)

a 夏天 提交于 2020-01-01 00:29:43
单选题 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 以下两种描述分别对应哪两种对分类算法的评价标准? (A) (a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。 (b)描述有多少比例的小偷给警察抓了的标准。 A. Precision, Recall B. Recall, Precision A. Precision, ROC D. Recall, ROC 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?© A. 频繁模式挖掘 B. 分类和预测 C. 数据预处理 D. 数据流挖掘 当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分离?(B) A. 分类 B. 聚类 C. 关联分析 D. 隐马尔可夫链 什么是KDD? (A) A. 数据挖掘与知识发现 B. 领域知识发现 C. 文档知识发现 D. 动态知识发现 使用交互式的和可视化的技术,对数据进行探索属于数据挖掘的哪一类任务?(A) A. 探索性数据分析 B. 建模描述 C. 预测建模 D. 寻找模式和规则 为数据的总体分布建模;把多维空间划分成组等问题属于数据挖掘的哪一类任务?(B) A. 探索性数据分析 B. 建模描述 C. 预测建模 D. 寻找模式和规则

数据仓库中的 SQL 性能优化(Hive篇)

眉间皱痕 提交于 2019-12-29 17:37:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一个Hive查询生成多个map reduce job,一个map reduce job又有map,reduce,spill,shuffle,sort等多个阶段,所以针对hive查询的优化可以大致分为针对MR中单个步骤的优化(其中又会有细分),针对MR全局的优化,和针对整个查询(多MR job)的优化,下文会分别阐述。 在开始之前,先把MR的流程图帖出来(摘自Hadoop权威指南),方便后面对照。另外要说明的是,这个优化只是针对Hive 0.9版本,而不是后来Hortonwork发起Stinger项目之后的版本。相对应的Hadoop版本是1.x而非2.x。 1、 Map阶段的优化(map phase) Map阶段的优化,主要是确定合适的map数。那么首先要了解map数的计算公式: num_map_tasks = max[${mapred.min.split.size}, min(${dfs.block.size}, ${mapred.max.split.size})] mapred.min.split.size指的是数据的最小分割单元大小。 mapred.max.split.size指的是数据的最大分割单元大小。 dfs.block.size指的是HDFS设置的数据块大小。 一般来说dfs.block