Я пытаюсь переместить старый код, который использовал более старый гем google-api-client, в Idiomati c Ruby client google-cloud- ruby.
Процесс простой Задание запроса, которое сохраняет результаты в другой таблице. В более раннем геме я использовал конфигурацию, подобную этой:
config= {
"jobReference": {
"projectId": GOOGLE_PROJECT,
'location'=> 'europe-west2'
},
'configuration'=> {
'query'=> {
'allowLargeResults' => true,
'createDisposition' => 'CREATE_IF_NEEDED',
'writeDisposition' => 'WRITE_TRUNCATE',
'query' => sql,
'destinationTable'=> {
'projectId'=> GOOGLE_PROJECT,
'datasetId'=> 'my_dataset',
'tableId'=> table,
'location'=> 'europe-west2'
}
}
},
}
Следуя документации для новой библиотеки, я запускаю ее как базовый c тест (sql определен в другом месте)
bigquery = Google::Cloud::Bigquery.new
dataset = bigquery.dataset('my_dataset')
puts(dataset.location)
puts("1")
job = bigquery.query_job(sql, table: dataset.table(table), write: 'truncate', create: 'needed')
puts("2")
job.wait_until_done!
puts("3")
job.done?
Это доходит до пут 2, сбой на job.wait_until_done!
с ошибкой Google::Cloud::NotFoundError: notFound: Not found: Job my_project:job_hApg5h0NQQb4Xbv7Sr3zzIXm5RWF
Если я "ставлю" job.job_id, я вижу тот же идентификатор, что и говоря, что не могу найти. Я попытался запустить это в наборах данных в нескольких регионах и в одном месте и все еще та же ошибка. В конечном счете, мне нужно, чтобы это работало только в регионе «Европа-Запад2».
Может кто-нибудь помочь и / или указать мне рабочий пример? Заранее спасибо!