在将我们的Oracle仓库迁移到Big查询时,我们遇到的一个约束是如何处理Oracle中的程序(PLSQL)代码以及如何在Big Query中实现它。
我们还使用Connect By Prior派生层次结构。 Big Query中有类似内容吗?
此致 斯里卡特
答案 0 :(得分:2)
过程SQL:BigQuery目前不提供过程/脚本语言,因此最好的选择是使用客户端库(如Python或Java)重新创建此类逻辑,您可以在其中表达条件,循环,异常处理,等等。或者,您可以使用Apache Airflow等工具进行工作流程编排。
CONNECT BY PRIOR
:最好的选择是使用JOIN
表示父/子操作,因为BigQuery没有主键/外键的概念。
答案 1 :(得分:0)
更新2020年8月
根据Release notes“ 脚本和存储过程现已普遍可用。”这是在2020年3月30日宣布的。
您可以在以下文档部分scripting和stored procedures中找到您感兴趣的内容。
尽管CONNECT BY PRIOR
似乎仍然不受支持。
答案 2 :(得分:0)
我同意您应该避免在目标数据库中构建逻辑。因为这可能是一种战术性举措,但不可避免地会将您锁定到另一个供应商(Google BQ)。逻辑是,如果您想坚持旧做法,为什么还要从 Oracle 迁移到另一个?如果您想在云中模拟 Oracle,您不妨考虑迁移到 Oracle 云自治数据仓库 (ADW),它应该无需更改即可运行代码。正如其他人所说,Oracle 过程逻辑可以使用 Python 来完成,比如 Spark 中的 PyCharm,它将独立于底层目标数据库工作。