我可以通过调用client.create_table来创建BQ视图,但是我找不到更新视图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, [])
思想?
答案 0 :(得分:2)
update_table
的第二个参数是要在API中更新的字段列表。通过传递一个空列表,你说:不要更新任何东西。而是将['view_query']
作为更新属性列表传递。
table = client.get_table(table_ref)
table.view_query = view_query
client.update_table(table, ['view_query'])
或者正如Elliot在评论中建议的那样,您可以使用DDL来执行此操作。
答案 1 :(得分:1)
我使用了CREATE OR REPLACE VIEW语句。
job = client.query('CREATE OR REPLACE VIEW `{}.{}.{}` AS {}'.format(client.project, dataset, view_name, view_query))
job.result()