HAWQ安装、连接、对象与资源管理、查询优化、备份恢复、高可用性、运维监控
ETL处理、自动调度系统、维度表与事实表技术、OLAP与数据的图形化表示
降维、协同过滤、关联规则、回归、聚类、分类等常见数据挖掘与机器学习方法
Apache HAWQ是一个SQL-on-Hadoop产品,它非常适合用于Hadoop平台上快速构建数据仓库系统。HAWQ具有大规模并行处理、完善的SQL兼容性、支持存储过程和事务、出色的性能表现等特性,还可与开源数据挖掘库MADlib轻松整合,从而使用SQL就能进行数据挖掘与机器学习。
《HAWQ数据仓库与数据挖掘实战》内容分技术解析、实战演练与数据挖掘三个部分共27章。技术解析部分说明HAWQ的基础架构与功能特性,包括安装、连接、对象与资源管理、查询优化、备份恢复、高可用性等。实战演练部分用一个完整的示例,说明如何使用HAWQ取代传统数据仓库,包括ETL处理、自动调度系统、维度表与事实表技术、OLAP与数据的图形化表示等。数据挖掘部分用实例说明HAWQ与MADlib整合,实现降维、协同过滤、关联规则、回归、聚类、分类等常见数据挖掘与机器学习方法。
《HAWQ数据仓库与数据挖掘实战》适合数据库管理员、大数据技术人员、Hadoop技术人员、数据仓库技术人员,也适合高等院校和培训机构相关专业的师生教学参考。
王雪迎 ,王雪迎 ,毕业于中国地质大学计算机专业,高级工程师,从事数据库、数据仓库相关技术工作20年。先后供职于北京现代商业信息技术有限公司、北京在线九州信息技术服务有限公司、华北计算技术研究所、北京优贝在线网络科技有限公司,担任DBA、数据架构师等职位。著有图书《Hadoop数据仓库实践》。
1.4 为什么选择HAWQ
前面已经介绍了几种常用SQL-on-Hadoop 的实现方式,也了解了HAWQ的功能特性与系
统架构。那么站在用户的角度,我们为什么要选择HAWQ?近年来我尝试过几种
SQL-on-Hadoop 产品,从最初的Hive,到Spark SQL,再到Impala,在这些产品上进行了一系
列ETL、CDC、多维数据仓库、OLAP 实验。从数据库的角度看,这些产品与传统的DBMS
相比,功能不够完善,性能差距很大,甚至很难找到一个相对完备的Hadoop 数据仓库解决方
案。这里就以个人的实践体验来简述这些产品的不足以及HAWQ的可行性。
1.4.1 常用SQL-on-Hadoop产品的不足
1. Hive
Hive 是一款老牌的Hadoop 数据仓库产品,能够部署在所有Hadoop 发行版本上。它在
MapReduce 计算框架上封装一个SQL 语义层,极大简化了MR 程序的开发。直到现在,Hive
依然以其稳定性赢得了大量用户。
Hive 的缺点也很明显——速度太慢。随着技术的不断进步,Hive 的执行引擎从MapReduce
发展出Hive on Spark、Hive on Tez等。特别是运行在Tez 框架上的Hive,其性能有了很大改
进。即便如此,Hive 的速度还是比较适合后台批处理应用场景,而不适合交互式即时查询和
联机分析。
第1章 HAWQ 概述
2. Spark SQL
Spark SQL是Hadoop 中另一个著名的SQL 引擎,正如名字所表示的,它以Spark 作为底
层计算框架,实际上是一个Scala 程序语言的子集。Spark 基本的数据结构是RDD,一个分布
于集群节点的只读数据集合。传统的MapReduce 框架强制在分布式编程中使用一种特定的线
性数据流处理方式。MapReduce 程序从磁盘读取输入数据,把数据分解成键/值对,经过混洗、
排序、归并等数据处理后产生输出,并将最终结果保存在磁盘。Map 阶段和Reduce 阶段的结
果均要写磁盘,这大大降低了系统性能。也是由于这个原因,MapReduce 大都被用于执行批
处理任务。
为了解决MapReduce 的性能问题,Spark使用RDD 共享内存结构。这种内存操作减少了
磁盘IO,大大提高了计算速度。开发Spark 的初衷是用于机器学习系统的培训算法,而不是
SQL 查询。Spark 宣称其应用的延迟可以比MapReduce 降低几个数量级,但是在我们的实际
使用中,20TB 的数据集合上用Spark SQL 查询要10 分钟左右出结果,这个速度纵然是比Hive
快了4 倍,但显然不能支撑交互查询和OLAP应用。Spark 还有一个问题,即需要占用大量内
存,当内存不足时,很容易出现OOM错误。
3. Impala
Impala 的最大优势在于执行速度。官方宣称大多数情况下它能在几秒或几分钟内返回查
询结果,而相同的Hive 查询通常需要几十分钟甚至几小时完成,因此Impala 适合对Hadoop
文件系统上的数据进行分析式查询。Impala 默认使用Parquet 文件格式,这种列式存储方式对
于典型数据仓库场景下的大查询是较为高效的。
Impala 的问题主要体现在功能上的欠缺。例如,不支持Date 数据类型,不支持XML 和
JSON 相关函数,不支持covar_pop、covar_samp、corr、percentile、 percentile_approx、
histogram_numeric、collect_set 等聚合函数,不支持rollup、cube、grouping set 等操作,不支
持数据抽样(Sampling),不支持ORC 文件格式,等等。其中,分组聚合、取中位数等是数
据分析中的常用操作,当前的Impala 存在如此多的局限,使它在可用性上大打折扣,实际使
用时要格外注意。
前 言
从Bill Inmon在1991年提出数据仓库的概念,至今已有27的时间。在这期间人们所面对的数据,以及处理数据的方法都发生了翻天覆地的变化。随着互联网和移动终端等应用的普及,运行在单机或小型集群上的传统数据仓库不再能满足数据处理要求,以Hadoop及其生态圈组件为代表的新一代分布式大数据处理平台逐渐流行。
尽管大多数人都在讨论某种技术或者架构可能会胜过另一种,而我更倾向于从“Hadoop与数据仓库密切结合”这个角度来探讨问题。一方面企业级数据仓库中已经积累了大量的数据和应用程序,它们仍然在决策支持领域发挥着至关重要的作用;另一方面,传统数据仓库从业人员的技术水平和经验也在逐步提升。如何才能使积累的大量历史数据平滑过渡到Hadoop上,并让熟悉传统数据仓库的技术人员能够有效地利用已有的知识,可以在大数据处理平台上一展身手,才是一个亟待解决的问题。
虽然伴随着大数据的概念也出现了以MongoDB、Cassandra为代表的NoSQL产品,但不可否认,SQL仍然是数据库、数据仓库中常使用的开发语言,也是传统数据库工程师或DBA的必会语言,从它出现至今一直被广泛使用。首先,SQL有坚实的关系代数作为理论基础,经过几十年的积累,查询优化器也已经相当成熟。再者,对于开发者,SQL作为典型的非过程语言,其语法相对简单,但语义却相当丰富。据统计95%的数据分析问题都能用SQL解决,这是一个相当惊人的结论。那么SQL怎样才能与Hadoop等大数据技术结合起来,既能复用已有的技能,又能有效处理大规模数据呢?在这样的需求背景下,近年来涌现出越来越多的SQL-on-Hadoop软件,比如从早期的Hive到Spark SQL、Impala、Kylin等,本书所论述的就是众多SQL-on-Hadoop产品中的一员——HAWQ。
我最初了解到HAWQ是在BDTC 2016大会上,Apache HAWQ的创始人常雷博士介绍了该项目。他的演讲题目是“以HAWQ轻松取代传统数据仓库”,这正是我的兴趣所在。HAWQ支持事务、性能表现优良,关键是与SQL的兼容性非常好,甚至支持存储过程。对于传统数据仓库的开发人员,使用HAWQ转向大数据平台,学习成本应该是比较低的。我个人认为HAWQ更适合完成Hadoop上的数据仓库及其数据分析与挖掘工作。
本书内容
一年来,我一直在撰写HAWQ相关的文章和博客,并在利用HAWQ开发Hadoop数据仓库方面做了一些基础的技术实践,本书就是对这些工作的系统归纳与总结。全书分为技术解析、实战演练、数据挖掘三个部分,共27章。
技术解析部分说明HAWQ的基础架构与功能特性,包括安装部署、客户端与服务器连接、数据库对象与资源管理、查询优化、备份恢复、高可用性等。
实战演练部分通过一个简单而完整的示例,说明使用HAWQ设计和实现数据仓库的方法,包括初始和定期ETL处理、自动调度系统、维度表与事实表技术、联机分析处理与数据的图形化表示等。这部分旨在将传统数据仓库建模、SQL开发的简单性与大数据技术相结合,快速、高效地建立可扩展的数据仓库及其应用系统。
数据挖掘部分结合应用实例,讨论将HAWQ与MADlib整合,MADlib是一个开源机器学习库,提供了精确的数据并行实现、统计和机器学习方法,可以对结构化和非结构化数据进行分析。它的主要目的是可以非常方便地加载到数据库中,扩展数据库的分析功能。MADlib仅用SQL查询就能做简单的数据挖掘与机器学习,实现矩阵分解、降维、关联规则、回归、聚类、分类、图算法等常见数据挖掘方法。这也是HAWQ的一大亮点。
本书读者
本书适合数据库管理员、数据仓库技术人员、Hadoop或其他大数据技术人员,也适合高等院校和培训学校相关专业的师生教学参考。
代码、彩图下载
致谢
在本书编写过程中,得到了很多人的帮助与支持。感谢清华大学出版社图格事业部的老师和编辑们,他们的辛勤工作使得本书得以尽早与读者见面。感谢CSDN提供的技术分享平台,给我有一个将博客文章整理成书的机会。感谢我在优贝在线的所有同事,特别是技术部的同事们,他们在工作中的鼎力相助,使我有更多的时间投入到本书的写作中。感谢Apache HAWQ的创始人常雷先生在百忙之中为本书写推荐序。最后,感谢家人对我一如既往地支持。
因为水平有限,错漏之处在所难免,希望读者批评指正。
著 者
2018年1月
在看到这本书的标题时,我就被深深地吸引住了。我一直对数据背后的故事充满好奇,总觉得海量的数据中隐藏着无数的秘密等待被发掘。HAWQ这个词,虽然我不是技术专家,但也能感受到其专业性和前沿性。我期望这本书能够帮助我理解数据仓库的设计理念和架构,了解如何构建一个能够支撑复杂查询和海量数据存储的系统。更让我兴奋的是“数据挖掘”这个部分,我一直对机器学习和人工智能领域的数据分析技术非常感兴趣,希望这本书能够详细介绍各种数据挖掘算法的原理和应用,例如分类、回归、聚类、关联规则等,以及它们是如何被应用到实际业务场景中的。我特别期待书中能够提供一些实操性的指导,比如如何使用HAWQ这样的工具来完成数据挖掘的任务,甚至能有一些代码示例或者项目实战的案例,让我能够边学边练,真正掌握这些技能。我希望通过这本书,我能够从一个对数据感到迷茫的人,变成一个能够从数据中发现价值、解决问题的数据分析师。我相信,这本书将会是我数据学习之路上的重要里程碑,为我打开一扇通往更广阔的数据世界的大门,让我能够更自信地面对未来的数据挑战。
评分当我看到“HAWQ数据仓库与数据挖掘实战”这个书名的时候,我立刻被它所吸引了。我一直对如何有效地管理和分析海量数据感到着迷,而这个书名恰恰点出了我最感兴趣的两个方向。我设想,书中一定包含了构建一个功能强大、性能卓越的数据仓库的关键技术和最佳实践,从数据建模到数据治理,再到数据查询的优化,都可能被深入剖析。更令我期待的是“数据挖掘”这部分,我相信它会为我打开一扇通往洞察数据深层秘密的大门。我希望书中能够介绍一些经典的数据挖掘算法,比如聚类、分类、关联规则等等,并且详细讲解它们在实际场景中的应用,比如如何通过分析用户行为来提高产品转化率,或者如何利用历史数据来预测未来的市场趋势。而“实战”这两个字,更是让我感到信心十足,这意味着这本书不仅仅是理论的阐述,更会包含大量的实际操作指导和案例分析,让我能够将学到的知识立刻应用到实践中,真正掌握数据仓库和数据挖掘的技能。我期待这本书能够成为我职业生涯中的一个重要助力,让我能够更自信地驾驭数据,从中挖掘出无限的价值,解决复杂的商业问题。
评分这本书的出现,简直就是为我量身定做的。我一直在思考如何才能将零散的数据整合起来,形成一个有用的分析基础,而“HAWQ数据仓库”这个词,让我看到了希望。我猜想,书中会详细讲解如何设计和构建一个高效的数据仓库,包括数据模型的选择、ETL(提取、转换、加载)过程的优化、以及数据质量的保证等等。这些都是我一直以来非常关注但又难以系统掌握的领域。而“数据挖掘”的结合,则让我看到了更深层次的应用潜力。我期望书中能够介绍一些常用的数据挖掘技术和算法,比如如何利用这些技术来发现隐藏在数据中的模式、趋势和关联,从而指导业务决策。更重要的是,“实战”这两个字,意味着这本书不会止步于理论,而是会提供切实可行的操作指南,甚至是一些代码示例或案例研究,让我能够将所学知识应用于实际工作中。我希望通过这本书,我能够真正理解数据仓库和数据挖掘的精髓,并且能够运用HAWQ这样的工具,有效地从海量数据中提取有价值的信息,解决实际业务中遇到的难题。这本书的出版,无疑为我提供了一个宝贵的学习资源,我迫不及待地想要翻开它,开始这段激动人心的探索之旅。
评分拿到这本书的时候,我脑海里闪过的第一个念头就是“终于等到了”。我之前接触过一些零散的数据分析工具和技术,但总感觉缺乏一个系统性的框架来支撑。HAWQ这个词本身就带有一种技术的力量感,结合“数据仓库”和“数据挖掘”,仿佛预示着这本书会是一本集大成之作,能够将我零散的知识点串联起来,形成一个完整的知识体系。我最看重的是“实战”这两个字,因为我是一个动手能力比较强的人,比起枯燥的理论,我更喜欢直接接触代码和实际场景。我猜想书中会从搭建数据仓库的基础环境开始,一步步引导读者完成数据的采集、清洗、转换和加载。然后,在数据仓库的基础上,如何有效地进行数据挖掘,书中可能会介绍各种挖掘模型的选择、构建和优化技巧,以及如何解读挖掘结果并将其转化为可执行的业务洞察。我特别好奇书中会不会涉及一些大数据相关的技术,例如分布式存储、并行计算等,因为现代数据仓库和数据挖掘往往离不开这些底层技术。我希望通过阅读这本书,我能够掌握一套完整的解决方案,能够独立地完成一个数据仓库的构建,并从中挖掘出有价值的信息,为我的工作带来实质性的提升。这本书的出版,对我来说,就像是找到了一个能够指引方向的灯塔,我迫不及待地想在它的指引下,深入探索数据世界的广阔海洋。
评分这本书的封面设计就足够吸引我了,那种深邃的蓝色背景,配上银灰色的书名,传递出一种专业、前沿且令人信赖的感觉。我一直对如何从海量数据中挖掘出有价值的信息抱有极大的好奇心,而“HAWQ数据仓库与数据挖掘实战”这个书名,精准地戳中了我的痛点。虽然我还没有开始阅读,但仅仅从书名和封面,我能预感到这本书将是一次深入探索数据世界奥秘的旅程。我设想,书中一定会详细阐述构建高效数据仓库的原理和实践,包括数据建模、ETL流程、以及如何保证数据的准确性和一致性。更让我期待的是“实战”二字,这意味着不仅仅是理论的堆砌,更会有实际操作的指导,也许会包含具体的案例分析,甚至是代码示例,让我能够亲手实践,将抽象的概念转化为具体的技能。我特别想知道,书中是否会介绍一些业界领先的数据仓库解决方案,比如Hadoop生态下的Hive、Impana,或者是云端的数据仓库服务。同时,“数据挖掘”这个部分更是让我充满遐想,我期待书中能够介绍一些经典的挖掘算法,如决策树、聚类、关联规则等,并讲解它们在实际业务场景中的应用,比如用户行为分析、市场营销预测、风险控制等等。我希望这本书能够为我打开一扇通往数据驱动决策的大门,让我能够运用这些知识,在未来的工作中提升数据处理和分析的能力,解决实际遇到的挑战。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有