【发布时间】:2018-08-02 17:37:56
【问题描述】:
我有一个非常大的表,其中有一列包含每行的字符串类型的自定义 ID。对于每个 ID,该表中有 50 个属性。这保证在表中是唯一的。
我的主要任务是获取给定 ID 的行中的这 50 个属性。 当我像下面这样运行普通查询时,只扫描 100 万行需要 5 秒。
SELECT * FROM `mytable` WHERE id='123'
据我了解,BigQuery 在将行划分为不同的集群后会并行搜索匹配项。而且我相信对于给定的 ID 值,它将检查所有不同集群中的所有行。这样即使在一个分区中找到匹配项,其他集群也会继续获得其他匹配项。
但是由于 ID 列中的值在这里是唯一的,我们能否以某种方式“破坏”在其他集群上运行的作业,一旦在集群中找到匹配项并返回该行。
我希望这将加快查询运行时间。 此外,在未来,这张表会变得非常大,所以如果能做到这一点,它对我的目的真的很有帮助。
欢迎提出任何建议。
【问题讨论】:
标签: google-bigquery