S2 Geo Functions in BigQuery?



我只是想知道是否有计划将S2地理库的功能添加到BigQuery中?

似乎肯定很多人在BQ中有很长的数据-一些s2函数可以到达细胞并返回等,这肯定会非常有用-如果还没有,我很乐意提交一个功能请求。

我能找到的最好的链接:

http://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sphere-cells-and-hilbert-curve/https://godoc.org/github.com/golang/geo/s2https://docs.google.com/presentation/d/1Hl4KapfAENAOf4gv-pSngKwvS_jwNVHRPZTTDzXXn6Q/view

我确实看到了一些javascript库,但不确定它们是否可以在UDF的

中使用

https://www.npmjs.com/package/s2-geometryhttps://github.com/mapbox/node-s2

我想知道这是那种可以在UDF中做的事情吗?

BigQuery团队有兴趣添加对地理空间操作的某种支持——因此您可以提供的关于用例的更多信息——将更好地为规划和优先级排序提供信息。与此同时,S2库确实在Google内部得到了广泛的使用,并取得了很大的成功,包括作为BigQuery内部的udf。我不知道你上面链接的JavaScript的公共端口-但我相信应该可以在BigQuery JS udf中利用它。

更新: BigQuery GIS已经发布:https://cloud.google.com/bigquery/docs/gis-intro

正如Mosha所说,利用BigQuery JS udf是可能的。

你可以看一下github项目的jslibs,或者直接使用下面的代码作为示例。

SELECT `jslibs.s2.ST_S2`(longitude_centroid, latitude_centroid,5)
FROM `bigquery-public-data.worldpop.population_grid_1km`
WHERE last_updated = "2017-01-01"
LIMIT 1000

免责声明:我是这个项目的贡献者之一。

BigQuery地理空间函数添加了两个用于处理S2单元格的本地函数:

S2_CELLIDFROMPOINT(point_geography[, level => cell_level])
S2_COVERINGCELLIDS(
    geography
    [, min_level => cell_level]
    [, max_level => cell_level]
    [, max_cells => max_cells]
    [, buffer => buffer])

https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions s2_cellidfrompointhttps://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions s2_coveringcellids

也就是说,对于大多数地理空间任务,通常应该使用常规的ST_*函数集,但是S2函数可能有助于高级工作负载或与使用S2的其他系统的互操作性。

最新更新