我正在尝试为BigQuery表创建terraform模式,我需要一列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
}
但是它不起作用,因为我在gitlab上的CI / CD中不断出现错误第一次尝试的错误:
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
我认为第二个实现是给定错误的解决方案的壁橱,但它仍然缺少某些内容是否有人知道正确的声明方式]
Error: googleapi: Error 400: Field b is type RECORD but has no schema, invalid
您必须提供RECORD类型(you can read more on the docs)的架构。例如,有效的示例可能是:
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
}
希望可以提供帮助。