【发布时间】:2022-01-21 09:33:36
【问题描述】:
我正在按照下面的脚本在 BigQuery 上查找最近的经纬度记录。
#standardSQL
SELECT AS VALUE ARRAY_AGG(STRUCT<id_a INT64, id_b STRING>(a.id, b.id) ORDER BY
ST_DISTANCE(a.point, b.point) LIMIT 1)[OFFSET(0)]
FROM (SELECT id, ST_GEOGPOINT(lon, lat) point FROM `project.dataset.table_a`) a
CROSS JOIN (SELECT id, ST_GEOGPOINT(lon, lat) point FROM `project.dataset.table_b`) b
GROUP BY a.id
来源 SQL: Finding the closest Lat/Lon record on Google BigQuery
但是,我的查询不会完成,我将在 BQ 中达到 6 小时标记。这可能是由于我正在使用的表的大小。
table_a has 27M rows
table_b has 120M rows
您对我如何修改上面的脚本以使其适用于我的表格大小有什么建议吗?
欣赏任何见解。谢谢。
【问题讨论】:
标签: google-bigquery