hadoop - PL/SQL 能否可靠地转换为 Pig Lating 或带有 Pig Latin 和 Hive 的 Oozie 管道

标签 hadoop plsql hive apache-pig oozie

我很好奇用 Hadoop 替换我的 Oracle 数据库,并且正在学习 Hadoop 生态系统。

如果我要走这条路,我有很多 PL/SQL 脚本需要替换。

我的印象是,通过一些努力,我能够将任何 PL/SQL 脚本转换/翻译成类似的 Pig Latin 脚本。如果不仅仅是 Pig Latin,那么通过 Oozie 结合 Hive 和 Pig。

这是正确的吗?

最佳答案

虽然大多数 SQL 语句都可以翻译成等效的 Pig 和/或 Hive 语句,但 hadoop 文件系统固有的一些限制会传递给语言。主要限制是 HDFS 是一个一次写入,多次读取的系统。这意味着包含 UPDATE SQL 命令或 DELETE sql 命令之类的语句将不起作用。这主要是因为两者都要求编程语言能够更改现有文件的内容,这与 hadoop 的一次写入范式相矛盾。

但是有一些解决方法。这些命令都可以通过复制有问题的文件并在写入副本时进行更改、删除原始文件以及将副本移动到原始位置来模拟。 pig 和 Hive 都没有这个功能,所以你必须稍微从这些语言中分支出来才能做到这一点。例如,一旦 pig 脚本执行完毕,几行 bash 就可以处理副本的删除和移动。鉴于您首先可以使用 bash 调用 pig 脚本,这允许一个相当简单的解决方案。或者您可以查看 HBase,它提供了执行类似操作的能力。然而,这两种解决方案都涉及 Pig/Hive 之外的事物,因此如果您绝对不能脱离这些语言,那么答案是否定的。

关于hadoop - PL/SQL 能否可靠地转换为 Pig Lating 或带有 Pig Latin 和 Hive 的 Oozie 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19574457/

相关文章:

mysql - 我必须使用HIVE,HBASE进行我的数据分析

hadoop - Flume:java.io.IOException:不是数据文件

java - Nutch Crawl 错误 - 输入路径不存在

sql - 尝试执行非事务性更新表时出现 Hive 错误

sql - 是否建议在 Oracle EBS 并发程序中提交一个 Commit?

sql - 创建仅具有规范的包装?

xml - 如何重命名 Oracle XMLTYPE 节点

hadoop - HDFS 数据大小和 Hive 数据大小的差异

hadoop - 使用 yarn 的 hive 问题

hadoop - 任何人都可以澄清 HIVE 0.14 上的查询吗