如何自动备份和版本BigQuery代码,例如存储过程?

有哪些备份 BigQuery DDL 的选项 - 特别是视图、存储过程和函数代码?

我们在 BigQuery 中有大量代码,我们希望自动备份这些代码,最好也对其进行版本控制。想知道其他人是如何做到这一点的。

感谢任何帮助。

谢谢!

回答

为了保持和跟踪我们的 BigQuery 结构和代码,我们使用 Terraform 来管理大查询中的每个资源。更具体地说,对于您的问题,我们使用google_bigquery_routine资源来确保其他团队成员审核更改以及您从使用 VCS 中获得的所有其他好处。

TerraForm 代码的另一个重要部分是我们对包含表结构和例程的 BigQuery 模块(通过 github 版本/标签)进行版本控制,对其进行版本控制并在多个环境中使用它。

看起来像:

主文件

module "bigquery" {
  source = "github.com/sample-org/terraform-modules.git?ref=0.0.2/bigquery"

  project_id       = var.project_id


  ...
  ... other vars for the module
  ... 
}

terraform-modules/bigquery/main.tf

resource "google_bigquery_dataset" "test" {
    dataset_id = "dataset_id"
    project_id = var.project_name
}

resource "google_bigquery_routine" "sproc" {
  dataset_id = google_bigquery_dataset.test.dataset_id
  routine_id     = "routine_id"
  routine_type = "PROCEDURE"
  language = "SQL"
  definition_body = "CREATE FUNCTION Add(x FLOAT64, y FLOAT64) RETURNS FLOAT64 AS (x + y);"
}

这有助于我们在所有环境中升级我们的基础设施,而无需更改额外的代码


以上是如何自动备份和版本BigQuery代码,例如存储过程?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>