在 BigQuery 中将 API 调用作为 UDF 的一部分 - 可能吗?

Posted

技术标签:

【中文标题】在 BigQuery 中将 API 调用作为 UDF 的一部分 - 可能吗?【英文标题】:Making API call as part of UDF in BigQuery - possible? 【发布时间】:2016-04-10 13:16:37 【问题描述】:

我想知道是否可以在 BigQuery 中的 UDF 中对 google maps geocoding api 进行 api 调用?

我有谷歌分析地理字段,例如


"geoNetwork_continent": "Europe",
"geoNetwork_subContinent": "Eastern Europe",
"geoNetwork_country": "Russia",
"geoNetwork_region": "Novosibirsk Oblast",
"geoNetwork_metro": "(not set)"
,

并想致电:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=XXXX

只是想知道我是否能够在 UDF 中使用 javascript 对 BigQuery 中的每一行进行 api 调用。

会非常强大,避免我必须在 R 或 Python 中完成。

UDF 的新手非常多,所以只是想问一下我的建议是否可能(想知道 UDF 中的外部 api 调用是否出于某种原因可能是某种安全问题,或者只是技术上不是可能)。

非常感谢任何建议。

【问题讨论】:

【参考方案1】:

不允许从您的 UDF 进行网络调用。这是出于安全考虑,以及查询被(大量)分片以在 BigQuery 中执行的事实。从查询节点建立每条记录的出站网络连接会 DDOS 很多目标;)

【讨论】:

【参考方案2】:

我认为,目前 UDF 中的 API 调用受 BigQuery UDF 限制https://cloud.google.com/bigquery/user-defined-functions#limitations

【讨论】:

以上是关于在 BigQuery 中将 API 调用作为 UDF 的一部分 - 可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

您可以通过 bigquery API 在单个请求中将数据导入多个表吗?

如何在 Bigquery 中将 csv 的所有列作为字符串导入 [关闭]

在 C# 中将查询参数作为参数传递给 BigQuery 中的 IN 运算符的正确方法

如何在 node.js 环境中将查询语句传递给 bigquery

如何在for循环中等待每次迭代并在nodeJS中将响应作为API响应返回

无法在 Google BigQuery 中将此旧版 SQL 转换为标准 SQL