Google Standard SQL UDF - 写入BigQuery

时间:2017-03-27 20:11:09

标签: google-bigquery

我的问题是关于从BigQuery Standard SQL UDF写入BigQuery。

我要求我必须在标准SQL中进行一些计算。在那些计算之后,我必须将这些计算数据保存到BigQuery。

从标准SQL UDF中将数据插入BigQuery的标准方法是什么?

2 个答案:

答案 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

了解详情