Из официальных документов мы читаем, что LEFT / RIGHT / FULL OUTER JOINS не оптимизированы для пространственных данных.Я выполнил несколько длинных запросов, которые используют сложные объединения для GEOGRAPHY
типов данных.
Мой вопрос заключается в том, как BigQuery справляется с объединением пространственных данных под капотом?Все конвертировано в геохашу?
Я пытался кластеризовать свою таблицу по столбцу типа GEOGRAPHY
, но пока улучшения скорости были незначительными.
Если я использую Geohash (STRING) в предложении where для JOIN вместо типа GEOGRAPHY
, это приводит к увеличению производительности?
Вот пример того, о чем я говорю:
select t1.Geohash, t1.Name, t1.Way, t1.Long, t1.Lat, t1.CoreInt
, t1.Label, t1.IntLat, t1.IntLong
, row_number() over(partition by Geohash order by Dist) as RowNum
, Distance
from table_name t1
left outer join (select Geohash, Label from table where CoreInt = 1) t2
using (Geohash)
where t2.Label is null
or t1.Label = t2.Label
Спасибо