我目前正在编写一个软件,用于导出大量 BigQuery 数据并将查询结果存储为本地 CSV 文件。我使用的是Python 3和google提供的客户端。我进行了配置和身份验证,但问题是,我无法在本地存储数据。每次我执行时,我都会跟随错误信息:
googleapiclient.errors.HttpError:https://www.googleapis.com/bigquery/v2/projects/round-office-769/jobs?alt=json 返回“无效的提取目标 URI 'response/file-name-*.csv' .必须是有效的 Google 存储路径。">
这是我的工作配置:
def export_table(service, cloud_storage_path,
projectId, datasetId, tableId, sqlQuery,
export_format="CSV",
num_retries=5):
# Generate a unique job_id so retries
# don't accidentally duplicate export
job_data = {
'jobReference': {
'projectId': projectId,
'jobId': str(uuid.uuid4())
},
'configuration': {
'extract': {
'sourceTable': {
'projectId': projectId,
'datasetId': datasetId,
'tableId': tableId,
},
'destinationUris': ['response/file-name-*.csv'],
'destinationFormat': export_format
},
'query': {
'query': sqlQuery,
}
}
}
return service.jobs().insert(
projectId=projectId,
body=job_data).execute(num_retries=num_retries)
我希望我可以使用本地路径而不是云存储来存储数据,但我错了。
所以我的问题是:
我可以将查询的数据下载到本地(或下载到本地数据库)还是必须使用Google Cloud Storage?