首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hive进行实时查询

使用Hive进行实时查询
EN

Stack Overflow用户
提问于 2012-10-03 08:59:00
回答 1查看 6.7K关注 0票数 5

首先,我想澄清一下,我正在学习Hive和Hadoop (以及一般的大数据),所以请原谅我缺乏适当的词汇。

我正在着手一个巨大的项目(至少对我来说),它需要处理大量的数据,而我过去不习惯于处理这些数据,因为我一直主要使用MySQL。

对于这个项目,一系列传感器将产生大约125.000.000个数据点,每小时5次(每天15.000.000.000),这是我插入到每个MySQL表中的所有数据点总和的数倍。

我知道一种方法是使用Hadoop MapReduce和Hive来查询和分析数据。

我面临的问题是,据我所知,Hive的运行方式主要类似于"cron job“,而不是实时查询,这可能需要花费数小时并需要不同的基础设施。

我想根据配置单元查询的结果创建MySQL表,因为需要实时查询的数据最多大约为1.000.000.000行,但我想知道这是不是正确的方法,或者我应该研究一些其他技术。

有没有专门针对大数据实时查询而开发的技术,我应该学习一下?

任何建议都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 09:25:05

这是一个复杂的问题。让我们从您在问题中提到的技术开始,然后从那里开始:

  1. MySQL :对于任何使用过MySQL (或任何其他关系数据库)的人来说,很明显,MySQL的传统开箱即用安装永远不会支持您正在讨论的卷。信封背面的计算足以告诉我们-假设您的传感器插入只有100字节,那么您谈论的是150亿x 100字节=1.5万亿字节或1.396 to /天。这是真正的大数据,特别是如果您计划存储一两天以上的数据。
  2. Hive :Hive当然可以处理这种数据量(我和其他许多人都这样做过),但正如您所指出的,您无法获得实时查询。每个查询都将是批处理的,如果您需要快速查询,则需要预先聚合数据。

现在,这给我们带来了一个真正的问题--您需要运行哪种类型的查询?如果您需要运行任意的实时查询,并且永远无法预测这些查询可能是什么,那么您可能需要寻找相对昂贵的专有数据存储,如Vertica、Greenplum、Microsoft PDW等。这些存储将花费大量资金,但它们和其他公司可以处理您正在讨论的负载。

另一方面,如果您可以准确地预测将要运行的查询的类型,那么像Hive这样的东西可能是有意义的。将原始数据存储在那里,并使用batch query功能执行繁重的任务,并定期在MySQL或其他关系数据库中创建聚合数据表,以支持您的低延迟查询需求。

另一种选择是像HBase这样的东西。HBase为您提供了对分布式数据的低延迟访问,但您可能已经习惯了两个关键项目-查询语言(HBase没有SQL语言)和聚合数据的能力。要在HBase中进行聚合,您需要运行一个MapReduce作业,尽管该作业随后可以将其结果存储回HBase中,以便再次进行低延迟访问。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12700582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档