Digdag snow>
operator plugin to execute a query Snowflake.
_export:
plugin:
# repositories:
# - file:///Users/h_hori/.m2/repository/
# dependencies:
# - dev.hiro-hori:digdag-operator-snowflake_2.13:0.1.0-SNAPSHOT
repositories:
- https://jitpack.io
dependencies:
- com.github.flinters:digdag_operator_snowflake:v0.1.3
snow:
host: zz99999.us-east-99.aws.snowflakecomputing.com
# role: sysadmin
user: snow_user
warehouse: compute_wh
# schema: public
# query_tag: etl_task_for_xyz123
# timezone: Asia/Tokyo
+run_task:
snow>: example.sql
# 設定可能箇所 - snow>の直下とはここを指す
database: TEST_HORI
schema: public
# create_table: hogehoge
create_or_replace_table: hogehoge
# create_table_if_not_exists: hogehoge
# insert_into: hogehoge
parameter名 | 必須? | 補足 | 設定可能箇所 snow>の直下 |
設定可能箇所 exportされた snow.{parameter} |
設定可能箇所 シークレット |
---|---|---|---|---|---|
host |
o | Snowflake環境のホスト名 | o | o | x |
user |
o | Snowflake接続ユーザー名 | o | o | x |
snow.password |
o | Snowflake接続パスワード | x | x | o |
role |
x | Snowflakeの接続ロール名 | o | o | x |
warehouse |
x | 演算が行われる、Snowflakeのウェアハウス名 | o | o | x |
database |
x | セッションに使われるデータベース | o | o | x |
schema |
x | セッションに使われるスキーマ | o | o | x |
query |
x | クエリを直接記載 | o | x | x |
query_tag |
x | Snowflakeのクエリタグ名 | o | o | x |
timezone |
x | セッションに使われるTIMEZONE | o | o | x |
create_table |
x | クエリの冒頭にCREATE TABLE {table} AS を付与 | o | x | x |
create_or_replace_table |
x | クエリの冒頭にCREATE OR REPLACE TABLE {table} AS を付与 | o | x | x |
create_table_if_not_exists |
x | クエリの冒頭にCREATE TABLE {table} IF NOT EXISTS AS を付与 | o | x | x |
insert_into |
x | クエリの冒頭にINSERT INTO {table} AS を付与 | o | x | x |
session_unixtime_sql_variable_name |
x | digdagのsession_unixtimeを、Snowflake SQL変数にsetする。その際の変数名 | o | o | x |
multi_queries |
x | 複数のクエリを実行可にする(true|false). SQLインジェクションを受ける可能性が高くなるため使用には注意 | o | o | x |
store_last_results |
x | クエリ結果の最初の1行を ${snow.last_results}変数に格納する(true|false) | o | x | x |
snow>の直下およびexportされたsnow.{parameter}
両方に設定可能なパラメータが、両方に設定されていた場合は、snow>の直下に設定された値を優先して使用する
parameter名 | 補足 |
---|---|
ids | 最初の1文および、SELECT文のみIDが取得できます。(CREATE文やINSERT文などはID取得できません。) |
query |
Register Snowflake password into secrets.
local mode
digdag secrets --local --set snow.password
server mode
digdag secrets --project <project> --set snow.password
sbt publishM2
Artifacts are build on local repos: ~/.m2
.
rm -rf .digdag/plugins
digdag run example.dig --session daily -a
https://www.jetbrains.com/help/idea/run-debug-configuration-jar.html
JAR Application
Path to JAR: /user/local/bin/digdag
Program arguments: run example.dig --no-save --session daily -a
Working directory: /Users/h_hori/projects/digdag_operator_snowflake
Before Launch: sbt publishM2 && rm -rf .digdag/plugins