如何通过 Terraform 管理 BigQuery 表的架构更改

Posted

技术标签:

【中文标题】如何通过 Terraform 管理 BigQuery 表的架构更改【英文标题】:How to manage schema changes to a BigQuery table via Terraform 【发布时间】:2020-10-03 01:21:16 【问题描述】:

我们目前使用以下机制创建具有预定义架构的 BigQuery 表,并创建了基础架构。

https://www.terraform.io/docs/providers/google/r/bigquery_table.html

开发团队决定通过添加另一列来修改架构,因此我们计划修改上述 terraform 脚本中的架构更改以启用此功能。

在生产环境中管理此类架构迁移的最佳方法是什么?

由于在生产环境中,我们希望在执行架构迁移时保留表数据

【问题讨论】:

如果您进行更改,计划会显示什么?您是否尝试过在测试环境中运行它?发生什么了?如果可能,您应该在问题中包含这些问题的答案(包括代码和输出)。 您在申请前是否进行了地形计划?更新只是添加列吗?没有其他变化? 请注意,只有当该列为 NULLABLE 或 REPEATED since REQUIRED columns can only be added when you create a table while loading data, or when you create an empty table with a schema definition 时,您才能将此列添加到架构中。列的类型将决定要遵循的正确程序。 就像@ydaetskcoR 所说,请尽可能提供这些信息。 Daniel Ocando 所说的也很重要。 BigQuery 不允许您插入某些类型的字段 @klee 你解决过这个问题吗? 【参考方案1】:

您似乎无法使用 Terraform 修改表的架构并保留数据。相反,您可以使用 bq 命令行。 https://cloud.google.com/bigquery/docs/managing-table-schemas#bq.

【讨论】:

【参考方案2】:

看起来有一个修复它 - https://github.com/hashicorp/terraform-provider-google/issues/8503

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何通过 Terraform 管理 BigQuery 表的架构更改的主要内容,如果未能解决你的问题,请参考以下文章

Terraform 学习总结—— 如何解决存量云资源的管理难题

Terraform 学习总结—— 如何解决存量云资源的管理难题

Terraform 学习总结—— 如何解决存量云资源的管理难题

需要说明如何使用 Terraform 管理 Google Cloud 项目

如何使用Terraform将虚拟网络添加到api管理中?

如何在 Terraform 中管理本地生成的有状态文件