【发布时间】:2022-01-22 12:45:26
【问题描述】:
我正在尝试使用 Python Client for BigQuery 来创建具体化视图。 documentation 有这个示例代码:
from google.cloud import bigquery
bigquery_client = bigquery.Client()
view_id = "my-project.my_dataset.my_materialized_view"
base_table_id = "my-project.my_dataset.my_base_table"
view = bigquery.Table(view_id)
view.mview_query = f"""
SELECT product_id, SUM(clicks) AS sum_clicks
FROM `{base_table_id}`
GROUP BY 1
"""
# Make an API request to create the materialized view.
view = bigquery_client.create_table(view)
print(f"Created {view.table_type}: {str(view.reference)}")
当我修改此代码时,它会创建一个表,而不是 BigQuery 中的具体化视图。
google.cloud.bigquery.table.Table 对象有一个table_type 属性,当前设置为无。如果我在运行create_table() 方法之前尝试将其设置为“MATERIALIZED_VIEW”,则会收到错误消息:
(AttributeError: 无法设置属性)
我可以使用以下 SQL 从 Cloud Console 成功创建物化视图,但我需要能够使用 Python 部署创建表。
CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table
AS SELECT product_id, SUM(clicks) AS sum_clicks
FROM project-id.my_dataset.my_base_table
我使用的是 google.cloud 2.1.0 版,Python 3.7.6 版
【问题讨论】:
标签: python google-bigquery materialized-views