BigQuery 中的 S2 Geo 函数?
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/s2
https://docs.google.com/presentation/d/1Hl4KapfAENAOf4gv-pSngKwvS_jwNVHRPZTTDzXXn6Q/view
我确实看到了一些 javascript 库,但不确定它们是否可以在 UDF 中使用
https://www.npmjs.com/package/s2-geometry
https://github.com/mapbox/node-s2
我想知道这是不是只能在 UDF 中做的事情?
BigQuery 团队有兴趣为地理空间操作添加某种支持 - 因此您可以提供有关用例的更多信息 - 将更好地为规划和优先级排序提供信息。
与此同时,S2 库确实在 Google 内部广泛使用并取得了很大成功,包括作为 BigQuery 中的 UDF。我不知道你上面链接的 public 到 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_cellidfrompoint
https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#s2_coveringcellids
也就是说,对于大多数地理空间任务,通常应该使用常规 ST_*
函数集,但 S2 函数可能有助于高级工作负载或与使用 S2 的其他系统的互操作性。
我只是想知道是否有任何计划将 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/s2 https://docs.google.com/presentation/d/1Hl4KapfAENAOf4gv-pSngKwvS_jwNVHRPZTTDzXXn6Q/view
我确实看到了一些 javascript 库,但不确定它们是否可以在 UDF 中使用
https://www.npmjs.com/package/s2-geometry https://github.com/mapbox/node-s2
我想知道这是不是只能在 UDF 中做的事情?
BigQuery 团队有兴趣为地理空间操作添加某种支持 - 因此您可以提供有关用例的更多信息 - 将更好地为规划和优先级排序提供信息。 与此同时,S2 库确实在 Google 内部广泛使用并取得了很大成功,包括作为 BigQuery 中的 UDF。我不知道你上面链接的 public 到 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_cellidfrompoint https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#s2_coveringcellids
也就是说,对于大多数地理空间任务,通常应该使用常规 ST_*
函数集,但 S2 函数可能有助于高级工作负载或与使用 S2 的其他系统的互操作性。