Создание представлений BigQuery в Terraform - PullRequest
0 голосов
/ 01 марта 2019

У меня есть несколько таблиц в BQ, основанных на ресурсе google_bigquery_table в Terraform.Мне нужно создать представление для одной из этих таблиц, однако я не хочу создавать другой ресурс 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 привело к ошибке для каждой существующей таблицы, утверждающей, что для представления требуется запрос.Я полагаю, что это имеет смысл, поскольку я определяю переменную запроса для каждой таблицы, но я решил, что по умолчанию будет пустая строка и не будет создаваться представление.Какой подход я должен выбрать отсюда?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...