Google BigQueryでは、1億2,000万行のテーブルを複数の等しいサイズのテーブルに分割したいと考えています。テーブルの行番号を取得するかどうか尋ねる質問には、answerが見つかりました。例のソリューションでした:あなたがROW_NUMBERを取得できるようになり、その後、手動でこれが例のテーブルのために働くBigQueryでテーブルを複数のテーブルに分割するSQL
WHERE row_number BETWEEN x AND y
を選択するが、ROW_NUMBER()
を使用してテーブルを作成することができ
SELECT
ROW_NUMBER() OVER() row_number,
contributor_username,
FROM (
SELECT contributor_username,
FROM [publicdata:samples.wikipedia]
GROUP BY contributor_username
)
117MM行の表のリソース超過エラーが発生します。
私は、次のアイデアを試みた:私は、[1、...、100] NTILE =のためにこれを実行する必要があります
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
を。これも失敗しました。 GBQの一意のキーを持つ大きなテーブルを小さなテーブルに分割する方法はありますか?私の第二の例と同様に
あなたは複数のtables'は、1つのquery'内のすべての '上記により作成されるか、'明確にしてくださいことができます。 '複数のテーブル'が問題の鍵でした! –