我曾经认为 Hive 只是一种类似 SQL 的编程语言,用于简化编写 MapReduce 类型的作业(即类似 SQL 的 Pig/Pig Latin 版本)。不过,我现在正在阅读更多有关它的信息,显然它实际上是一个完整的数据仓库基础设施。
这些用例中的一个更常见吗?也就是说,它主要用于它提供的数据仓库基础设施,还是更多用于类似 SQL 的接口(interface)?还是这两个方面具有同等的效用和重要性?
(我问是因为我想弄清楚我应该重点学习 Hive 的哪些部分。)
最佳答案
我以前也是这么想的。现在我已经有大约一个月的 Hive 使用经验,现在我发现它是一个很棒的 ETL 工具……对于以后的数据仓库。
Hive 无法与 MDX 进行比较。 Hive 是非常基于行的,不允许 SQL 或 MDX(多维表达式语言,在 BI 工具中很常见)擅长的许多更复杂的操作。
我们使用 Hive 作为 ETL 工具来集成我们不同的平面文件数据源,并减少我们必须上传到基于 SQL 的数据仓库的数据量。
如果该数据只有几周的半衰期,那么我们可以使数据库的大小保持在相对可控的范围内,以后始终能够从 Hive 中重现报告。
关于hadoop - Apache Hive 是更多地用于编程语言还是数据仓库方面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400756/