Google大查询中的PLSQL和Connect by Prior选项

时间:2018-04-11 01:44:41

标签: google-bigquery

在将我们的Oracle仓库迁移到Big查询时,我们遇到的一个约束是如何处理Oracle中的程序(PLSQL)代码以及如何在Big Query中实现它。

我们还使用Connect By Prior派生层次结构。 Big Query中有类似内容吗?

此致 斯里卡特

3 个答案:

答案 0 :(得分:2)

过程SQL:BigQuery目前不提供过程/脚本语言,因此最好的选择是使用客户端库(如Python或Java)重新创建此类逻辑,您可以在其中表达条件,循环,异常处理,等等。或者,您可以使用Apache Airflow等工具进行工作流程编排。

CONNECT BY PRIOR:最好的选择是使用JOIN表示父/子操作,因为BigQuery没有主键/外键的概念。

答案 1 :(得分:0)

更新2020年8月

根据Release notes脚本和存储过程现已普遍可用。”这是在2020年3月30日宣布的。
您可以在以下文档部分scriptingstored procedures中找到您感兴趣的内容。 尽管CONNECT BY PRIOR似乎仍然不受支持。

答案 2 :(得分:0)

我同意您应该避免在目标数据库中构建逻辑。因为这可能是一种战术性举措,但不可避免地会将您锁定到另一个供应商(Google BQ)。逻辑是,如果您想坚持旧做法,为什么还要从 Oracle 迁移到另一个?如果您想在云中模拟 Oracle,您不妨考虑迁移到 Oracle 云自治数据仓库 (ADW),它应该无需更改即可运行代码。正如其他人所说,Oracle 过程逻辑可以使用 Python 来完成,比如 Spark 中的 PyCharm,它将独立于底层目标数据库工作。