在BigQuery中封装复杂代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在BigQuery中封装复杂代码相关的知识,希望对你有一定的参考价值。
我最近不得不从其他BQ表中生成BQ表。逻辑相当复杂,我最终编写了一个复杂的SQL语句。
在Oracle SQL中,我会编写一个PL / SQL过程,将逻辑分解为单独的部分(最常见的是合并语句)。在某些情况下,我会将一些代码封装到函数中。生成的过程将是一系列DML语句,易于阅读和维护。
但是BQ没有类似的东西。 UDF只是临时的,不能存储在-say-视图中。
问题:我正在寻找使复杂的BQ SQL代码更具模块化和可读性的方法。有什么方法可以做到这一点吗?
答案
目前可用的选项是使用WITH Clause
WITH子句包含一个或多个已命名的子查询,其输出充当临时表,后续SELECT语句可以在任何子句或子句中引用
我仍然认为User-Defined Functions
是一个非常好的选择。
JS和SQL UDF在BigQuery中可用,并且从已知的BigQuery团队正在努力引入permanent UDF
即将推出
同时,您可以将JS UDF的主体存储为js库,并使用OPTIONS部分在UDF中引用它。请参阅上面的参考资料中的Including external libraries
以上是关于在BigQuery中封装复杂代码的主要内容,如果未能解决你的问题,请参考以下文章
代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?
VSCode自定义代码片段14——Vue的axios网络请求封装
VSCode自定义代码片段14——Vue的axios网络请求封装