如何加速BigQuery中的空间连接?



我有一个BigQuery表,其中包含整个国家的点寄存器,我需要分配一个"普查区";到它们中的每一个,这些多边形包含在另一个表中。我一直在尝试这样做,使用这样的查询:

SELECT id_point, code_censal_zone
FROM `points_table`
JOIN `zones_table`
ON ST_CONTAINS(zone_polygon, point_geo)

第一个表非常大,因此查询执行效率非常低,因为它比较(点,普查区)的每个可能的对。但是,两个表都有它们所在的自治市的列标识符,因此问题是,可以以某种方式重写我的查询,以便对属于相同的的每个(点,普查区)对执行ST_CONTAINS(*)。市政当局,因此不比较国内所有可能的普查区域的每个点?我能做到这一点,而不必多次读取points_table吗?

SELECT id_point, code_censal_zone
FROM `points_table`
JOIN `zones_table`
ON 1.municipality = 2.municipality
AND ST_CONTAINS(zone_geo, point_geo)

我对BigQuery很陌生,所以我不知道这样的查询是否真的会做我所期望的,因为我在文档中找不到任何东西。

谢谢!

SELECT id_point, code_censal_zone
FROM `points_table`
JOIN `zones_table`
ON 1.municipality = 2.municipality
AND ST_CONTAINS(zone_geo, point_geo)

最新更新