gpt4 book ai didi

python - 从bigquery卸载表到Google云存储的速度非常慢

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:33 24 4
gpt4 key购买 nike

我正在运行一个 python 脚本,该脚本将名为 newdataset.newtable2 的表从 Bigquery 卸载到我的应用程序的 Google 存储桶。

这是我的代码:

scope = ["https://www.googleapis.com/auth/bigquery"]
project_id='txxxxxxx9'
dataset_id = 'newdataset'
table_id = 'newtable2'

with open('/home/xxxxxxx/Dropbox/access_keys/google_storage/xxxxxxxx.json') as auth_file:
key = json.load(auth_file)

client_email = key['client_email']
pv_key = key['private_key']
credentials = SignedJwtAssertionCredentials(client_email, pv_key, scope=scope)

bigquery_service = build('bigquery', 'v2', credentials=credentials)

job_data = {
'jobReference': {
'projectId': project_id,
'jobId': str(uuid.uuid4())
},
'configuration': {
'extract': {
'sourceTable': {
'projectId': project_id,
'datasetId': dataset_id,
'tableId': table_id,
},
'destinationUris': ['gs://xxxxxxx/test.csv'],
'destinationFormat': 'CSV'
}
}
}

query_job = bigquery_service.jobs().insert(projectId=project_id, body=job_data).execute()

我对请求的缓慢感到惊讶。我的表是 300Mb,请求持续 5 分钟。请注意,此请求不会出现在我的 BigQuery UI 的作业部分中,但 5 分钟后,可以在我的存储桶中找到 .csv,并且看起来不错。

在 Redshift 和 S3 中,此类请求将不再持续 5 秒。我的问题:我做的事情正确吗?或者我错过了什么?

如果我的代码很好,有人可以告诉我为什么这个基本任务需要这么多时间吗?

注意:我现在使用免费帐户(未升级)

最佳答案

您制定请求的方式是在单个工作程序中写入单个 300 MB CSV 文件。这将相当缓慢。 (5分钟仍然比我预期的要长,但在合理范围内)

如果您在目标 URI 中使用 glob 模式(例如 gs://xxxxxxx/test*.csv),则速度应该会快得多,因为它可以并行完成。

关于python - 从bigquery卸载表到Google云存储的速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33518843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com