Я пытался создать задание для загрузки сжатого файла json из Google Cloud Storage в таблицу Google BigQuery. У меня есть доступ для чтения и записи как в Google Cloud Storage, так и в Google BigQuery. Кроме того, загруженный файл принадлежит к тому же проекту, что и файл BigQuery.
Проблема возникает, когда я получаю доступ к ресурсу за этим URL-адресом https://www.googleapis.com/upload/bigquery/v2/projects/NUMERIC_ID/jobs с помощью запроса POST. С содержанием запроса к вышеуказанному ресурсу можно ознакомиться следующим образом:
{
"kind" : "bigquery#job",
"projectId" : NUMERIC_ID,
"configuration": {
"load": {
"sourceUris": ["gs://bucket_name/document.json.gz"],
"schema": {
"fields": [
{
"name": "id",
"type": "INTEGER"
},
{
"name": "date",
"type": "TIMESTAMP"
},
{
"name": "user_agent",
"type": "STRING"
},
{
"name": "queried_key",
"type": "STRING"
},
{
"name": "user_country",
"type": "STRING"
},
{
"name": "duration",
"type": "INTEGER"
},
{
"name": "target",
"type": "STRING"
}
]
},
"destinationTable": {
"datasetId": "DATASET_NAME",
"projectId": NUMERIC_ID,
"tableId": "TABLE_ID"
}
}
}
}
Однако ошибка не имеет никакого смысла, и ее также можно найти ниже:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Job configuration must contain exactly one job-specific configuration object (e.g., query, load, extract, spreadsheetExtract), but there were 0: "
}
],
"code": 400,
"message": "Job configuration must contain exactly one job-specific configuration object (e.g., query, load, extract, spreadsheetExtract), but there were 0: "
}
}
Я знаю, что проблема не в идентификаторе проекта или токене доступа, помещенном в заголовок аутентификации, потому что раньше я успешно создавал пустую таблицу. Также я указываю заголовок типа содержимого application/json
, что я не думаю, что здесь проблема, потому что содержимое тела должно быть в кодировке json.
заранее спасибо