我最近一直试图从大查询中下载m-lab数据集。似乎有一个限制,我们只能通过一个查询查询并获得大约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;"
这样的查询,但它没有用。是否有解决方法使其工作?非常感谢!
答案 0 :(得分:3)
如果您尝试下载大型表格(如m-lab表格),最佳选择是使用提取作业。例如,运行
bq extract 'mlab-project:datasset.table' 'gs://bucket/foo*'
将表格提取到谷歌云存储对象gs://bucket/foo000000000.csv,gs://bucket/foo0000000001.csv等。默认提取为CSV,但你可以传递`--destination_format = NEWLINE_DELIMITED_JSON将表提取为json。
另外要提到的是,您可以使用tabledata list api读取bigquery中的第100万行,以从该特定偏移量读取(无需查询!)。
bq head -n 1000 -s 1000000 'm-lab-project:dataset.table'
将从第1000000行开始读取1000行。