Linux
wzy0623
25年的数据库、数据仓库、大数据相关工作。《Hadoop构建数据仓库实践》、《HAWQ数据仓库与数据挖掘实战》、《SQL机器学习库——MADlib技术解析》、《MySQL高可用实践》、《Kettle构建Hadoop ETL》、《Greenplum构建实时数据仓库实践》作者。
展开
-
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(五)
五、快照 前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。 有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。 周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。 累积快照用于跟踪事实表的原创 2016-07-22 11:21:38 · 5449 阅读 · 2 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(七)
七、递归 数据仓库中的关联实体经常表现为一种“父—子”关系。在这种类型的关系中,一个父亲可能有多个孩子,而一个孩子只能属于一个父亲。例如,一个人只能被分配到一个部门,而一个部门可能被分配许多人。“父—子”之间是一种递归型树结构,是一种最理想、最灵活的存储层次树的数据结构。本节说明一些递归处理的问题,包括数据装载、树的展开、递归查询、树的平面化等技术实现。为了保持销售订单示例的完整性,原创 2016-07-28 14:31:22 · 4705 阅读 · 2 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(三)
三、维度子集 有些需求不需要最细节的数据。例如更想要某个月而不是某天的记录。再比如相对于全部的销售数据,可能对某些特定状态的数据更感兴趣等。这些特定维度包含在从细节维度选择的行中,所以叫维度子集。维度子集比细节维度的数据少,因此更易使用,查询也更快。 本节中将准备两个特定维度,它们均取自现有的维度:月份维度(日期维度的子集),Pennsylvania州客户维度(客户维度原创 2016-07-18 13:21:25 · 9582 阅读 · 3 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(十一)
十一、多重星型模式 从“进阶技术”开始,已经通过增加列和表扩展了数据仓库,在进阶技术(五) “快照”里增加了第二个事实表,month_end_sales_order_fact表。这之后数据仓库模式就有了两个事实表(第一个是在开始建立数据仓库时创建的sales_order_fact表)。有了这两个事实表的数据仓库就是一个标准的双星型模式。本节将在现有的维度数据仓库上再增加一个新的星型结原创 2016-08-04 14:26:03 · 2786 阅读 · 1 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(九)
九、退化维度 本节讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库模式。简单的模式比复杂的更容易理解,也有更好的查询性能。当一个维度没有数据仓库需要的任何数据时就可以退化此维度,此时需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。1. 退化订单维度 本小节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先原创 2016-08-01 13:12:48 · 4459 阅读 · 0 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(十二)
十二、间接数据源 本节讨论如何处理间接数据源。间接数据源与维度表具有不同的粒度,因此不能直接装载进数据仓库。在这里通过修改进阶技术(八)——“多路径和参差不齐的层次”里的促销源数据说明怎样处理间接数据源。CAMPAIGN SESSION,MONTH,YEAR2016 First Campaign,1,20162016 First Campaign,2,20162016 Firs原创 2016-08-04 17:23:49 · 4254 阅读 · 1 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(十)
十、杂项维度 本节讨论杂项维度。简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。例如销售订单,它可能有很多离散数据(yes-no这种类型的值),如verification_ind(如果订单已经被审核,值为yes)credit_check_flag(表示此订单的客户信用状态是否已经检查)new_customer_ind(如果这是新客户的首个订单,值为yes)web_order原创 2016-08-01 16:16:40 · 5151 阅读 · 0 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(十三)
十三、无事实的事实表 本节讨论一种技术,用来处理源数据中没有度量的需求。例如,产品源数据不包含产品数量信息,如果系统需要得到产品的数量,很显然不能简单地从数据仓库中直接得到。这时就要用到无事实的事实表技术。使用此技术可以通过持续跟踪产品的发布来计算产品的数量。可以创建一个只有产品(计什么数)和日期(什么时候计数)维度代理键的事实表。之所以叫做无事实的事实表是因为表本身并没有度量。1.原创 2016-08-05 15:31:51 · 3167 阅读 · 0 评论 -
基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化(一)
一、OLAP与Impala简介1. OLAP简介 OLAP是Online Analytical Processing的缩写,意为联机分析处理。此概念最早是由关系数据库之父E.F.Codd于1993年提出,至今已有20多年。OLAP允许以一种称为多维数据集的结构,访问业务数据源经过聚合和组织整理的后数据。以此为标准,OLAP作为单独的一类产品同联机事务处理(OLTP)得以明显区分。原创 2016-08-17 16:30:54 · 17981 阅读 · 7 评论 -
基于Hadoop生态圈的数据仓库实践 —— 进阶技术(十四)
十四、迟到的事实 装载日期在生效日期后的事实就是迟到的事实。晚于订单日期进入源数据的销售订单可以看做是一个迟到事实的例子。销售订单被装载进其事实表时,装载的日期晚于销售订单的订单日期,因此是一个迟到的事实。(因为定期装载的是前一天的数据,所以这里的晚于指的是晚2天及其以上。) 迟到事实影响周期快照事实表的装载,如进阶技术(五) “快照”中讨论的month_end_sal原创 2016-08-08 18:12:57 · 4216 阅读 · 2 评论 -
基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化(五)
五、Hue、Zeppelin比较 上一节简单介绍了Hue这种Hadoop生态圈的数据可视化组件,本节讨论另一种类似的产品——Zeppelin。首先介绍一下Zeppelin,然后说明其安装的详细步骤,之后演示如何在Zeppelin中添加MySQL翻译器,最后从功能、架构、使用场景几方面将Hue和Zeppelin做一个比较。1. Zeppelin简介 Zeppelin是一个原创 2016-08-30 16:17:47 · 7708 阅读 · 5 评论 -
基于hadoop生态圈的数据仓库实践 —— 进阶技术(十五)
十五、维度合并 随着数据仓库中维度的增加,我们会发现有些通用的数据存在于多个维度中。例如,客户维度的客户地址相关信息、送货地址相关信息和工厂维度里都有邮编、城市和州。本节说明如何把三个维度里的邮编相关信息合并到一个新的维度。1. 修改数据仓库模式 为了合并维度,需要改变数据仓库模式。下图显示了修改后的模式。新增了一个zip_code_dim表,sales_order_f原创 2016-08-09 18:21:48 · 5996 阅读 · 3 评论 -
基于hadoop生态圈的数据仓库实践 —— 进阶技术(十六)
十六、累积的度量 本篇说明如何实现累积月底金额,并对数据仓库模式和初始装载、定期装载脚本做相应地修改。累积度量是半可加的,而且它的初始装载比前面做的要复杂的多。 可加、半可加、不可加事实 事实表中的数字度量可划分为三类。最灵活、最有用的度量是完全可加的,可加性度量可以按照与事实表关联的任意维度汇总。半可加度量可以对某些维度汇总,但不能对所有维度汇总。差额是原创 2016-08-10 18:09:45 · 3795 阅读 · 2 评论 -
基于hadoop生态圈的数据仓库实践 —— 进阶技术(十七)
十七、分段维度 本节说明分段维度的实现技术。分段维度包含连续值的分段。例如,年度销售订单分段维度可能包含有叫做“低”、“中”、“高”的三档;各档定义分别为0.01到15000、15000.01到30000.00、30000.01到99999999.99。如果一个客户的年度销售订单金额为10000,则被归为“低”档。 分段维度可以存储多个分段集合。例如,可能有一个用于促销原创 2016-08-11 17:01:10 · 4553 阅读 · 1 评论 -
基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化(六)
六、Hue数据可视化实例 本节用Impala、DB查询示例说明Hue的数据查询和可视化功能。1. Impala查询 在Impala OLAP实例一节中执行了一些查询,现在在Hue里执行查询,直观看一下结果的图形化表示效果。(1)登录Hue,点击图标进入“我的文档”页面。(2)点击创建一个名为“销售订单”的新项目。(3)点击进入Impala查询编辑页面,创建一个新的Imp原创 2016-08-31 16:16:51 · 8067 阅读 · 4 评论 -
基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化(二)
二、Hive、Spark SQL、Impala比较 Hive、Spark SQL和Impala三种分布式SQL查询引擎都是SQL-on-Hadoop解决方案,但又各有特点。前面已经讨论了Hive和Impala,本节先介绍一下SparkSQL,然后从功能、架构、使用场景几个角度比较这三款产品的异同,最后附上分别由cloudera公司和SAS公司出示的关于这三款产品的性能对比报告。1.原创 2016-08-19 12:35:08 · 31970 阅读 · 8 评论 -
基于hadoop生态圈的数据仓库实践 —— OLAP与数据可视化(三)
三、Impala OLAP实例 本节使用前面销售订单的例子说明如何使用Impala做OLAP类型的查询,以及实际遇到的问题及解决方案。为了处理SCD和行级更新,我们前面的ETL使用了Hive ORCFile格式的表,可惜到目前为止,Impala还不支持ORCFile。用Impala查询ORCFile表时,错误信息如下图所示。 这是一个棘手的问题。如果我们再建一套和dw库原创 2016-08-25 14:38:41 · 6406 阅读 · 2 评论 -
基于Hadoop生态圈的数据仓库实践 —— 目录
第一部分:概述一、什么是数据仓库1. 操作型系统和分析型系统2. ETL3. 数据需求4. 多维数据模型基础二、在Hadoop上实现数据仓库1. 大数据的定义2. 为什么需要分布式计算3. Hadoop基本组件4. Hadoop生态圈的其它组件5. Hadoop生态圈的分布式计算思想6. 与传统数据仓库架构对应的Hadoop生态圈工具第二原创 2016-06-25 07:35:43 · 3164 阅读 · 1 评论 -
轻松使用crontab调度作业
很容易用crontab命令创建一个任务,定期运shell脚本,如:# 修改文件属性为可执行chmod 755 /root/regular_etl.sh# 编辑crontab文件内容crontab -e# 添加如下一行,指定每天2点执行定期装载作业,然后保存退出0 2 * * * /root/regular_etl.sh 这就可以了,需要用户做的就是如此简单,其它的事情交给cron系统服原创 2016-12-28 09:28:23 · 2366 阅读 · 0 评论 -
使用shell并行执行多个脚本
有没有一种比较通用的并行执行多个SQL脚本的方法呢?每种数据库都提供命令行接口执行SQL语句,因此最容易想到的就是通过初始化多个并发的会话并行执行,每个会话运行一个单独的查询,用来抽取不同的数据部分。以Oracle例如,假设要从订单表抽取数据,订单表已经是按月做了范围分区,分区名称是orders_jan2008、orders_feb2008等。要从订单表抽取一年的数据,可以初始化12个并发的SQL原创 2016-12-28 11:31:26 · 30045 阅读 · 0 评论