В настоящее время я пишу программное обеспечение, чтобы экспортировать большие объемы данных BigQuery и хранить полученные запросы локально в виде файлов CSV. Я использовал Python 3 и клиент, предоставленный Google. Я сделал настройку и аутентификацию, но проблема в том, что я не могу хранить данные локально. Каждый раз, когда я выполняю, я получаю следующее сообщение :
googleapiclient.errors.HttpError: https://www.googleapis.com/bigquery/v2/projects/round-office-769/jobs?alt=json возвращается "Неверный код URI получателя извлечения" /имя файла- *.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?