【发布时间】:2019-07-23 18:22:03
【问题描述】:
我在 BQ 中有一堆基于 Terraform 中的 google_bigquery_table 资源的表。我需要为其中一个表创建一个视图,但是,我不想创建另一个 terraform 资源以避免代码重复。这就是我的资源现在的样子:
resource "google_bigquery_table" "default" {
dataset_id = "${var.dataset_id}"
table_id = "${var.table_id}"
time_partitioning {
type = "DAY" //Hardcoded because this is the only supported value
field = "${var.time_partitioning_field}"
}
view {
query = "${var.query}"
use_legacy_sql = "${var.use_legacy_sql}"
}
schema = "${file(var.schema)}"
}
相关的视图变量是:
variable "query" {
type = "string"
default = ""
}
variable "use_legacy_sql" {
type = "string"
default = "false"
}
我将查询变量设置为空字符串,因为我不希望我的任何其他表有视图。
最后,这是包含视图的表格模块:
module "myTable-editedView-bigquery-table"{
source = "./../../modules/google-bigquery-table"
version = "0.1"
schema = "${var.myTable_schema}"
dataset_id = "${module.myDataset-bigquery-dataset.dataset_id[0]}"
table_id = "${var.myTable_editedView_table_id}"
query = <<SQL
SELECT col1 , col2, col3, col4, col5
FROM `myProject.myDataset.myTable`
SQL
time_partitioning_field = "${var.time_partitioning_field}"
is_ready = "${module.myDataset-bigquery-dataset.is_complete}"
is_ready = "${module.myTable-bigquery-table.is_complete}"
}
除了我没有提供查询变量/值之外,我的其他表的格式也类似,因为我不希望它们有视图。
计划似乎进展顺利,但 terraform apply 导致每个现有表都出现错误,声称视图需要查询。我想这是有道理的,因为我为每个表定义了一个查询变量,但我认为它会默认为空字符串而不是创建视图。我应该从这里采取什么方法?
【问题讨论】:
-
这是一个简单的修复。你解决了吗?