Как создать Тип ЗАПИСЬ INTEGER в моем файле terraform для BigQuery - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать схему terraform для моей таблицы BigQuery, и мне нужен столбец типа RECORD, который будет заполнен INTEGER. Поле, о котором идет речь, будет иметь формат скобок с целыми числами внутри, может быть один или несколько разделенных запятой: [1]

Я попытался написать так:

resource "google_bigquery_table" "categories" {
  project = "abcd-data-ods-${terraform.workspace}"
  dataset_id = google_bigquery_dataset.bq_dataset_op.dataset_id
  table_id = "categories"

schema = <<EOF
    [
        {"type":"STRING","name":"a","mode":"NULLABLE"},
        {"type":"RECORD[INTEGER]","name":"b","mode":"NULLABLE"}
    ]
EOF

}

и вот так:

resource "google_bigquery_table" "categories" {
  project = "abcd-data-ods-${terraform.workspace}"
  dataset_id = google_bigquery_dataset.bq_dataset_op.dataset_id
  table_id = "categories"

schema = <<EOF
    [
        {"type":"STRING","name":"a","mode":"NULLABLE"},
        {"type":"RECORD","name":"b","mode":"NULLABLE"}
    ]
EOF

}

Но это не сработало, так как я продолжаю получать сообщение об ошибке в моем CI / CD на gitlab Ошибка при первой попытке:

Error: googleapi: Error 400: Invalid value for type: RECORD[INTEGER] is not a valid value, invalid

Ошибка при второй попытке :

Error: googleapi: Error 400: Field b is type RECORD but has no schema, invalid

Я полагаю, что вторая реализация является закрытием решения, учитывая ошибку, но она все еще что-то упускает. У кого-нибудь есть идея о правильном способе объявить это

1 Ответ

2 голосов
/ 18 марта 2020

Как указано во второй ошибке:

Error: googleapi: Error 400: Field b is type RECORD but has no schema, invalid

Вы должны предоставить схему для типов ЗАПИСИ ( вы можете прочитать больше в документации ). Например, допустимым примером может быть:

resource "google_bigquery_table" "categories" {
  project    = "abcd-data-ods-${terraform.workspace}"
  dataset_id = google_bigquery_dataset.bq_dataset_op.dataset_id
  table_id   = "categories"

  schema = <<EOF
      [
          {
            "type":"STRING",
            "name":"a",
            "mode":"NULLABLE"
          },
          {
            "type":"RECORD",
            "name":"b",
            "mode":"NULLABLE",
            "fields": [{
                "name": "c",
                "type": "INTEGER",
                "mode": "NULLABLE"
            }]
          }
      ]
  EOF
}

Надежда может помочь.

...