Snowflake

Snowflake への書き込みを止めたことを、どう確かめるか

Ryosuke Ishii

一番飯店の注文データは、2026年8月に社内のデータベースへ移し、Snowflake への取り込みを止めました。止めたあとも Snowflake は解約せず、そのまま残しています。

「本当に止まっているか」を確かめるのは、意外と簡単ではありません。今回、止めてから2か月半たったところで確かめ直したら、思わぬところで数字が動いていました。

止まったことは «データの日付» と «タスクの実行記録» で確かめる
止まったことは «データの日付» と «タスクの実行記録» で確かめる

止めたもの

取り込みは、2つの仕組みで動いていました。

  • 社内のサーバーから Snowflake へデータを送るプログラム
  • Snowflake の中で毎日決まった時刻に動くタスク(`task_ichibanhanten`・`task_dataparade`)

プログラムを止め、タスクは `ALTER TASK … SUSPEND` で一時停止にしました。タスクの名前は小文字で登録されていたので、再開するときは `ALTER TASK “task_ichibanhanten” RESUME` のように引用符で囲む必要があります。囲まないと「見つからない」と言われます。

確かめ方1:表の最終更新

表ごとの最終更新の時刻は、`INFORMATION_SCHEMA.TABLES` の `LAST_ALTERED` で見られます。

SELECT table_schema, COUNT(*), MAX(last_altered)
FROM DATA_PARADE.INFORMATION_SCHEMA.TABLES
WHERE table_type = 'BASE TABLE'
GROUP BY 1;

ほとんどのスキーマは、止めた8月11日のままでした。ところが、Instagram の表3つだけ、10月31日の朝の時刻になっていました。

調べると、原因はその日の私の試験でした。この3つの表を元にしたビューの上で、Dynamic Table(決まった間隔で自動で作り直される表)を作り、Cortex Search(文章を意味で探す機能)を作ろうとした時刻と一致します。Cortex Search のほうは権限エラーで失敗しています。

データは1行も書いていません(確かめ方2で見ます)。変更を追いかける設定(CHANGE_TRACKING)も OFF のままでした。それでも `LAST_ALTERED` は動きました。

最終更新の時刻は、データを書かなくても動くことがあります。 これ1つで「止まった」とは言えません。

確かめ方2:データの中の日付

一番確かなのは、データそのものに入っている日付です。今回の表には、データを取得した日時の列(`DATETIME_GET_DATA`)があります。

SELECT 'MEDIAINFO', MAX(datetime_get_data), COUNT(*) FROM DATA_PARADE.ICHIBANHANTEN.INSTAGRAM_MEDIAINFO
UNION ALL SELECT 'FEED',  MAX(datetime_get_data), COUNT(*) FROM DATA_PARADE.ICHIBANHANTEN.INSTAGRAM_FEED
UNION ALL SELECT 'REELS', MAX(datetime_get_data), COUNT(*) FROM DATA_PARADE.ICHIBANHANTEN.INSTAGRAM_REELS;

3つとも、一番新しい行は2026年8月12日の0時台でした。止めた直前に取ったデータで、それより新しい行はありません。最終更新の時刻が動いた3つの表も、中身は止めたときのままです。

確かめ方3:タスクの実行記録

タスクが動いていないかは、Snowsight(Snowflake の画面)の「変換」→「タスク」で見られます。

タスクの画面。止めたタスクは直近7日の実行が0回。上の Snowflake 自身のタスクだけが毎日動いている
タスクの画面。止めたタスクは直近7日の実行が0回。上の Snowflake 自身のタスクだけが毎日動いている

取り込みのタスク2つ(`task_ichibanhanten`・`task_dataparade`)は、直近7日の実行が0回でした。その下の `CALL_PYTHON` も止まっていて、同じく0回です。

気をつけたいのは、一番上の `CORTEX_BASE_MODELS…` です。これは Snowflake 自身が用意しているタスクで、毎日1回動いています。上のグラフは毎日「成功」が積み上がっていますが、すべてこのタスクの分です。グラフだけを見ると、止めたはずのタスクが動いているように見えてしまいます。

SQL で見る場合は、タスクの一覧(`SHOW TASKS`)を見る権限が無くても、実行記録(`TASK_HISTORY`)の側から確かめられます。

確かめ方4:計算の使用量

計算の使用量(ウェアハウスが動いた量)は、止めたあとほぼ0になりました。ただ、今回のように止めたあとの環境で別の試験をすると、その分は増えます。

使用量を見るときは、「取り込みの分」と「人や AI が試験をした分」を分けて見る必要があります。使用量だけで「取り込みが再開した」と判断すると、取り違えます。

まとめ

  • 表の最終更新の時刻は、データを書かなくても動く。止まった証拠には、データの中の日付を使う
  • タスクの画面のグラフには、Snowflake 自身のタスクも入っている。止めたタスクの行の実行回数を見る
  • 止めたあとに試験をすると、最終更新も使用量も動く。何をしたかを記録しておき、取り込みの分と分けて見る
ABOUT ME
石井 亮介(りょうさん)
石井 亮介(りょうさん)
データパレード 代表取締役
㈱データパレードの代表取締役で、高田馬場の町中華「一番飯店」のChief Data Officerも務めています。BIツールのセールスエンジニア・システムエンジニア・カスタマーサクセス歴15年。大学のデータサイエンス教育で講師も担当してきました。現在は自社業務のほとんどをAIに移管し、AI10部署と50を超える自動処理が24時間動く「AI経営」を実践中。その実践知をこのブログで発信しています。
記事URLをコピーしました