使用Hive工具构建数据库为你提供功能强大的解决方案

如果一家公司没有资源构建一个复杂的大数据分析平台,该怎么办?当业务智能 (BI)、数据仓库和分析工具无法连接到 Apache Hadoop 系统,或者它们比需求更复杂时,又该怎样办?大多数企业都有一些拥有关系数据库管理系统 (RDBMSes) 和结构化查询语言 (SQL) 经验的员工。Apache Hive 允许这些数据库开发人员或者数据分析人员使用 Hadoop,无需了解 Java 编程语言或者 MapReduce。现在,您可以设计星型模型的数据仓库,或者常态化的数据库,而不需要挑战 MapReduce 代码。忽然之间,BI 和分析工具,比如 IBM Cognos® 或者 SPSS® Statistics,就可以连接到 Hadoop 系统。

数据库

构建数据库,并且能够使用这些数据,这不是 Hadoop 或者数据库问题。多年以来,人们一直习惯将数据组织到库中。有许多由来已久的问题:如何将数据分门别类?如何将所有数据连接到集成的平台、机箱或者库?多年来,各种方案层出不穷。

人们发明了很多方法,比如 Dewey Decimal 系统。他们将通讯录中的人名或企业名按照字母顺序排列。还有金属文件柜、带货架的仓库、地址卡文件系统,等等。雇主尝试用时间卡,打卡器以及时间表追踪员工。人们需要结构化和组织化数据,还需要反映和检查这些数据。如果您无法访问、结构化或理解这些数据,那么存储这么多的数据有什么实际意义呢?

RDBMSes 使用了过集合论和第三范式。数据仓库有 Kimball、Inmon、星型模型、Corporate Information Factory,以及专用数据集市。他们有主数据管理、企业资源规划、客户关系管理、电子医疗记录和其他许多系统,人们使用这些系统将事务组织到某种结构和主题中。现在,我们有大量来自各个行业的非机构化或半结构化数据,例如,社交媒体、邮件、通话记录、机械指令、远程信息,等等。这些新数据需要集成到存储结构化的新旧数据的非常复杂、非常庞大的系统中。如何分类才能使得销售经理能够改进报告?如何构建库才能使得执行主管能够访问图表和图形?

您需要找到一种将数据结构化到数据库的方法。否则,只是拥有大量只有数据科学家才能访问数据。有时,人们只是需要简单的报告。有时,他们只是想要拖拽或者编写 SQL 查询。

大数据、Hadoop 和 InfoSphere BigInsights

本小节将向您介绍 InfoSphere® BigInsights,以及它与 Hadoop、大数据、Hive、数据库等有何联系。InfoSphere BigInsights 是 Hadoop 的 IBM 分区。您可能对 Apache 和 Cloudera 比较了解,但是业内许多人都曾涉足 Hadoop。它开始于开源的使用 MapReduce 的 Hadoop 和 Hadoop 分布式文件系统 (HDFS),通常还包括其他工具,比如 ZooKeeper、Oozie、Sqoop、Hive、Pig 和 HBase。这些发布版与普通 Hadoop 的区别在于它们被添加在 Hadoop 顶层。InfoSphere BigInsights 就属于这一类版本。

您可以在 Hadoop 的 Cloudera 版本之上使用 InfoSphere BigInsights。此外,InfoSphere BigInsights 提供一个快速的非结构化的分析引擎,您可以将它和 InfoSphere Streams 结合在一起使用。InfoSphere Streams 是一个实时的分析引擎,它开创了联合实时分析和面向批次的分析的可能。

InfoSphere BigInsights 还拥有内置的、基于浏览器的电子表格 BigSheets。这个电子表格允许分析人员每天以电子表格样式使用大数据和 Hadoop。其他功能包括基于角色的安全和管理的 LDAP 集成;与 InfoSphere DataStage® 的集成,用于提取、转换、加载 (ETL);常用的使用案例的加速器,比如日志和机器数据分析;包含常用目录和可重复使用工作的应用目录;Eclipse 插件;以及 BigIndex,它实际上是一个基于 Lucene 的索引工具,构建于 Hadoop 之上。

您还可以使用 Adaptive MapReduce、压缩文本文件、自适应调度增强来提高性能。此外,您还可以集成其他应用,例如,内容分析和 Cognos Consumer Insights。

Hive

Hive 是一个强大的工具。它使用了 HDFS,元数据存储(默认情况下是一个 Apache Derby 数据库)、shell 命令、驱动器、编译器和执行引擎。它还支持 Java 数据库连接性 (JDBC) 连接。 由于其类似 SQL 的能力和类似数据库的功能,Hive 能够为非编程人员打开大数据 Hadoop 生态系统。它还提供了外部 BI 软件,例如,通过 JDBC 驱动器和 Web 客户端和 Cognos 连接。

您可以依靠现有的数据库开发人员,不用费时费力地寻找 Java MapReduce 编程人员。这样做的好处在于:您可以让一个数据库开发人员编写 10-15 行 SQL 代码,然后将它优化和翻译为 MapReduce 代码,而不是强迫一个非编程人员或者编程人员写 200 行代码,甚至更多的复杂 MapReduce 代码。

Hive 常被描述为构建于 Hadoop 之上的数据仓库基础架构。事实是,Hive 与数据仓库没有什么关系。如果您想构建一个真实的数据仓库,可以借助一些工具,比如 IBM Netezza。但是如果您想使用 Hadoop 构建一个数据库,但又没有掌握 Java 或者 MapReduce 方面的知识,那么 Hive 会是一个非常不错的选择(如果您了解 SQL)。Hive 允许您使用 Hadoop 和 HBase 的 HiveQL 编写类似 SQL 的查询,还允许您在 HDFS 之上构建星型模型。

Hive 的限制

在使用 Hive 时可能会有一些挑战。首先,它与 SQL-92 不兼容。某些标准的 SQL 函数,例如 NOT IN、NOT LIKE 和 NOT EQUAL 并不存在,或者需要某种工作区。类似地,部分数学函数有严格限制,或者不存在。时间戳或者 date 是最近添加的值,与 SQL 日期兼容性相比,更具有 Java 日期兼容性。一些简单功能,例如数据差别,不能正常工作。

此外,Hive 不是为了获得低延时的、实时或者近乎实时的查询而开发的。SQL 查询被转化成 MapReduce,这意味着与传统 RDBMS 相比,对于某种查询,性能可能较低。

另一个限制是,元数据存储默认情况下是一个 Derby 数据库,并不是为企业或者生产而准备。部分 Hadoop 用户转而使用外部数据库作为元数据存储,但是这些外部元数据存储也有其自身的难题和配置问题。这也意味着需要有人在 Hadoop 外部维护和管理 RDBMS 系统。

时间: 2025-01-01 13:35:49

使用Hive工具构建数据库为你提供功能强大的解决方案的相关文章

使用Hive构建数据库 备战大数据时代

当您需要处理大量数据时,存储它们是一个不错的选择.令人难以置信的发现或未来预测不会来自未使用的数据.大数据是一个复杂的怪兽.用 Java 编程语言编写复杂的 MapReduce 程序要耗费很多时间.良好的资源和专业知识,这正是大部分企业所不具备的.这也是在 Hadoop 上使用诸如 Hive 之类的工具构建数据库会成为一个功能强大的解决方案的原因. Peter J Jamack 是一名大数据分析顾问,拥有超过 13 年的商业智能.数据仓库.分析.大数据和信息管理方面的经验.他将结构化和非结构化数

使用 Hive 构建数据库

当您需要处理 大量数据时,存储它们是一个不错的选择.令人难以置信的发现或未来预测不会来自未使用的数据.大数据是一个复杂的怪兽.用 Java? 编程语言编写复杂的 MapReduce 程序要耗费很多时间.良好的资源和专业知识,这正是大部分企业所不 具备的.这也是在 Hadoop 上使用诸如 Hive 之类的工具构建数据库会成为一个功能强大的解决方案的原因. 如果一家公司没有资源构建一个复杂的大数据分析平台,该怎么办?当业务智能 (BI).数据仓库和分析工具无法连接到 Apache Hadoop 系

使用Hive构建数据库

如果一家公司没有资源构建一个复杂的大数据分析平台,该怎么办?当业务智 能 (BI).数据仓库和分析工具无法连接到 Apache Hadoop 系统,或者它们比需 求更复杂时,又该怎样办?大多数企业都有一些拥有关系数据库管理系统 (RDBMSes) 和结构化查询语言 (SQL) 经验的员工.Apache Hive 允许这些数据库 开发人员或者数据分析人员使用 Hadoop,无需了解 Java 编程语言或者 MapReduce.现在,您可以设计星型模型的数据仓库,或者常态化的数据库,而不 需要挑战

chapter2: 安装 Oracle 软件并构建数据库

oracle|数据|数据库 第 2 章: 安装 Oracle 软件并构建数据库 返回课程列表 目的 本章让您了解如何使用 Oracle Universal Installer (OUI) 安装您的 Oracle 数据库软件并创建数据库. 您将学习如何使用 Database Configuration Assistant (DBCA) 创建附加数据库. 主题 本章讨论了如下内容: 使用 Oracle Universal Installer (OUI) 安装软件 使用 Database Config

Hive简介、什么是Hive、为什么使用Hive、Hive的特点、Hive架构图、Hive基本组成、Hive与Hadoop的关系、Hive与传统数据库对比、Hive数据存储(来自学习资料)

1.1 Hive简介 1.1.1   什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1.2   为什么使用Hive Ø  直接使用hadoop所面临的问题 人员学习成本太高 项目周期要求太短 MapReduce实现复杂查询逻辑开发难度太大   Ø  为什么要使用Hive 操作接口采用类SQL语法,提供快速开发的能力. 避免了去写MapReduce,减少开发人员的学习成本. 功能扩展很方便. 1.1.3   H

亚马逊推出机器学习工具给数据库调优,DBA要失业了?

数据库管理系统(简称 DBMS)无疑是任何数据密集型应用程序当中最为重要的组成部分,其肩负着处理大量数据以及高复杂性工作负载的重任.然而,数据库管理系统本身却往往难于管理,因为其中通常包含数百种配置"旋钮",用于控制诸如缓存内存分配量以及存储介质数据写入频率等要素.各类企业一般需要聘请专业人士以协助相关调配工作,但对于大多数企业而言,此类专业人才的开价亦相当高昂. 面对这一难题,卡耐基 - 梅隆大学数据库小组(Carnegie Mellon Database Group)的学生及研究人

SQL Server Management Object(SMO)大大简化数据库工具的开发 几行代码开发功能强大的SQL工具

原文 http://www.cnblogs.com/JamesLi2015/archive/2013/05/24/3096214.html 开发与数据库有关的程序,经常需要对数据库进行自动化操作,而不是打开SQL Server Management Studio来写SQL或是图形化操作数据,于是需要一个公共类库,可以处理SQL Server有关的基础操作,比如连接数据库,读取所有的表,修改存储过程,读取表的所有字段及其类型.目前为止,我找到以下方法 1  DMO (legacy of SQL S

《Effective Debugging:软件和系统调试的66个有效方法》——第7条:试着用多种工具构建软件,并将其放在不同的环境下执行

第7条:试着用多种工具构建软件,并将其放在不同的环境下执行 有时我们可以通过改变环境来锁定一些难以捕获的bug.例如,我们可以用另外一款编译器来构建这个软件,也可以切换到其他的运行时解释器.虚拟机.中间件.操作系统或CPU架构上.由于那些环境可能会更加严格地检查输入数据,或能通过其结构来凸现程序中的错误(参见第17条),因此可以帮助我们发现原来很难找到的一些bug.如果程序不够稳定.总是发生无法重现的崩溃问题,或移植起来不太顺利,那就应该试着把它放在另外一种环境下进行测试,这使得我们能够使用更为

《Effective Debugging:软件和系统调试的66个有效方法》一第7条:试着用多种工具构建软件,并将其放在不同的环境下执行

第7条:试着用多种工具构建软件,并将其放在不同的环境下执行 有时我们可以通过改变环境来锁定一些难以捕获的bug.例如,我们可以用另外一款编译器来构建这个软件,也可以切换到其他的运行时解释器.虚拟机.中间件.操作系统或CPU架构上.由于那些环境可能会更加严格地检查输入数据,或能通过其结构来凸现程序中的错误(参见第17条),因此可以帮助我们发现原来很难找到的一些bug.如果程序不够稳定.总是发生无法重现的崩溃问题,或移植起来不太顺利,那就应该试着把它放在另外一种环境下进行测试,这使得我们能够使用更为