我正在运行一个python脚本,该脚本从Bigquery卸载名为newdataset.newtable2
的表格,以便将其存储到我的应用的Google存储分区中。从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用户界面的作业部分中,但5分钟后,可以在我的存储区中找到.csv并且看起来不错。
在Redshift和S3中,这样的请求不会持续5秒。我的问题:我做对了吗?或者我错过了什么?
如果我的代码好,有人能告诉我为什么这个基本任务需要这么多时间吗?
注:我使用的是免费帐户现在(未升级)
你跑了多少次,5分钟是平均还是只有一次? – Pentium10
我尝试了几次,更改了gs上的输出文件的名称。平均时间为5分钟。即使从控制台上做,时间也只有5分钟。事实上它从来没有低于5分钟。请注意,我的桶可以在欧洲西部,我不知道如何知道它在哪里。 – sweeeeeet
我认为您应该提交性能问题通知单https://code.google.com/p/google-bigquery/请提及您的项目并提供详细信息,以便工程师确定您的问题作业。 – Pentium10