今回は、登録したストアドプロシージャをスケジュール登録し、自動走行する方法について解説します。
- テーブルの作成(更新):【SQL】【Snowflake】テーブルの更新【CREATE OR REPLACE TABLE】 | ビジネスイッチ (how-to-business.com)
- テーブル作成~ストアドプロシージャの作成~実行:【SQL】【Snowflake】ストアドプロシージャを利用する方法【CREATE OR REPLACE PROCEDURE】【DROP PROCEDURE】【SHOW PROCEDURES】【CALL】 | ビジネスイッチ (how-to-business.com)
事前準備(テーブル作成~ストアドプロシージャの作成~実行)
-- テーブル作成
create or replace table DB1.PUBLIC.DATA1
(
"id1" VARCHAR(10),
"id2" VARCHAR(10)
);
-- プロシージャ定義
CREATE OR REPLACE PROCEDURE DB1.PUBLIC.INSERT_PROC1()
RETURNS VARCHAR
LANGUAGE SQL
AS
BEGIN
INSERT INTO DB1.PUBLIC.DATA1 VALUES ('1111', '1111');
END;
-- プロシージャ確認
SHOW PROCEDURES;
-- -- プロシージャ削除
-- DROP PROCEDURE DB1.PUBLIC.INSERT_PROC1()
-- プロシージャ呼び出し
CALL DB1.PUBLIC.INSERT_PROC1();
タスクの作成(スケジュールを設定)
-- タスクの作成
CREATE OR REPLACE TASK TASK1
WAREHOUSE = XS
SCHEDULE = 'USING CRON 00 07 * * * Asia/Tokyo'
AS
CALL DB1.PUBLIC.INSERT_PROC1();
- CREATE OR REPLACE TASKにより、タスクを作成できる。(スケジュール設定)
- DB1.PUBLIC.TASK1を作成する。
- 「WAREHOUSE = XS」により、ウェアハウスを指定。
- 「SCHEDULE = ‘USING CRON 00 07 * * * Asia/Tokyo’」により、スケジュールを指定。(日本時刻で7:00を設定)
- AS句により、スケジュール実行するプロシージャを記載。
タスクの確認
-- タスクの確認
SHOW TASKS;
- SHOW TASKSにより、タスク一覧を確認できる(クエリ結果として表示)。
- 今回は「TASK1」が表示された。
タスクの有効化
-- タスクの有効化
ALTER TASK TASK1 RESUME;
-- タスクの確認
SHOW TASKS;
- ALTER TASK ~ RESUME;により、タスクを有効にできる。
- SHOW TASKSにより、タスク一覧のステータス確認できる(クエリ結果として表示)。
- 今回は、TASK1を有効化したことで、「started」となっている。
- 「TASK1」を6回実行
- 「DB1.PUBLIC.INSERT_PROC1()」を6回呼び出し
- 6回実行されたことが確認できる。(6日跨いだ)
タスクの停止
-- タスクの停止
ALTER TASK TASK1 SUSPEND;
-- タスクの確認
SHOW TASKS;
- ALTER TASK ~ SUSPEND;により、タスクを停止状態にできる。
- SHOW TASKSにより、タスク一覧のステータス確認できる(クエリ結果として表示)。
- 今回は、TASK1を停止したことで、「suspended」となっている。
【内部メモ】
- ASIA/TOKYO
- CREATE TASK(?)
- スケジュール無し
- ウェアハウス指定なし
- SHOW TASKS詳細