San*_*ngh 7 python-3.x google-cloud-storage google-bigquery google-cloud-platform
我正在致力于将大型数据集从 bigquery 导出到 Google 云存储并以压缩格式导出。在 Google 云存储中,我有文件大小限制(每个文件最大文件大小 1GB)。因此,我在导出时使用分割和同情技术来分割数据。示例代码如下:
gcs_destination_uri = 'gs://{}/{}'.format(bucket_name, 'wikipedia-*.csv.gz')
gcs_bucket = storage_client.get_bucket(bucket_name)
# Job Config
job_config = bigquery.job.ExtractJobConfig()
job_config.compression = bigquery.Compression.GZIP
def bigquery_datalake_load():
dataset_ref = bigquery_client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)
table = bigquery_client.get_table(table_ref) # API Request
row_count = table.num_rows
extract_job = bigquery_client.extract_table(
table_ref,
gcs_destination_uri,
location='US',
job_config=job_config) # API request
logging.info('BigQuery extract Started.... Wait for the job to complete.')
extract_job.result() # Waits for job to complete.
print('Exported {}:{}.{} to {}'.format(
project, dataset_id, table_id, gcs_destination_uri))
# [END bigquery_extract_table]
Run Code Online (Sandbox Code Playgroud)
此代码将大型数据集分割并压缩为.gz格式,但它返回多个压缩文件,其大小在 40MB 到 70MB 之间舍入。
我正在尝试生成大小为 1GB 的压缩文件(每个文件)。有什么办法可以完成这件事吗?
| 归档时间: |
|
| 查看次数: |
6158 次 |
| 最近记录: |