Google bigquery 如何在大型查询表中获取从行索引100万到200万的记录?

Google bigquery 如何在大型查询表中获取从行索引100万到200万的记录?,google-bigquery,mlab,Google Bigquery,Mlab,最近我一直在尝试从big query下载m-lab数据集。似乎有一个限制,我们只能通过一次查询获得大约100万行。m-lab数据集在许多表中包含数十亿条记录。我喜欢使用像bq查询-destination\u table=mydataset.table1从选择行数中选择*从选择行数超过行数,*从选择*从[measurement lab:m\u lab.2013\u 03]限制10000000,其中行数介于2000001和3000000之间;但它不起作用。是否有一个变通办法使其发挥作用?非常感谢 如

最近我一直在尝试从big query下载m-lab数据集。似乎有一个限制,我们只能通过一次查询获得大约100万行。m-lab数据集在许多表中包含数十亿条记录。我喜欢使用像bq查询-destination\u table=mydataset.table1从选择行数中选择*从选择行数超过行数,*从选择*从[measurement lab:m\u lab.2013\u 03]限制10000000,其中行数介于2000001和3000000之间;但它不起作用。是否有一个变通办法使其发挥作用?非常感谢

如果您试图下载一个像m-lab表这样的大型表,最好的选择是使用提取作业。例如,运行

bq extract 'mlab-project:datasset.table' 'gs://bucket/foo*'
将表提取到google云存储对象gs://bucket/fooo000000000.csv、gs://bucket/fooo0000000001.csv等。默认提取为csv,但您可以传递`-destination\u format=NEWLINE\u DELIMITED\u JSON以将表提取为JSON

另一件需要提及的事情是,您可以使用tabledata list api读取bigquery中的第一百万行,以从该特定偏移量读取数据,无需任何查询

bq head -n 1000 -s 1000000 'm-lab-project:dataset.table'

将从第1000000行开始读取1000行。

如果要下载像m-lab表这样的大型表,最好使用提取作业。例如,运行

bq extract 'mlab-project:datasset.table' 'gs://bucket/foo*'
将表提取到google云存储对象gs://bucket/fooo000000000.csv、gs://bucket/fooo0000000001.csv等。默认提取为csv,但您可以传递`-destination\u format=NEWLINE\u DELIMITED\u JSON以将表提取为JSON

另一件需要提及的事情是,您可以使用tabledata list api读取bigquery中的第一百万行,以从该特定偏移量读取数据,无需任何查询

bq head -n 1000 -s 1000000 'm-lab-project:dataset.table'

将从第1000000行开始阅读1000行。

谢谢你,Jordan。你的解决方案正是我想要的。我是新来的。看来我现在不能投票赞成你的答案。Jordan,关于使用tabledata列表api,我们可以使用这种机制提取排序数据吗?e、 g.从t_timeOrdered的第1000000行开始读取1000行。如果表本身是按排序方式创建的,则只能提取排序数据。然而,数据的顺序可能会在7天后发生变化,因为bigquery会定期重新平衡表以使它们更易于查询。谢谢你,Jordan。你的解决方案正是我想要的。我是新来的。看来我现在不能投票赞成你的答案。Jordan,关于使用tabledata列表api,我们可以使用这种机制提取排序数据吗?e、 g.从t_timeOrdered的第1000000行开始读取1000行。如果表本身是按排序方式创建的,则只能提取排序数据。然而,数据的顺序可能会在7天后发生变化,因为bigquery会定期重新平衡表以使它们更易于查询。