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

and*_*894 5 javascript user-defined-functions google-geocoding-api google-bigquery udf

我想知道是否有可能在BigQuery的UDF中对谷歌地图地理编码api进行api调用?

我有谷歌分析地理领域,如

{
"geoNetwork_continent": "Europe",
"geoNetwork_subContinent": "Eastern Europe",
"geoNetwork_country": "Russia",
"geoNetwork_region": "Novosibirsk Oblast",
"geoNetwork_metro": "(not set)"
},
Run Code Online (Sandbox Code Playgroud)

并且想打电话给:

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调用是否可能出于某种原因而出于安全问题,或者只是技术上不可能).

任何建议都非常感谢.

tho*_*ark 8

不允许从UDF进行网络调用.这是出于安全考虑,以及查询(严重)分片以便在BigQuery中执行的事实.从查询节点建立每个记录的出站网络连接将是DDOS的许多目标;)


Mic*_*tin 1

您现在可以使用远程函数调用远程 API:

https://cloud.google.com/bigquery/docs/reference/standard-sql/remote-functions

但是,在将其与示例中的地图地理编码 API 一起使用之前,请检查其使用策略,尤其是缓存和存储策略:

https://developers.google.com/maps/documentation/geocoding/policies#pre-fetching,-caching,-or-storage-of-content