Traffine I/O

Bahasa Indonesia

2022-12-09

Manajemen Resource Snowflake dengan Terraform

Manajemen Resource Snowflake dengan Terraform

Resource Snowflake dapat dikelola menggunakan Terraform. Resource-resource tertentu yang dapat dikelola adalah sebagai berikut:

  • Database
  • Skema
  • Warehouse
  • Stage
  • Peran
  • Pengguna
  • Snowpipe

Membuat Tugas dengan Membaca SQL dari Berkas

Untuk resource yang tidak disediakan oleh Terraform secara langsung, Anda dapat membaca berkas SQL untuk mengatasinya.

task.tf
resource "snowflake_task" "serverless_task" {
  comment = "my serverless task"

  database = "EXIST_DB"
  schema   = "EXIST_SCHEMA"

  name          = "SERVERLESS_TASK"
  schedule      = "10 MINUTE"
  sql_statement = file("./task.sql")

  enabled = false
}
task.sql
select 1
;

https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/task

Terraform juga menyediakan fungsi templatefile untuk mengirimkan variabel ke pernyataan SQL dari Terraform.

https://developer.hashicorp.com/terraform/language/functions/templatefile

Melaksanakan CI/CD

Dengan menjalankan Terraform menggunakan alat seperti GitHub Actions, Anda dapat mengotomatiskan perubahan pada resource Snowflake. Misalnya, Anda dapat mengotomatiskan hal-hal berikut:

  • Menjalankan terraform plan saat membuat Pull Request dan mengomentari hasilnya di Pull Request.
  • Menjalankan terraform apply saat menggabungkan Pull Request.

https://developer.hashicorp.com/terraform/tutorials/automation/github-actions

Referensi

https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs
https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/pipe
https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/task
https://developer.hashicorp.com/terraform/language/functions/templatefile
https://developer.hashicorp.com/terraform/tutorials/automation/github-actions

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!