我正在尝试使用 AWS Elastic MapReduce 对相对平坦的时间序列数据进行统计分析。AWS 让您可以选择使用 Hive、Pig 或 HBase 进行 EMR 作业——哪一个最适合这种类型的分析?我不认为数据分析会达到 TB 级——我表中的项目大多低于 1K。我也从未使用过这三种方法中的任何一种,但学习曲线应该不是问题。我更关心什么会更有效率;我也将很快交付这个项目,所以对于有 noSQL 经验的人来说,相对容易理解的东西会很好——但我主要是希望为我拥有的数据做出明智的选择。我可能会提出一个示例查询,例如“查找上周和今天之间每天事件值超过 20 的所有帐户”。
2 回答
恕我直言,这些都不是。当您的数据big
非常大并且您谈论的数据集甚至不是~TB时,您会使用 MR、Hive、Pig 等。而且您希望您的系统也高效。在这种情况下,使用这些工具将是矫枉过正。因此,sensible
您拥有的数据的选择将是您选择的 RDBMS。
如果只是出于学习目的,请使用 HDFS+Hive 或 Pig(取决于更适合您的方式)。
回应您的评论:
如果我遇到这样的情况,我会使用 HDFS,通过 Hive 来存储我的平面数据。我选择 Hive 的原因是我看不到这里发生了很多转换类型的事情。所以,是的,我会选择 Hive。而且,到目前为止,我真的没有看到任何 HBase 需求。当您需要随机实时访问数据的某些部分时,通常会使用 HBase。如果您的用例确实需要 HBase,那么您在设计架构时需要小心,因为您正在处理时间序列数据。
但是,决定使用 Hive 还是 Pig 需要对您将对数据执行的操作类型进行更深入的分析。您可能会发现这些链接很有帮助:http: //developer.yahoo.com/blogs/hadoop/pig-hive-yahoo-464.html http://www.larsgeorge.com/2009/10/hive-vs-pig。 html
PS:你可能想看看R 项目。
一个简短的总结答案:
Hive 是数据分析的简单“首选”,因为它将使用熟悉的 SQL 语法。因此,前端分析工具有许多方便的连接器:Excel、Tableau、Pentaho、Datameer、SAS 等。
Pig 更多地用于传入 Hadoop 的数据的 ETL(转换)。在将数据存储到 Hive 之前,您的数据分析可能需要对数据进行一些“转换”。例如,您可以选择去除标题、应用来自其他来源的信息等。免费的Hortonworks 沙盒教程提供了一个很好的例子来说明这是如何工作的。
当您明确地在 hadoop 之上寻找 NoSQL 存储时,HBase 更有价值(示例)。