使用 Cloud Deployment Manager 创建 BigQuery 具体化视图
Create BigQuery materialized view using Cloud Deployment Manager
我可以使用部署管理器在 BigQuery 中创建本机表和外部表以及视图,但是,似乎没有任何方法可以创建具体化视图。页面:https://cloud.google.com/bigquery/docs/materialized-views-intro 表示它仍处于测试阶段 - GCP 测试版功能在 Deployment Manager 中不受支持是典型的吗?
有解决办法吗?我唯一能想到的是使用作业资源 https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert 并指定 DDL 查询,例如:CREATE MATERIALIZED VIEW ...
但我认为 Deployment Manager 不会正确跟踪和管理资源。
编辑:对于其他任何人,即使没有记录,这也有效:
- name: test-mv
type: bigquery.v2.table
properties:
datasetId: experiments
tableReference:
datasetId: experiments
tableId: test_mv
materializedView:
query: "select test, COUNT(*) as counter from experiments.test group by test"
根据 Google 云部署管理器 documentation bigquery.v2.table
resource type is actually leveraging tables REST object as a part of BigQuery API 清单。
说到这里,我假设你可以完全依赖tables.insert method as per Bigquery guidelines here:
Call the tables.insert method with a defined materializedView
resource
as part of your API request. The materializedView
resource contains a
query field.
"materializedView": {
"query": "select product_id,sum(clicks) as
sum_clicks from project-id.my_dataset.my_base_table
group by 1"
}
在初始部署中定义适当的 materializedView
属性 configuration or Python/Jinja template。
我还没有测试上面提到的 API 功能,但是如果您对实现有任何进一步的疑问,我会尝试更深入地研究。
我可以使用部署管理器在 BigQuery 中创建本机表和外部表以及视图,但是,似乎没有任何方法可以创建具体化视图。页面:https://cloud.google.com/bigquery/docs/materialized-views-intro 表示它仍处于测试阶段 - GCP 测试版功能在 Deployment Manager 中不受支持是典型的吗?
有解决办法吗?我唯一能想到的是使用作业资源 https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert 并指定 DDL 查询,例如:CREATE MATERIALIZED VIEW ...
但我认为 Deployment Manager 不会正确跟踪和管理资源。
编辑:对于其他任何人,即使没有记录,这也有效:
- name: test-mv
type: bigquery.v2.table
properties:
datasetId: experiments
tableReference:
datasetId: experiments
tableId: test_mv
materializedView:
query: "select test, COUNT(*) as counter from experiments.test group by test"
根据 Google 云部署管理器 documentation bigquery.v2.table
resource type is actually leveraging tables REST object as a part of BigQuery API 清单。
说到这里,我假设你可以完全依赖tables.insert method as per Bigquery guidelines here:
Call the tables.insert method with a defined
materializedView
resource as part of your API request. ThematerializedView
resource contains a query field.
"materializedView": {
"query": "select product_id,sum(clicks) as
sum_clicks from project-id.my_dataset.my_base_table
group by 1"
}
在初始部署中定义适当的 materializedView
属性 configuration or Python/Jinja template。
我还没有测试上面提到的 API 功能,但是如果您对实现有任何进一步的疑问,我会尝试更深入地研究。