Обновление 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()
Другие вопросы по тегам