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

How to speed-up a spatial join in BigQuery?

我有一个 BigQuery table,在整个国家/地区都有点寄存器,我需要为每个点寄存器分配一个“人口普查区”,哪些多边形包含在另一个 table 中。我一直在尝试使用这样的查询来做到这一点:

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

第一个 table 非常大,因此查询在比较每对可能的(点,普查区)时效率非常低。但是,两个 table 都有它们所在城市的列标识符,所以问题是,可以以某种方式重写我的查询,以便对每个(点,人口普查区)执行 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)