Python 使用多个通配符URI提取到GS的BigQuery将提供空blob
我试图使用Python中的Python 使用多个通配符URI提取到GS的BigQuery将提供空blob,python,google-cloud-platform,google-bigquery,cloud,distributed-computing,Python,Google Cloud Platform,Google Bigquery,Cloud,Distributed Computing,我试图使用Python中的google.cloud.storage.Client方法extract\u table从BigQuery中提取一个表,方法是在destination\u uri中指定一个多个通配符uri数组作为参数 destination_uri=['gs://{}/{}/{}-*'.format(bucket_name, prefix, i) for i in range(nb_node)] 预期的行为是BigQuery将我的表均匀地分割成多个blob 压缩后的文件大小为242
google.cloud.storage.Client
方法extract\u table
从BigQuery中提取一个表,方法是在destination\u uri
中指定一个多个通配符uri数组作为参数
destination_uri=['gs://{}/{}/{}-*'.format(bucket_name, prefix, i) for i in range(nb_node)]
预期的行为是BigQuery将我的表均匀地分割成多个blob
压缩后的文件大小为242 MB
真正发生的事情是,如果我给出7个URI,将使1个242MB的文件和6个20B的其他文件变为空
其他配置参数是:destination\u format=“NEWLINE\u DELIMITED\u JSON”和compression=“GZIP”
关于为什么会发生这种情况有什么线索吗
非常感谢。没有“均匀”分配的概念
导出文件可能是零星的,一个可能是几GB,另一个可能是几MB
这是根据我们的经验描述的:
如果导出的数据超过1 GB,则必须导出数据
复制到多个文件。将数据导出到多个文件时
文件大小会有所不同
没有“均匀”分布的概念
导出文件可能是零星的,一个可能是几GB,另一个可能是几MB
这是根据我们的经验描述的:
如果导出的数据超过1 GB,则必须导出数据
复制到多个文件。将数据导出到多个文件时
文件大小会有所不同
简单,如果您希望提取内容被均匀地切分,请在您的BQ表中使用分区。简单,如果您希望提取内容被均匀地切分,请在您的BQ表中使用分区。您是依靠GCP文档中的来源还是依靠经验?你能阐述一下你的观点吗,因为我无法想象在不控制文件大小的情况下提取到存储桶。我添加了文档,它也有文档记录。他们说如果你的
数据>1GB
你必须导出多个文件,这是非常重要的。但它并没有告诉你它将被导出的大小,经验是这是非常繁忙的,你可以得到各种大小的块,甚至是8-10 GBs这样的大块。我同意对文档的解释,但在其他情况下,我会在另一张表中得到大小相同的块。有没有办法确定是什么原因导致BigQuery将所有数据放在一个blob中,还是将所有数据均匀地分在一个blob的表碎片中?您是依靠GCP文档中的数据源还是依靠经验?你能阐述一下你的观点吗,因为我无法想象在不控制文件大小的情况下提取到存储桶。我添加了文档,它也有文档记录。他们说如果你的数据>1GB
你必须导出多个文件,这是非常重要的。但它并没有告诉你它将被导出的大小,经验是这是非常繁忙的,你可以得到各种大小的块,甚至是8-10 GBs这样的大块。我同意对文档的解释,但在其他情况下,我会在另一张表中得到大小相同的块。有没有一种方法可以确定是什么导致BigQuery将所有数据放在一个blob中,还是放在表碎片的均匀分布的blob中?