为什么 Hive 不支持存储过程?

Har*_*ris 4 sql-server hadoop hbase hive

为什么配置单元不支持存储过程?如果它不支持,那么我们将如何处理 Hive 中的 Sp?有任何替代解决方案吗?(因为我们已经有一个数据库在 mssql 中) HBASE 呢?支持SP吗?

Tar*_*riq 5

首先,Hadoop 或 Hive 是NOTSQL DB 的替代方案。您绝不能考虑将这 2 个中的任何一个用作您的 RDBMS 的替代品。

Hive 的开发只是为了在现有 Hadoop 集群之上提供仓储功能,同时牢记大量 SQL 用户,包括专家数据库设计人员和管理员,以及使用 SQL 从其数据仓库中提取信息的临时用户。尽管它为您提供了类似 SQL 的接口,但它不是 SQL DB。Hive 最适合数据仓库应用程序,其中分析相对静态的数据,不需要快速响应时间,并且数据不会快速变化。简单地说就是offline batch processing那种东西。

HBase 中也没有像存储过程那样的东西。但是他们有一些叫做 as 的东西Coprocessor,类似于 RDBMS 中的存储过程。要了解有关协处理器的更多信息,请访问此处

正如@zsxwing 所说,Sqoop 只是一个数据迁移工具,仅此而已。一旦您切换到 NoSQL 世界,您就需要变得灵活并且需要遵守 NoSQL 规则。

如果您能详细说明一下您的用例,也许我们可以更好地帮助您。


回应您的评论:

是的,Facebook 广泛使用 Hadoop 和 Hive 以及其他相关工具。事实上,Hive 是在 Facebook 开发的。但这些并不是唯一的事情。无论他们在哪里有 OLTP 和完整的事务需求,他们仍然依赖 RDBMS。一个例子是他们的Timeline特性,它使用 MySQL。他们有一个巨大(而且很棒)的管道,其中包含很多东西,而不仅仅是 Hadoop 和 Hive。见下图。

在此处输入图片说明