在保留顺序的同时查询大量结果

Querying large results while preserving the order

我需要从日志中查询相当多的行(大约 4,000,000)table,以便我可以将它们保存到 CSV 文件中。 我的查询如下所示:

SELECT
  time_unixtime
  field1,
  field2,
  field3
FROM
  dataset.execute_log20151118
WHERE
  field9 = 'unique_id'
ORDER BY
  time_unixtime

当我 运行 使用 SDK 时,遇到 Resources exceeded during query execution 错误,这是有道理的,因为数据很可能会超过 128 MB compressed limit
在作业配置中启用 allowLargeResults 标志似乎是自然的解决方案,但这会禁止查询对结果进行排序。当然,我仍然可以在没有 ORDER BY 的情况下 运行 查询,然后在本地对结果进行排序,但这看起来不是一个好的解决方案。
有没有更有效的方法来做到这一点?

我唯一的想法是通过在 time_unixtime 字段上放置过滤器将此查询分成多个查询 - 每次将查询限制为适合 ORDER BY 的数据子集。然后您将得到几个 CSV 文件,每个文件都按 time_unixtime 排序,并且可以将它们连接成单个排序文件。