我想将具有1.2亿行的表格拆分为Google BigQuery中的多个同等大小的表格。我找到answer这个问题,询问有关获取表格的行号。这个例子的解决办法是:将表格拆分成BigQuery中的多个表格SQL
SELECT
ROW_NUMBER() OVER() row_number,
contributor_username,
FROM (
SELECT contributor_username,
FROM [publicdata:samples.wikipedia]
GROUP BY contributor_username
)
这将让你得到一个ROW_NUMBER,然后你可以通过手动选择
WHERE row_number BETWEEN x AND y
这适用于本例中的表,但使用ROW_NUMBER()
创建一个表为具有117MM行的表产生资源超出错误。
我又试图以下想法:
SELECT field1, field2
FROM (
SELECT field1, field2, ntile(100) over (order by row_id) as ntile
FROM (
SELECT hash(some_unique_key) as row_id, field1, field2
FROM table_with_177_MM_rows
)
)
WHERE ntile = 1
那么我需要为NTILE =运行这个[1,...,100]。这也失败了。有没有办法将GBQ中的唯一密钥的大表拆分成更小的表?
能否请您澄清如何'多tables'将被上面'都在一个单一的query'创建。 “多个表”是有问题的关键! –