ERPデータのETL後のデータのストア先としてSnowflakeが一つの選択肢になります。備忘録的に構築方法を記載します。
Terraformのインストール
Ubuntu想定
brewでのインストールが簡単なので、Ubuntuにbrewをインストールしておく。
brew install tfenv
tfenv install latest
tfenv use latest
確認
terraform -v
mkdirでフォルダ作成、provide.tfの作成
terraform {
required_version = “>= 1.9”
required_providers {
snowflake = {
source = “snowflake-Labs/snowflake”
version = “0.42.1”
}
}
}
provider “snowflake” {
region = “japan-east.azure”
}
環境変数追加
export SNOWFLAKE_ACCOUNT=”AB12345″ # account locator
export SNOWFLAKE_USER=”TERRAFORM_USER”
export SNOWFLAKE_PASSWORD=”×××××××××××××”
export SNOWFLAKE_ROLE=”TERRAFORM”
export SNOWFLAKE_WAREHOUSE=”TERRAFORM_WH”
Snowflake上で下記実行によりAccountとリージョンを得ることができる。
ただし、Regionの書き換えは必要。
SELECT
current_account() as YOUR_ACCOUNT_LOCATOR,
current_region() as YOUR_SNOWFLAKE_REGION_ID;
Exportの環境変数をSnowflakeで追加
create user terraform_user
password = ‘××××××××××’;create role terraform;
grant role terraform to user terraform_user;
grant role securityadmin to role terraform;
grant role sysadmin to role terraform;create or replace warehouse terraform_wh
warehouse_size=XSMALL
auto_resume=TRUE
auto_suspend=60 — (1分操作がないと停止)
initially_suspended=TRUE
statement_timeout_in_seconds=300 — 60min
comment=’For test terraform.’
;
grant USAGE on warehouse terraform_wh to role terraform;
grant USAGE on warehouse terraform_wh to role securityadmin;
grant USAGE on warehouse terraform_wh to role sysadmin;
grant USAGE on warehouse terraform_wh to role useradmin;
別ファイルにやりたいことを書く。こちらの例は、DBとウェアハウスの作成。
resource “snowflake_database” “db” {
name = “TF_DEMO_DB”
}resource “snowflake_warehouse” “warehouse” {
name = “TF_DEMO_WH”
warehouse_size = “large”
auto_suspend = 60
}
ubuntuで下記の実行
terraform init – 配置されたファイルの読み込み
terraform plan – Snowflake側でどのような操作が行われるか確認してくれる
terraform apply – 実行
コメントを残す