维度表

建模的技巧及优化

£可爱£侵袭症+ 提交于 2020-04-08 03:29:16
建立模型应该考虑的几个问题 数 据仓库建模质量直接影响数据仓库项目的质量,甚至成败。在进行建模之前,要对数据仓库的规模、组成及模型不同部分的功能定位有明确的定义。影响数据仓库建 模的因素众多,且根据不同项目的具体情况而变化口下面的几个问题是较为通用和常见的,远远不是建立模型应该考虑的全部问题。 数据仓库的业务特点对建模的要求 1 数据仓库的数据组织是面向主题的,而不是面向报表的 数据仓库是面向业务分析的主要主题领域的,进行形成数据模型的定义。典型的主题领域主要包括: · ·顾客购买行为 · ·产品销售情况 · ·企业生产事务 · ·原料采购 · ·合作伙伴关系 · ·会计科目余额 要 对现有的报表需求进行细致的分类、分析和调整,不能为了实现单个报表而进行大量的建模工作。要根据分析的不同内容和主题对报表进行分类,明确报表中每一个 数据的定义、统计口径及不同数据之间的关系,建立在整个数据仓库内统一的数据指标的定义,将数据指标按分析主题及分析维度进行归集,从而形成面向主题的数 据模型。 例如:我们的利润表报表,当业务部门发我们一个利润表 的报表,作为需求时,我们应该进行细致的分析,最终我们确定我们面向的主题不是利润表,而是比利润表更大的一个层次的所有科目业务量的主题,这样我们在做 别的报表,例如资产负债表,现金流量表等报表时,就不用重复建模的工作了,做到了软件工程中的可重用规则。 2.

项目讲解2

旧巷老猫 提交于 2020-04-06 12:55:18
问题一:预处理是什么意思? 问题二:获取时间是在哪里输出的?这个是在hive中写的吗? 问题三:log.preprocess.sh这个预处理文件是用来做什么的?需要详细解释一下 问题四:log_click.sh点击流脚本 雪花模型与星型模型: 星型表:一个事实表,关联多个维度表 3.雪花模型,一个事实表关联过个维度表,维度表在关联其他的表,维度表是按3F式设计, 模块开发-ETL start-dfs.sh strat-yarnsh starthive.sh startbeeline.sh 是什么东西? 1.创建原始数据表 show databases ; use shizhan; show tables; shows tables; desc ods_weblog_origin 在创建 点击流模型 pageviews表 ods_click_pageviews、 点击流 visit模型表 click_stream_visit 要导入数据,已经在本地生成了,按理说应该生成到hdfs上取‘ 2.向hive中导入数据: load data local inpath '/home/hadoop/wash-part-m-0000' into tabales ods_weblog_origin partition(datestr='2013-1-1'); 导入不同的数据作用是什么

事实表和纬度表概述

坚强是说给别人听的谎言 提交于 2020-04-04 06:27:32
事实表和纬度表概述 事实表 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”。事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据。 一个按照州、产品和月份划分的销售量和销售额存储的事实表有5个列,概念上与下面的示例类似。 Sate Product Mouth Units Dollars WA Mountain-100 January 3 7.95 WA Cable Lock January 4 7.32 OR Mountain-100 January 3 7.95 OR Cable Lock January 4 7.32 WA Mountain-100 February 16 42.40 在这些事实表的示例数据行中,前3个列——州、产品和月份——为键值列。剩下的两个列——销售额和销售量——为度量值。事实表中的每个列通常要么是键值列,要么是度量值列,但也可能包含其他参考目的的列——例如采购订单号或者发票号。 事实表中,每个度量值都有一个列。不同事实表将有不同的度量值

事实表和纬度表概述

大憨熊 提交于 2020-04-04 06:23:30
事实表和纬度表概述 事实表 在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”。事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据。 一个按照州、产品和月份划分的销售量和销售额存储的事实表有5个列,概念上与下面的示例类似。 Sate Product Mouth Units Dollars WA Mountain-100 January 3 7.95 WA Cable Lock January 4 7.32 OR Mountain-100 January 3 7.95 OR Cable Lock January 4 7.32 WA Mountain-100 February 16 42.40 在这些事实表的示例数据行中,前3个列——州、产品和月份——为键值列。剩下的两个列——销售额和销售量——为度量值。事实表中的每个列通常要么是键值列,要么是度量值列,但也可能包含其他参考目的的列——例如采购订单号或者发票号。 事实表中,每个度量值都有一个列。不同事实表将有不同的度量值

漫谈航空业务维度建模之六脉神剑

柔情痞子 提交于 2020-03-27 09:07:45
小结: 1、 模型服务需求,既快速完成分析又 维度模型是数据仓库领域大师Ralph Kimall所倡导。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能 https://mp.weixin.qq.com/s/1CO9eIZFqvZlVLDQ3j1Kwg 漫谈航空业务维度建模之六脉神剑 原创: 大飞叔 数澜 2018-05-29 文字也说不清楚,甚至还把票价 燕子斜阳来又去,如此江山。 02 航空公司 发展时:等闲识得东风面,万紫千红总是春 衰退时:朝朝暮暮阳台下,雨雨云云楚国亡 票价下跌:昔日芙蓉花,今成断根草 票价上涨:欲把西湖比西子,浓妆淡抹总相宜 03 乘客 想买票:问世间,情(票)是何物,直教人生死相许 盼低价票:明月几时有?把酒问青天 买不起票:照之有余辉,揽之不盈手 买错票:一杯愁绪,几年离索 04 媒介 票价落:无可奈何花落去,似曾相识燕归来 何时涨:思君令人老,轩车来何迟 05 策划人 命运:志士幽人莫怨嗟,古来材大难为用 甲方:出塞复入塞,处处黄芦草 有创意:我欲因之梦吴越,一夜飞渡镜湖月 结款难:多情却似总无情,唯觉樽前笑不成 06 航空专家 观点:只在此山中,云深不知处 点评:穿花蛱蝶深深见,点水蜻蜓款款飞 07 过客 星沉海底当窗见,雨过河源隔座看 总结

(ETL)ETL架构师面试题(转载)

懵懂的女人 提交于 2020-03-17 11:54:42
1. What is a logical data mapping and what does it mean to the ETL team? 什么是逻辑数据映射?它对ETL 项目组的作用是什么? 答:逻辑数据映射(Logical Data Map)用来描述源系统的数据定义、目标数据仓库的模型以及将源系统的数据转换到数据仓库中需要做操作和处理方式的说明文档,通常以表格或Excel的格式保存如下的信息: 目标表名: 目标列名: 目标表类型:注明是事实表、维度表或支架维度表。 SCD类型:对于维度表而言。 源数据库名:源数据库的实例名,或者连接字符串。 源表名: 源列名: 转换方法:需要对源数据做的操作,如Sum(amount)等。 逻辑数据映射应该贯穿数据迁移项目的始终,在其中说明了数据迁移中的ETL策略。在进行物理数据映射前进行逻辑数据映射对ETL项目组是重要的,它起着元数据的作用。项目中最好选择能生成逻辑数据映射的数据迁移工具。 2. What are the primary goals of the data discovery phase of the data warehouse project? 在数据仓库项目中,数据探索阶段的主要目的是什么? 答:在逻辑数据映射进行之前,需要首先对所有的源系统进行分析。对源系统的分析通常包括两个阶段,一个是数据探索阶段(Data

数据仓库维度建模

戏子无情 提交于 2020-01-23 02:43:49
概述 数据仓库包含的内容很多,它可以包括架构、建模和方法论。对应到具体工作中的话,它可以包含下面的这些内容: 以Hadoop、Spark、Hive等组件为中心的数据架构体系。 各种数据建模方法,如维度建模。 调度系统、元数据系统、ETL系统、可视化系统这类辅助系统。 我们暂且不管数据仓库的范围到底有多大,在数据仓库体系中,数据模型的核心地位是不可替代的。 因此,下面的将详细地阐述数据建模中的典型代表:维度建模,对它的的相关理论以及实际使用做深入的分析。 文章结构 本文将按照下面的顺序进行阐述: 先介绍比较经典和常用的数据仓库模型,并分析其优缺点。 详细介绍维度建模的基本概念以及相关理论。 为了能更真切地理解什么是维度建模,我将模拟一个大家都十分熟悉的电商场景,运用前面讲到的理论进行建模。 理论和现实的工作场景毕竟会有所差距,这一块,我会分享一下企业在实际的应用中所做出的取舍。 0x01 经典数据仓库模型 下面将分别介绍四种数据仓库模型,其中前三种模型分别对应了三本书:《数据仓库》、《数据仓库工具箱》和《数据架构 大数据 数据仓库以及Data Vault》,这三本书都有中文版,非常巧的是,我只有三本数据仓库的书,正好对应了这三种理论。 Anchor模型我并不是特别熟悉,放在这里以供参考。 一、实体关系(ER)模型 数据仓库之父Immon的方法从全企业的高度设计一个3NF模型

数据集干货:一文读懂Mapsidejoin

末鹿安然 提交于 2020-01-19 05:02:23
我们知道数据分析的第一步是准备数据,所以在前面的课程里,我们介绍了元数据。今天这篇文章,主要介绍大数据量组合数据集在永洪中的应用实例:Mapsidejoin。 什么是Mapsidejoin?按照字面意思,Mapsidejoin就是M—节点—组合 。在了解Mapsidejoin之前,首先我们要了解一下MapReduce模型以及产品的四个节点CNMR的作用,通过MapReduce模型中,Mapsidejoin和Reducesidejoin的对比,了解在大数据量数据集进行组合时,Mapsidejoin的优点。 Yonghong中集群节点介绍 Client Node —C节点是客户端访问节点,客户通过访问C节点来提交任务。 Naming Node —N节点相当于集群的大脑,除了监控集群其他节点外,还要收集客户通过C节点提交的任务进行分配等等。 Map Node — M节点是存储数据文件的节点 Reduce Node —R节点是用来做汇总计算的计算 MapReduce模型介绍 百度百科对MapReduce的定义感觉还是比较全面的,简单的概括一下:MapReduce是一个基于集群的计算平台,是一个简化分布式编程的计算框架,是一个将分布式计算抽象为Map和Reduce两个阶段的编程模型。而Yonghong在进行组合数据集计算时用到的就是MapReduce模型。 适用场景:多M节点的分布式集群

构建数据仓库五步法

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

事实表 和 维度表

谁都会走 提交于 2020-01-10 12:23:59
维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度。前面的示例就可以有两个维度:类型和区域。另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性。 下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Size, Price 时间维度表:TimeKey, Season, Year, Month, Date 而事实表是数据聚合后依据某个维度生成的结果表。它的结构示例如下: 销售事实表:Prod_id(引用产品维度表), TimeKey(引用时间维度表), SalesAmount(销售总量,以货币计), Unit(销售量) 上面的这些表就是存在于数据仓库中的。从这里可以看出它有几个特点: 1. 维度表的冗余很大,主要是因为维度一般不大(相对于事实表来说的),而维度表的冗余可以使事实表节省很多空间。 2. 事实表一般都很大,如果以普通方式查询的话,得到结果一般发的时间都不是我们可以接受的。所以它一般要进行一些特殊处理。如SQL Server 2005就会对事实表进行如预生成处理等。 3. 维度表的主键一般都取整型值的标志列类型,这样也是为了节省事实表的存储空间。 事实表和维度表的分界线