Обновление BQ View SQL
Я могу создать представление BQ, вызвав client.create_table, но не смог найти способ обновить SQL представления.
Создавать:
table = bigquery.Table(table_ref)
table.view_query = view_query
client.create_table(table)
Обновлять? (не работает)
table = client.get_table(table_ref)
table.view_query = view_query
client.update_table(table, [])
Мысли?
2 ответа
Решение
Второй аргумент update_table
список полей для обновления в API. Передавая пустой список, вы говорите: не обновляйте ничего. Вместо этого пройдите в ['view_query']
как список свойств обновления.
table = client.get_table(table_ref)
table.view_query = view_query
client.update_table(table, ['view_query'])
Или, как предложил Эллиот в комментариях, вы можете использовать DDL для выполнения этой операции.
Я использовал оператор CREATE OR REPLACE VIEW.
job = client.query('CREATE OR REPLACE VIEW `{}.{}.{}` AS {}'.format(client.project, dataset, view_name, view_query))
job.result()