我想在Google云端存储中生成大型BigQuery表的已排序CSV导出。目前要执行此操作,我们从未排序的表开始,然后在另一个表中执行SELECT * FROM table ORDER BY col1, col2
,然后将该表导出到GCS。这很有效,因为导出似乎使用第二个表的插入顺序。
但是,正如here和here所述,ORDER BY
有局限性。我们得到了可怕的“在查询执行期间超出资源”。我们在足够大的桌子上尝试这个时会出错。
还有其他方法可以执行此操作吗?
答案 0 :(得分:2)
无法保证导出的数据将遵循任何特定订单。我建议导出表格,然后使用https://unix.stackexchange.com/questions/120096/how-to-sort-big-files中详述的其他方法对其进行排序。
由于我们讨论的是大型导出,您可以在导出之前对数据进行预分区(例如,按年),以帮助外部排序算法。