首页
学习
活动
专区
工具
TVP
发布

Hadoop数据仓库

专栏作者
511
文章
707372
阅读量
108
订阅数
维度模型数据仓库(十四) —— 杂项维度
(五)进阶技术         9. 杂项维度         本篇讨论杂项维度。简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。例如销售订单,它可能有很多离散数据(yes-no这种类型的值),如
用户1148526
2022-12-02
4840
维度模型数据仓库(十) —— 快照
(五)进阶技术         5. 快照         前面实验说明了处理维度的扩展。本篇讨论两种事实表的扩展技术。         有些用户,尤其是管理者,经常会要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种处理事实表扩展的技术。         周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照是每个月底时总的销售订单金额。         累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被出库、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。         下面说明周期快照和累积快照的细节问题。         周期快照         本节以销售订单的月底汇总为例说明如何实现一个周期快照。         首先需要添加一个新的事实表。图(五)- 5-1中的模式显示了一个名为month_end_sales_order_fact的新事实表。该表中有两个度量值,month_order_amount和month_order_quantity,这两个值是不能加到sales_order_fact表中的。不能加到sales_order_fact表中的原因是,sales_order_fact表和新的度量值有不同的时间属性(数据的粒度不同)。sales_order_fact表包含的是每天一条记录。新的度量值要的是每月的数据。使用清单(五)- 5-1里的脚本建立month_end_sales_order_fact表
用户1148526
2022-12-02
4000
维度模型数据仓库(三) —— 准备数据仓库模拟环境
(二)准备数据仓库模拟环境         上一篇说了很多数据仓库和维度模型的理论,从本篇开始落地实操,用一个小而完整的示例说明维度模型及其相关的ETL技术。示例数据库和ETL的SQL实现是在《Dimensional Data Warehousing with MySQL: A Tutorial》基础上做了些修改,增加了Kettle实现的部分。本篇详细说明数据仓库模拟实验环境搭建过程。         操作系统:Linux 2.6.32-358.el6.x86_64         数据库:MySQL 5.6.14 for Linux 64位         Kettle:GA Release 5.1.0         实验环境搭建过程:         1. 设计ERD         2. 建立源数据数据库和数据仓库数据库         3. 建立源库表         4. 建立数据仓库表         5. 建立过渡表         6. 生成源库测试数据         7. 生成日期维度数据         源数据数据库初始ERD如图(二)- 1所示         数据仓库数据库初始ERD如图(二)- 2所示         执行清单(二)- 1里的SQL脚本完成2-7步的任务
用户1148526
2022-12-02
9510
维度模型数据仓库(一) —— 概述
        最近看了三本关于数据仓库的书,很有收获,也很受启发。这三本书分别是《数据仓库工具箱(第三版)》、《Dimensional Data Warehousing with MySQL: A Tutorial》和《Pentaho Kettle解决方案》。在仔细研读了这三本书之后,感觉就像是一本书的三个层次。Ralph Kimball的经典著作数据仓库工具箱阐述的是维度建模方法论和按不同行业建模的示例。Dimensional Data Warehousing with MySQL在维度模型的基础上,用MySQL基本的SQL语句实现了各种常见场景下的ETL。而Kettle则是完全以Ralph Kimball提出的34个ETL子系统为理论基础开发出来的工具,以提供GUI的方式实现ETL。三本书的作者都是各自领域的杰出人物,是当之无愧的大神,内容的质量自不必说。但是也有些美中不足,比如工具箱这本书翻译的佶屈聱牙,让人颇为费解。Dimensional Data Warehousing with MySQL中有些错误,可能是印刷原因吧(此书没有中文版),有些按书中代码执行得不到想要的结果。倒是Kettle这本书,译者也是长期从事ETL开发的专业人员,不但翻译的通俗易懂,还适当添加了译者注,指出书中的一些过时的说法,至少对我来说受益匪浅。         有了以上的这些体会,我自然而然地产生一种想法:把几本书中所讲内容用一个完整的示例系统地实验一遍,使用SQL和Kettle两种方式来实现。一来对维度建模方法加深一下印象,二来也是对前段学习的一个总结,三是作为以后做数据仓库相关工作的不时之需。这是第一阶段要做的事情,第二阶段准备用Data Vault模型再做一遍,研究一下这种较新的建模方法。 内容组织: (一)维度模型基础 (二)准备数据仓库模拟环境 (三)初始装载 (四)定期装载 (五)进阶技术 1. 增加列 2. 按需装载 3. 维度子集 4. 角色扮演维度 5. 快照 6. 维度层次 7. 多路径和参差不齐的层次 8. 退化维度 9. 杂项维度 10. 多重星型模式 11. 间接数据源 12. 无事实的事实表 13. 迟到的事实 14. 维度合并 15. 累积的度量 16. 分段维度
用户1148526
2022-12-02
4680
维度模型数据仓库(十七) —— 无事实的事实表
(五)进阶技术         12. 无事实的事实表         本篇讨论一种技术,用来处理源数据中没有度量的需求。例如,产品源数据不包含产品数量信息,如果系统需要得到产品的数量,很显然不能简单地从数据仓库中直接得到。这时就要用到无事实的事实表技术。使用此技术可以通过持续跟踪产品的发布来计算产品的数量。可以创建一个只有产品(计什么数)和日期(什么时候计数)维度代理键的事实表。之所以叫做无事实的事实表是因为表本身并没有度量。         产品发布的无事实事实表  本节说明如何实现一个产品发布的无事实事实表,包括新增和初始装载product_count_fact表。图(五)- 12-1显示了跟踪产品发布数量的数据仓库模式(只显示与product_count_fact表有关的表)。
用户1148526
2022-06-14
7280
(一)ShardingSphere介绍
        随着版本不断更迭,ShardingSphere的核心功能也变得多元化起来。最开始Sharding-JDBC 1.x版本只有数据分片功能,到Sharding-JDBC 2.x版本开始支持数据库治理,如注册中心、配置中心等,再到3.x版本推出了Proxy产品,还增加了分布式事务,支持Atomikos、Narayana、Bitronix、Seata,4.x为Apache下的第一个版本,支持了更多种类的数据库,如今已经迭代到5.x版本。
用户1148526
2022-05-26
1.4K0
Pentaho Work with Big Data(七)—— 从Hadoop集群抽取数据
一、把数据从HDFS抽取到RDBMS 1. 从下面的地址下载示例文件。  http://wiki.pentaho.com/download/attachments/23530622/weblo
用户1148526
2022-05-07
2530
Pentaho Work with Big Data(一)—— Kettle连接Hadoop集群
准备研究一下Pentaho的产品如何同Hadoop协同工作。从简单的开始,今天实验了一下Kettle连接Hadoop集群。 实验目的: 配置Kettle连接Hadoop集群的HDFS。 实验环境: 4台CentOS release 6.4虚拟机,IP地址为 192.168.56.101 192.168.56.102 192.168.56.103 192.168.56.104 192.168.56.101是Hadoop集群的主,运行NameNode进程。 192.168.56.102、192.168.56.103是Hadoop的从,运行DataNode进程。 192.168.56.104安装Pentaho的PDI,安装目录为/root/data-integration。 Hadoop版本:2.7.2 PDI版本:6.0 Hadoop集群的安装配置参考 http://blog.csdn.net/wzy0623/article/details/50681554 配置步骤: 1. 启动Hadoop的hdfs 在192.168.56.101上执行以下命令 start-dfs.sh 2. 拷贝Hadoop的配置文件到PDI的相应目录下 在192.168.56.101上执行以下命令 scp /home/grid/hadoop/etc/hadoop/hdfs-site.xml root@192.168.56.104:/root/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh54/ scp /home/grid/hadoop/etc/hadoop/core-site.xml root@192.168.56.104:/root/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh54/ 下面的配置均在192.168.56.104上执行 3. 在安装PDI的主机上建立访问Hadoop集群的用户 我的Hadoop集群的属主是grid,所以执行以下命令建立相同的用户 useradd -d /home/grid -m grid usermod -G root grid 4. 修改PDI安装目录的属主为grid mv /root/data-integration /home/grid/ chown -R grid:root /home/grid/data-integration 5. 编辑相关配置文件 cd /home/grid/data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh54/ 在config.properties文件中添加如下一行 authentication.superuser.provider=NO_AUTH 把hdfs-site.xml、core-site.xml文件中的主机名换成相应的IP  修改后的config.properties、hdfs-site.xml、core-site.xml文件分别如图1、图2、图3所示。
用户1148526
2022-05-07
8290
kettle 5.1.0 连接 Hadoop hive 2 (hive 1.2.1)
1. 配置HiveServer2,在hive-site.xml中添加如下的属性
用户1148526
2022-05-07
7570
Greenplum 实时数据仓库实践(1)——数据仓库简介
对于每一种技术,先要理解相关的概念和它之所以出现的原因,这对于我们继续深入学习其技术细节大有裨益。实时数据仓库首先是个数据仓库,只是它优先考虑数据的时效性问题。因此本篇开头将介绍业界公认的数据仓库定义,它和操作型数据库应用的区别,以及为什么我们需要数据仓库。 在对数据仓库的概念有了基本的认识后,有必要单独说明一下ETL这个最重要的过程,然后向读者介绍四种常见的数据仓库架构。本篇最后描述实时数据仓库的产生背景、特定需求和使用场景,并列举一些常见的实时数据仓库技术架构。
用户1148526
2021-12-07
1.6K0
Kettle构建Hadoop ETL实践(十):并行、集群与分区
本专题前面系列文章详细说明了使用Kettle的转换和作业,实现Hadoop上多维数据仓库的ETL过程。通常Hadoop集群存储的数据量是TB到PB,如果Kettle要处理如此多的数据,就必须考虑如何有效使用所有的计算资源,并在一定时间内获取执行结果。
用户1148526
2020-12-08
1.6K0
Kettle构建Hadoop ETL实践(九):事实表技术
上两篇里介绍了几种基本的维度表技术,并用示例演示了每种技术的实现过程。本篇说明多维数据仓库中常见的事实表技术。我们将讲述五种基本事实表扩展,分别是周期快照、累积快照、无事实的事实表、迟到的事实和累积度量。和讨论维度表一样,也会从概念开始认识这些技术,继而给出常见的使用场景,最后以销售订单数据仓库为例,给出Kettle实现的作业、转换和测试过程。
用户1148526
2020-11-26
5.8K0
Kettle构建Hadoop ETL实践(八-1):维度表技术
前面文章中,我们用Kettle工具实现了Hadoop多维数据仓库的基本功能,如使用Sqoop作业项、SQL脚本、Hadoop file output、ORC output等步骤实现ETL过程,使用Oozie、Start作业项定期执行ETL任务等。本篇将继续讨论常见的维度表技术,以最简单的“增加列”开始,继而讨论维度子集、角色扮演维度、层次维度、退化维度、杂项维度、维度合并、分段维度等基本的维度表技术。这些技术都是在实际应用中经常使用的。在说明这些技术的相关概念和使用场景后,我们以销售订单数据仓库为例,给出Kettle实现和测试过程。
用户1148526
2020-11-12
3.3K0
Kettle构建Hadoop ETL实践(八-2):维度表技术
数据仓库中的关联实体经常表现为一种“父—子”关系。在这种类型的关系中,一个父亲可能有多个孩子,而一个孩子只能属于一个父亲。例如,通常一名企业员工只能被分配到一个部门,而一个部门会有很多员工。“父—子”之间形成一种递归型树结构,是一种比较理想和灵活的存储层次关系的数据结构。本小节说明一些递归处理的问题,包括数据装载、树的展开、递归查询、树的平面化等技术实现。销售订单数据仓库中没有递归结构,为了保持示例的完整性,将会使用另一个与业务无关的通用示例。
用户1148526
2020-11-12
2.2K0
Kettle构建Hadoop ETL实践(五):数据抽取
本篇介绍如何利用Kettle提供的转换步骤和作业项实现Hadoop数据仓库的数据抽取,即ETL过程中的Extract部分。首先简述Kettle中几种抽取数据的组件,然后讲述变化数据捕获(Change Data Capture,CDC),以及Kettle如何支持不同的CDC技术。Hadoop生态圈中的Sqoop工具可以直接在关系数据库和HDFS或Hive之间互导数据,而Kettle支持Sqoop输入、输出作业项。最后我们使用Kettle里的Sqoop作业项以及基于时间戳的CDC转换实现销售订单示例的数据抽取过程,将MySQL中的源数据抽取到Hive的rds数据库中。
用户1148526
2020-10-10
6K0
Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持
本篇演示使用Kettle操作Hadoop上的数据。首先概要介绍Kettle对大数据的支持,然后用示例说明Kettle如何连接Hadoop,如何导入导出Hadoop集群上的数据,如何用Kettle执行Hive的HiveQL语句,还会用一个典型的MapReduce转换,说明Kettle在实际应用中是怎样利用Hadoop分布式计算框架的。本篇最后介绍如何在Kettle中提交Spark作业。
用户1148526
2020-09-02
5.5K0
Kettle构建Hadoop ETL实践(二):安装与配置
在前一篇里介绍了ETL和Kettle的基本概念,内容偏重于理论。从本篇开始,让我们进入实践阶段。工欲善其事,必先利其器。既然我们要用Kettle构建Hadoop ETL应用,那么先要做的就是安装Kettle。本篇首先阐述选择安装环境所要考虑的因素,之后详细介绍Kettle的安装过程,最后说明Kettle配置文件、启动脚本和JDBC驱动管理。本专题后面的实践部分都是基于这里所安装的Kettle之上完成的。
用户1148526
2020-08-26
7.1K0
Kettle构建Hadoop ETL实践(一):ETL与Kettle
我在2017年写了一本名为《Hadoop构建数据仓库实践》的书。在这本书中,较为详细地讲解了如何利用Hadoop(Cloudera's Distribution Including Apache Hadoop,CDH)生态圈组件构建传统数据仓库。例如,使用Sqoop从关系数据库全量或增量抽取数据到Hadoop系统,使用Hive进行数据转换和装载处理等等。作为进阶,书中还说明了数据仓库技术中的渐变维、代理键、角色扮演维度、层次维度、退化维度、无事实事实表、迟到事实、累计度量等常见问题在Hadoop上的处理。它们都是通过Hive SQL来实现的,其中有些SQL语句逻辑复杂,可读性也不是很好。
用户1148526
2020-08-17
4.2K0
Kettle与Hadoop(九)提交Spark作业
实验环境: Spark History Server: 172.16.1.126
用户1148526
2020-06-11
1.5K0
Kettle与Hadoop(七)执行Sqoop作业
1. 建立一个作业,将HDFS文件导出到MySQL数据库。 (1)打开PDI,新建一个作业,如图1所示。
用户1148526
2020-06-08
8250
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档