Я пытаюсь экспортировать таблицу больших запросов в облачное хранилище, используя NEWLINE_DELIMITED_JSON в качестве формата назначения, но продолжаю получать следующую ошибку: Ошибка при выполнении задания: операция не может быть выполнена на вложенной схеме .
Я знаю, что Big Query позволяет экспортировать вложенные таблицы, если вы выбираете формат json (как указано в документации и в этом вопросе ), поэтому я неЯ не понимаю, почему я получаю эту ошибку ... Я использую PHP SDK, и это код, который я использовал:
extract_table($projectId, $datasetId, $tableId, $bucketName, $objectName);
function extract_table($projectId, $datasetId, $tableId, $bucketName, $objectName, $format = 'NEWLINE_DELIMITED_JSON'){
$bigQuery = new BigQueryClient(['projectId' => $projectId,]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->table($tableId);
// load the storage object
$storage = new StorageClient([
'projectId' => $projectId,
]);
$destinationObject = $storage->bucket($bucketName)->object($objectName);
// create the extract job
$options = ['destinationFormat' => $format];
$extractConfig = $table->extract($destinationObject, $options);
$job = $table->runJob($extractConfig);
// poll the job until it is complete
$backoff = new ExponentialBackoff(10);
try {
$backoff->execute(function () use ($job) {
print('Waiting for job to complete' . PHP_EOL);
$job->reload();
if (!$job->isComplete()) {
throw new Exception('Job has not yet completed', 500);
}
});
} catch (Exception $e) {
}
// check if the job has errors
if (isset($job->info()['status']['errorResult'])) {
$error = $job->info()['status']['errorResult']['message'];
printf('Error running job: %s' . PHP_EOL, $error);
} else {
print('Data extracted successfully' . PHP_EOL);
}
}