【Dataiku】 Snowflakeのテーブルが更新されない!?確認方法のご紹介

【Dataiku】 Snowflakeのテーブルが更新されない!?確認方法のご紹介 | Tableau-id Press -タブロイド-
dataiku_logo

こんにちは、ひめのです。

DataikuとSnowflakeの連携をする過程でSnowflakeのテーブルを更新したのに
Dataikuのデータセットが変わっていない!!ということがあったので
確認方法のご紹介です。
今回もサポートの方がめちゃくちゃ早く解決してくださいました。

 

Snowflakeで適当なテーブルを用意します。
Streamlit in Snowflakeでデータを追加したり消したりできるアプリを実験用に作りました。
こんな感じ↓

Dataikuの外でいじった内容をDataikuに置いてあるデータセットにも当然反映して欲しいのです。

しかしDataikuを確認すると…

内容が違う!!!!

でも、Jupyterノートブックなどでデータセットの情報を取りに行くと…

あれ…?snowflakeって出る。更新出来てるの?出来てないの?
というわけでサポートの方にお聞きしました。

データセットのキャッシュが残っている

Jupyterノートブックで確認できるように、実際は新しいデータをちゃんと取れているそうです。
だがしかし、データセットのExploreをするとそのように見えていないだけ。

毎回データベースに接続して情報を取りに行くとコストがかなりかかってしまう可能性もあり、
通常は前のキャッシュを表示しているそうです。
表示されている内容を更新したい場合はまず[Whole data]ボタンを押します。

[UPDATE SAMPLE] を押すと表示されている内容が現在のデータの状況に置き換わります!
Auto-refresh sampleの✔を入れると毎回自動で更新してくれるそうですが、
大きいデータだとその分毎回課金がちゃりんちゃりんしますのでお気を付けください。

シナリオを使う場合

Snowflakeのテーブルの内容を表示できて誠にめでたいのですが、
Snowflakeのテーブルに変更を加える度に手動で毎回[UPDATE SAMPLE]するのは面倒臭いよ…パトラッシュ…

そこで自動化したい私はシナリオで[UPDATE SAMPLE]できないのか聞いてみました。
そして「できる」という回答が!!
以下設定方法です。

シナリオにはX秒ごとにSQLの変化を確認しに行って
変化があればシナリオを実行するAuto-trigger機能があります。
SQL query changeで例えば以下のようにしておくと
1時間に1回チェックして、新しくデータが追加されたりしたときにシナリオが実行されます。

このシナリオでデータセットをBUILDするステップを追加するのですが
上記のようなキャッシュの関係で新しい内容がプレビューで確認できません。

確認できるようにするためにはもう一つステップを追加します。


このステップでキャッシュを無効化して、新しい内容を表示するようになります。

 

クラウドサービスで不要な課金を避けることは大事なのですが
手間省略のために自動でテーブルの内容プレビューを更新する方法も
知っておいて損はないはず!
どなたかの参考になれば幸いです。

今回参考にした公式ドキュメントはこちらです。
サポートデスクの方、迅速な対応ありがとうございました!