BigQuery令人讨厌的功能之一是其无法预测的行为。
最后这样的烦恼可以在这个查询中说明
SELECT
COUNT(DISTINCT large_table.event_id ) AS large_table_count,
COUNT(DISTINCT small_table.pk) AS small_table_count
FROM large_table
LEFT JOIN small_table ON
large_table.ga_user_id = small_table.ga_user_id
其中large_table~2.5GB,small_table约为250mb
当我加入ga_user_id时,查询大约需要60秒。更重要的是,它完成了,并且可以在不显着增加时间的情况下增加表格的大小。 (见截图1)。
但是,当我加入日期字符串时,查询的时间最长可达约140秒。 (参见屏幕截图#2)更重要的是,性能不随数据大小线性扩展。即使在3000秒之后,查询也没有完成。
一些观察: 1)snapshot_date的可变性小于ga_user_id 2)ga_user_id和snapshot_date都是字符串
我缺少什么?