摘要:
概述 使用这种方式即可以记录历史,而且最大程度的节省存储。这里简单介绍一下这种历史拉链表的更新方法。此文参考链接 本文中假设: 数据仓库中订单历史表的刷新频率为一天,当天更新前一天的增量数据; 如果一个订单在一天内有多次状态变化,则只会记录最后一个状态的历史; 订单状态包括三个:创建、支付、完成; 阅读全文
摘要:
人们普遍认为,在数据仓库和商业智能中,维度模型事给用户显示信息的首选结构,它更易于理解和使用。又因为大数据和Hadoop的出现,允许了数据的高冗余,维度建模便越发多公司使用。 上一节《2 - 到底哪种数仓设计模型更合适》中,我们简单了解了业界用的最多的四种数仓建模方法。 本节我们继续整合《阿里巴巴大 阅读全文
摘要:
事实表是维度建模的核心,紧紧围绕着业务过程来设计,通过描述度量来表达业务过程,包含了维度的引用和业务度量值。 上一篇文章我们讲了《维度表的设计》,今天我们聊一下事实表的设计。一样,我们的目录结构和内容参考了《阿里巴巴大数据之路》一书。 事实表的基础 概念 粒度 事实表中的每一条记录所表达的业务细节程 阅读全文
摘要:
维度是看待事情发生的角度,是维度建模的基础和灵魂。 维度设计基础 基本概念 我们在维度建模中,把度量称为事实,将环境称为维度。 举个例子,在电商业务中有这么个需求: 我需要统计昨日所有店铺的成交金额。这里的维度就是:日期、店铺;度量(也就是事实)是:成交金额。 所以延伸下来,电商业务中的基础维度有: 阅读全文
摘要:
模型设计,通俗理解就是如何去设计表,使得表与表之间的关系组成一张有规律的大网。 在上一节《所以,什么是数据仓库》中提及数仓建模的方法论,其中点出了两位重要人物Kimball的维度建模和Inmon的3NF建模。在开始建设数据仓库前,模型的选择是最重要的一关之一,它是整个数仓中数据组织的基本骨架。在本节 阅读全文
摘要:
声明: 1. 本栏是个人总结,如有错漏,请指正 2. 数据仓库的构建目前业界只有指导方案,并没有统一的标准,每个公司都可以按照实际情况进行设计 3. 本总结参考《阿里巴巴大数据之路》、《数据仓库工具箱》 产生背景 你以为我又要从OLTP\OLAP进化史开始巴拉巴拉?不了,浪费时间。数据仓库,其实也就 阅读全文
摘要:
一. 部署读写分离的契机 目前公司整体项目稳定运行在CDH5.6版本上,与其搭配的Hbase1.0.0无法正确运行Kylin,原因是Kylin只满足Hbase1.1.x+版本。解决方案如下 1. 升级整体CDH版本,从而获得高版本Hbase(方案风险太大) 2. 把Hbase从CDH单独剥离出来,用 阅读全文
摘要:
Hive的列除了支持基本的数据类型外,还支持使用Struct、Map和Array三种集合数据类型。 假设某表有如下一行,我们用JSON格式来表示其数据结构。在Hive下访问的格式为 { "name": "John Doe", "salary": 100000.0 , "subordinates": ["Mary Smith" , "Todd Jones"] , //列表... 阅读全文
摘要:
Hive分区的概念与传统关系型数据库分区不同。 传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区。 Hive的分区方式:由于Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并不是一个实际 阅读全文
摘要:
Hive简介 Hive是什么 Hive是构建在Hadoop之上的数据仓库平台。 Hive是一个SQL解析引擎,将SQL转译成MapReduce程序并在Hadoop上运行。 Hive是HDFS的一个文件目录,一个表名对应一个目录名,若该表是分区表,则分区值对应子目录名。 Hive的历史由来 Hive体系结构 Hive在Hadoop中的位置 Hive设计特征 Hive ... 阅读全文