为什么配置单元不支持存储过程? 如果它不支持那么我们将如何处理Hive中的Sp?有任何替代解决方案? (因为我们已经有一个数据库存在于mssql中) HBASE呢?它支持SP吗?为什么Hive不支持存储过程?
回答
首先,Hadoop或Hive是NOT
SQL DB的替代品。您绝不能将这两个中的任何一个用作您的RDBMS的替代品。
Hive的开发目的只是为了在现有Hadoop集群上提供仓储功能,同时牢记大量SQL用户,包括专业数据库设计人员和管理员,以及使用SQL从数据中提取信息的临时用户仓库。虽然它为您提供了一个类似于SQL的界面,但它不是一个SQL DB。 Hive最适用于数据仓库应用程序,其中分析相对静态的数据,不需要快速响应时间,以及何时数据没有快速变化。简单地说就是offline batch processing
种东西。
在HBase中也没有像存储过程那样的东西。但他们有一个叫做Coprocessor
的东西,它类似于RDBMS中的存储过程。要了解协处理器的更多信息,你可以去here。
而@zsxwing已经表示Sqoop只是一个数据迁移工具,仅此而已。一旦切换到NoSQL世界,您需要灵活一些,并且需要遵守NoSQL规则。
如果你可以详细阐述你的用例,也许我们可以帮助你更好。
在回答您的评论:
是Facebook的使用Hadoop和配置单元和其他相关工具广泛。 Infact Hive是在Facebook上开发的。但这些不是唯一的东西。无论哪里有OLTP和完整的交易需求,它们仍然依赖于RDBMS。其中一个例子是Timeline
功能,该功能使用MySQL。他们有一个巨大的(和真棒)管道,包括许多事情,而不仅仅是Hadoop和Hive。看下面的图片。
看一看开源项目PL/HQL在http://www.plhql.org。它允许您在Hive中运行现有的SQL Server,Oracle,Teradata,MySQL等存储过程。
从Hive 2.0开始,我们将在Hive中获得SP功能。 https://issues.apache.org/jira/browse/HIVE-11055 – BigData
蜂房不具备存储过程
蜂房确实没有任何存储过程在现有的答案解释。但是,这里有2个缓解因素:
蜂巢享有
当然它不是存储过程的适当代用品,但与智能应用的观点可以或许删除一些你的程序的需要。
你可以叫蜂巢从另一个程序
上次我遇到了该配置单元不具备存储过程的问题,我意识到事情我想做的事(在所有列循环),完全是我也可以在另一个程序中做。因此我遵循以下流程:
- 运行查询来获取相关(元)数据:Python会自动调用蜂巢获得列名
- 使用这些信息来构建查询:Python的发生在所有列名并建立correspondng select语句
- 运行结果查询:Python做与
hive -e
- 可选系统调用,如果需要的话
的意见和外部CAL去2目前为止,我已经能够解决缺乏存储过程的问题。
请参阅HPL/SQL,我正在寻找相同的解决方案,但还没有尝试。
我相信数据仓库应用程序需要存储过程支持,但更喜欢基于集合而不是基于行的过程。
根据我个人的经验,在结构化数据仓库应用程序中利用服务器端程序模板时需要程序支持。它使数据仓库应用程序更易于在SQL/NoSQL之间移植,如Netezza,MSSQL,Oracle,DB2和BigInsight。
- 1. 为什么Rails(3 +)仍然不支持存储过程?
- 2. ADO不支持XML在存储过程
- 3. imageresizer sqlreader不再支持存储过程?
- 4. MYSQL支持什么版本的存储过程?
- 5. 为什么存储过程不运行?
- 6. 为什么sql存储过程被称为存储过程
- 7. Hive中的存储过程
- 8. 为什么编译器不支持C++ 11 thread_local存储?
- 9. 类为什么在类中不支持类存储属性?
- 10. 为什么Azure表存储不支持DateTimeOffset?
- 11. 存储过程来支持Unicode字符
- 12. jheidisql alpha 4r2支持存储过程
- 13. Doctrine DBAL支持存储过程
- 14. 为什么PHP不支持多线程?
- 15. 为什么存储过程返回-1
- 16. 为什么我可以克隆主存储库但不支持分支?
- 17. 是否存在创建sysdiagrams表并支持存储过程的存储过程?
- 18. 为什么HBase支持Hive表使用MapReduce
- 19. 为什么EclipseLink通过@ElementCollection支持@CascadeOnDelete?
- 20. Crystal Reports返回“DataSet不支持System.Nullable”与存储过程
- 21. 映射存储过程时的“不支持的参数”? (EF)
- 22. JDBI支持存储过程不带参数
- 23. Hive支持过滤Unicode数据
- 24. 为什么Tomcat支持Hibernate?
- 25. 为什么hbase不支持bzip2压缩?
- 26. 为什么memcached不支持“多套”
- 27. 为什么Relational Database不支持Hadoop?
- 28. 为什么java不支持多继承?
- 29. 为什么Java不支持多继承?
- 30. 为什么Decimal不支持高双打?
谢谢,我听说Facebook正在使用Hadoop-Hive,那么他们将如何管理交易和所有的事情,以及sp(因为你主要告诉仓库) – Haris
编辑我的答案,因为在这里无法回答这个问题。 – Tariq