我的问题是关于从BigQuery Standard SQL UDF写入BigQuery。
我要求我必须在标准SQL中进行一些计算。在那些计算之后,我必须将这些计算数据保存到BigQuery。
从标准SQL UDF中将数据插入BigQuery的标准方法是什么?
答案 0 :(得分:2)
基本上,您可以使用UDF发出一行或多行。在标准UDF中,如果要发出行,则必须发出与Struct结合的Array。
Migration guide中有一个示例将数据添加到非现有列。
向下滚动到:Functions operate on values rather than rows
。在旧版SQL中,JavaScript函数对表中的行进行操作。在标准SQL中,如上例所示,JavaScript函数对值进行操作。要使用标准SQL将行值传递给JavaScript函数,请定义一个函数,该函数采用与表相同的行类型的结构。
如果最终发出包含重复数据的结构,则可以将查询结果写入新表。那是你的插页。
这意味着您需要以这种方式创建查询结果,查询结果将写入目标表,并成为您的插入。由于BQ没有从UDF提供严格的INSERT
声明。
答案 1 :(得分:2)
从标准SQL UDF
中将数据插入big-query的标准方法是什么?
有no way
从UDF本身向BigQuery插入数据
将UDF视为任何其他常规FUNCTION,但您可以使用JavaScript或SQL创建自己的FFFTION
您可能知道 - 这些不是允许保存到BigQuery的任何BigQuery函数
相反,您可以将查询结果保存到目标表中 - 即BigQuery中的standard way
以下是相关的UDF限制,可让您了解UDF中无法实现的内容
- 不支持DOM对象窗口,文档和节点以及需要它们的函数。
- 不支持依赖本机代码的JavaScript函数。
- JavaScript中的按位操作仅处理最重要的32位。
- 由于其不确定性,调用用户定义函数的查询无法使用缓存结果。
- 您无法在UDF中引用表。
在https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions
了解详情