最近、大きなクエリからm-labデータセットをダウンロードしようとしています。1回のクエリでクエリを実行して取得できる行数は約100万行に制限されているようです。m-labデータセットには、多くのテーブルに数十億のレコードが含まれています。のようなクエリを使用したいのですbq query --destination_table=mydataset.table1 "select * from (select ROW_NUMBER() OVER() row_number, * from (select * from [measurement-lab:m_lab.2013_03] limit 10000000)) where row_number between 2000001 and 3000000;"
が、機能しませんでした。それを機能させるための回避策はありますか?どうもありがとう!
大きなテーブル(m-labテーブルなど)をダウンロードしようとしている場合、最善のオプションは抽出ジョブを使用することです。たとえば、
bq extract 'mlab-project:datasset.table' 'gs://bucket/foo*'
これにより、テーブルがGoogleクラウドストレージオブジェクトgs://bucket/foo000000000.csv、gs://bucket/foo0000000001.csvなどに抽出されます。デフォルトではCSVとして抽出されますが、 `--destination_format = NEWLINE_DELIMITED_JSONをに渡すことができます。テーブルをjsonとして抽出します。
もう1つ言及すべきことは、tabledata list apiを使用してbigqueryの100万行目を読み取り、その特定のオフセットから読み取ることができることです(クエリは不要です!)。
bq head -n 1000 -s 1000000 'm-lab-project:dataset.table'
1000000行目から1000行を読み取ります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加