首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从bigquery到Google云存储的极慢卸载表

从bigquery到Google云存储的极慢卸载表
EN

Stack Overflow用户
提问于 2015-11-04 10:01:50
回答 1查看 849关注 0票数 1

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

这是我的代码:

代码语言:javascript
复制
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()

我对请求的缓慢感到惊讶。我的桌子是300 My,请求持续5分钟。注意,这个请求没有出现在我的BigQuery UI的作业部分,但是在5分钟后,.csv可以在我的桶中找到,并且看起来很好。

在Redshift和S3中,这样的请求将不再持续5秒。我的问题是:我做的是对的吗?还是我漏掉了什么?

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 15:17:36

按照您的要求,它是在单个工作人员中编写一个300 MB的CSV文件。这会很慢的。(5分钟仍比我预期的长,但在一个合理的范围内)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33518843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档