Google Cloud Storage에서 Google BigQuery 테이블로 압축 된 json 파일을으로로드하려고했습니다. Google Cloud Storage와 Google BigQuery에서 읽기/쓰기 권한을 가지고 있습니다. 또한 업로드 된 파일은 BigQuery 프로젝트와 동일한 프로젝트에 속합니다.Google Cloud Storage에 Big Query에 저장된 파일을로드하는 중 오류가 발생했습니다.
이 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: "
}
}
내가 전에 빈 테이블을 성공적으로 만들었 기 때문에 프로젝트 ID 또는 인증 헤더에있는 액세스 토큰에 문제가 있지 않음을 알고 있습니다. 또한 내용 유형 헤더가 application/json
인 것으로 지정합니다. 본문 내용이 json으로 인코딩되어야하므로 여기서는 문제라고 생각하지 않습니다. 사전에
감사
요청이 괜찮아 보입니다. 스키마의 "대상"필드 끝에 여분의 쉼표가있어 API에서 작업 구성이 0이라고 생각할 수 있습니다. –
고맙습니다.하지만 쉼표는 오타였습니다. 스키마에서 더 많은 요소가 삭제되어 본문을 더 간단하게 만들었 기 때문입니다. 문제는 여전히 지속됩니다. – rubioz