HAWQ取代传统数仓实践(一)——为什么选择HAWQ

为了跟上所谓“大数据”技术的脚步,从两年前开始着手实践各种SQL-on-Hadoop技术,从最初的Hive,到SparkSQL,再到Impala,进行了一系列ETL、CDC、多维数据仓库、OLAP的实验。作为一名从业20年以上的DBA,从数据库的角度看,我的总体感觉是这些技术与传统的DBMS相比,功能不完善,性能差距很大,甚至很难找到一个可行的、相对完备的Hadoop数据仓库解决方案。这使我在实际...
阅读(4031) 评论(8)

HAWQ与Hive查询性能对比测试

一、实验目的        本实验通过模拟一个典型的应用场景和实际数据量,测试并对比HAWQ内部表、外部表与Hive的查询性能。二、硬件环境1. 四台VMware虚机组成的Hadoop集群。2. 每台机器配置如下:(1)15K RPM SAS 100GB(2)Intel(R) Xeon(R) E5-2620 v2 @ 2.10GHz,双核双CPU(3)8G内存,8GSwap(4)10000Mb/s...
阅读(3173) 评论(2)

HAWQ技术解析(十八) —— 问题排查

(原文地址:http://hawq.incubator.apache.org/docs/userguide/2.1.0.0-incubating/troubleshooting/Troubleshooting.html)        本章描述如何解决HAWQ系统中常见的错误和问题。一、查询性能问题        问题:查询慢。        原因:一个查询执行缓慢可能有多个原因。例如,数据分布的...
阅读(2275) 评论(0)

HAWQ技术解析(十七) —— 最佳实践

一、HAWQ参数配置最佳实践(原文地址:http://hawq.incubator.apache.org/docs/userguide/2.1.0.0-incubating/bestpractices/config_hawq_bestpractices.html)        在$GPHOME/etc/hawq-site.xml文件中维护HAWQ的配置参数。该文件存在于所有HAWQ实例上,并可以...
阅读(1699) 评论(0)

HAWQ技术解析(十六) —— 运维监控

与任何IT系统一样,为了保证HAWQ集群的高可用和高性能,需要进行一系列监控与维护活动。本篇讨论HAWQ推荐的运维与监控活动。一、推荐的监控与维护任务        表1至表5是HAWQ向系统管理员推荐定期执行的活动,包括系统与数据库监控、数据与数据库的维护、补丁与升级等,目的是要确认系统的所有组件都可以正常工作。监控工作有助于在早期发现和诊断问题。维护任务帮助用户保持系统是最新的,应用了所有错误...
阅读(973) 评论(0)

HAWQ技术解析(十五) —— 备份恢复

一、为什么还需要备份        HAWQ作为一个数据库管理系统,备份与恢复是其必备功能之一。HAWQ的用户数据存储在HDFS上,系统表存储在master节点主机本地。HDFS上的每个数据块缺省自带三份副本,而且一个数据块的三份副本不会存储在同一个DataNode上,因此一个DataNode节点失效不会造成数据丢失。而配置了HDFS NameNode HA与HAWQ master HA后,Nam...
阅读(897) 评论(0)

HAWQ技术解析(十四) —— 高可用性

一、HAWQ高可用简介        HAWQ作为一个传统数仓在Hadoop上的替代品,其高可用性至关重要。通常硬件容错、HAWQ HA、HDFS HA是保持系统高可用时需要考虑并实施的三个层次。另外实时监控和定期维护,也是保证集群所有组件健康的必不可少的工作。        总的来说,HAWQ容错高可用的实现方式包括:硬件冗余master镜像双集群1. 硬件级别的冗余(RAID和JBOD)...
阅读(2199) 评论(0)

HAWQ技术解析(十三) —— 资源管理

一、HAWQ如何管理资源        HAWQ使用多种机制管理CPU、内存、I/O、文件句柄等系统资源,包括全局资源管理、资源队列、强制资源使用限额等。1. 全局资源管理        Hadoop通常使用YARN全局管理资源。YARN是一个通用的资源管理框架,为MapReduce作业或其它配置了YARN的应用提供资源。在YARN环境中,资源分配的单位被称为容器(container),YARN还...
阅读(1931) 评论(3)

HAWQ技术解析(十二) —— 查询优化

即便对SELECT等数据库查询语句已经很熟悉了,但HAWQ里的查询有其自己的特点,还是需要研究一下。一、HAWQ的查询处理流程        理解HAWQ的查询处理过程有助于写出更加优化的查询。与任何其它数据库管理系统类似,HAWQ也有如下的查询执行步骤:用户使用客户端应用(如psql)连接到HAWQ master主机上的数据库实例,并向系统提交SQL语句。master接收到查询后,由查询编译器解...
阅读(2326) 评论(2)

HAWQ技术解析(十一) —— 数据管理

一、基本操作1. INSERT        在常用的增删改查数据库操作中,HAWQ仅支持INSERT和SELECT两种,不支持UPDATE和DELETE,这主要是因为HDFS是一个只能追加数据而不能更新的文件系统。SELECT语句最熟悉不过,它应该是数据库中最常用的语句了,在下一篇“查询优化”时再进一步讨论。INSERT语句用于创建表行,该命令需要表名和表中每个列的值。在HAWQ中,该命令有四种...
阅读(3308) 评论(6)

HAWQ技术解析(七) —— 存储分布

在HAWQ中创建一个表时,应该预先对数据如何分布、表的存储选项、数据导入导出方式和其它HAWQ特性做出选择,这些都将对数据库性能有极大影响。理解有效选项 的含义以及如何在数据库中使用它们,将有助于做出正确的选择。一、数据存储模型        create table的with子句用于设置表的存储选项。例如:db1=# create table t1 (a int) with db1-#...
阅读(4384) 评论(0)

HAWQ技术解析(十) —— 过程语言

HAWQ支持用户自定义函数(user-defined functions,UDF),还支持给HAWQ内部的函数起别名。编写UDF的语言可以是SQL、C、Java、Perl、Python、R和pgSQL。其中除SQL和C是HAWQ的内建语言,其它语言通常被称为过程语言(PLs),支持过程语言编程是对HAWQ核心的功能性扩展。HAWQ我所使用过的SQL-on-Hadoop解决方案中唯一支持过程化编程的...
阅读(1098) 评论(1)

HAWQ技术解析(九) —— 外部数据

HAWQ不但可以读写自身系统中的表,而且能够访问HDFS、Hive、HBase等外部系统的数据。这是通过一个名为PXF的扩展框架实现的。大部分的外部数据是以HAWQ外部表的形式进行访问的,但对于Hive,除外部表方式,PXF还能够与HCatalog整合直接查询Hive表。PXF内建多个连接器,用户也可以按照PXF API,创建自己的连接器,访问其它并行数据存储或处理引擎。一、安装配置PXF如果使用...
阅读(1679) 评论(0)

HAWQ技术解析(八) —— 大表分区

一、HAWQ中的分区表        与大多数关系数据库一样,HAWQ也支持分区表。这里所说的分区表是指HAWQ的内部分区表,外部分区表在后面“外部数据”篇讨论。在数据仓库应用中,事实表通常有非常多的记录,分区可以将这样的大表在逻辑上分为小的、更易管理的数据片段。HAWQ的优化器支持分区消除以提高查询性能。只要查询条件中可以使用分区键作为过滤条件,那么HAWQ只需要扫描满足查询条件的分区,而不必进...
阅读(2396) 评论(0)

HAWQ技术解析(六) —— 定义对象

HAWQ本质上是一个数据库系统,所以这里所说的对象指的是数据库对象。和其它关系数据库类似,HAWQ中有数据库、表空间、表、视图、自定义数据类型、自定义函数、序列等对象。本篇将简述这些对象的创建与管理。对HAWQ中表的存储方式与分布策略等特性的选择,会对数据库性能产生极大的影响,同时这也是一个复杂的话题,将在下一篇单独讨论。一、创建和管理数据库        HAWQ中数据库的概念与MySQL类似,...
阅读(1229) 评论(0)
278条 共19页首页 上一页 1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1297425次
    • 积分:17326
    • 等级:
    • 排名:第553名
    • 原创:253篇
    • 转载:20篇
    • 译文:5篇
    • 评论:155条
    博客专栏
    文章分类
    最新评论