Skip to content

Commit

Permalink
feat(terraform): add snowflake warehouse, database, schema, role (#15…
Browse files Browse the repository at this point in the history
…709)
  • Loading branch information
hongbo-miao committed Apr 6, 2024
1 parent 16fe197 commit 9af57b5
Show file tree
Hide file tree
Showing 77 changed files with 324 additions and 38 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/.lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,7 @@ jobs:
poetry run poe lint-sql -- --dialect=postgres data-processing/flink/applications/stream-tweets/migrations
poetry run poe lint-sql -- --dialect=postgres data-storage/timescaledb/dummy_iot/migrations
poetry run poe lint-sql -- --dialect=postgres data-storage/timescaledb/motor/migrations
poetry run poe lint-sql -- --dialect=snowflake data-storage/snowflake/queries
# poetry run poe lint-sql -- --dialect=snowflake data-storage/snowflake/queries
poetry run poe lint-sql -- --dialect=sparksql data-storage/delta-lake/queries
poetry run poe lint-sql -- --dialect=sqlite data-storage/sqlite/queries
# poetry run poe lint-sql -- --dialect=trino trino/queries
Expand Down
23 changes: 22 additions & 1 deletion cloud-infrastructure/terraform/.terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

148 changes: 113 additions & 35 deletions cloud-infrastructure/terraform/main.tf

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/database
resource "snowflake_database" "hm_snowflake_database" {
name = var.snowflake_database_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "name" {
value = var.snowflake_database_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
variable "snowflake_database_name" {
type = string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/grant_privileges_to_account_role
# https://quickstarts.snowflake.com/guide/terraforming_snowflake/index.html#8
resource "snowflake_grant_privileges_to_account_role" "hm_snowflake_grant_privileges_to_account_role_grant_database_privileges" {
account_role_name = var.account_role_name
privileges = var.privileges
on_account_object {
object_type = "DATABASE"
object_name = var.snowflake_database_name
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
variable "account_role_name" {
type = string
}
variable "privileges" {
type = list(string)
}
variable "snowflake_database_name" {
type = string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/grant_privileges_to_account_role
# https://quickstarts.snowflake.com/guide/terraforming_snowflake/index.html#8
resource "snowflake_grant_privileges_to_account_role" "hm_snowflake_grant_privileges_to_account_role_grant_schema_privileges" {
account_role_name = var.account_role_name
privileges = var.privileges
on_schema {
schema_name = "\"${var.snowflake_database_name}\".\"${var.snowflake_schema_name}\""
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
variable "account_role_name" {
type = string
}
variable "privileges" {
type = list(string)
}
variable "snowflake_database_name" {
type = string
}
variable "snowflake_schema_name" {
type = string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/grant_privileges_to_account_role
# https://quickstarts.snowflake.com/guide/terraforming_snowflake/index.html#8
resource "snowflake_grant_privileges_to_account_role" "hm_snowflake_grant_privileges_to_account_role_grant_warehouse_privileges" {
account_role_name = var.account_role_name
privileges = var.privileges
on_account_object {
object_type = "WAREHOUSE"
object_name = var.snowflake_warehouse_name
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
variable "account_role_name" {
type = string
}
variable "privileges" {
type = list(string)
}
variable "snowflake_warehouse_name" {
type = string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/role
resource "snowflake_role" "hm_snowflake_role" {
name = var.snowflake_role_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "name" {
value = var.snowflake_role_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
variable "snowflake_role_name" {
type = string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/schema
resource "snowflake_schema" "hm_snowflake_schema" {
database = var.snowflake_database_name
name = var.snowflake_schema_name
is_managed = false
is_transient = false
data_retention_days = 7
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "name" {
value = var.snowflake_schema_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
variable "snowflake_schema_name" {
type = string
}
variable "snowflake_database_name" {
type = string
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
terraform {
required_providers {
snowflake = {
source = "Snowflake-Labs/snowflake"
}
}
}

# https://registry.terraform.io/providers/Snowflake-Labs/snowflake/latest/docs/resources/warehouse
resource "snowflake_warehouse" "hm_snowflake_warehouse" {
name = var.snowflake_warehouse_name
warehouse_size = var.snowflake_warehouse_size
auto_suspend = var.auto_suspend_s
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "name" {
value = var.snowflake_warehouse_name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
variable "snowflake_warehouse_name" {
type = string
}
variable "snowflake_warehouse_size" {
type = string
}
variable "auto_suspend_s" {
type = number
}
19 changes: 18 additions & 1 deletion data-storage/snowflake/queries/query.sql
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
select current_account();
select current_region();
show parameters in database;

desc user hongbo_miao;

use role useradmin;
create user hongbo_miao rsa_public_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' default_role = public must_change_password = false;
alter user hongbo_miao set rsa_public_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Expand All @@ -15,3 +28,7 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

use role securityadmin;
grant role sysadmin to user hongbo_miao;
grant role securityadmin to user hongbo_miao;

0 comments on commit 9af57b5

Please sign in to comment.