SnowflakeTech Blog 

え?まだSnowflakeをGUIで設定してるんですか?(クエリで設定できる極限設定)

SnowflakeのGUI(WebUI)では設定できない設定値について

皆さんこんばんは。沖縄ではもう桜が咲いています。(執筆時1月)
ちゅらデータでCTOをしている菱沼です。
今日はちょっとしたTIPSとして、皆様にSnowflakeのGUI(WebUI)では設定できない設定値などを紹介したいと思います。
※2021年1月時点の情報です。今後のアップデートで設定できるようになる場合があります。

ウェアハウス高速サスペンド!

ちょっと唐突ですが、GUIでウェアハウスを作成するとですね…。
なんと自動サスペンドするまでの時間の最小値が… 5分なんですね。

create_warehouse

ですが、CREATE WAREHOUSEのドキュメントを読むと

AUTO_SUSPEND = 数値 | NULL
ウェアハウスが自動的に中断されるまでの非アクティブの秒数を指定します。
有効な値
0 または NULL より大きい整数:
60 未満の値を設定することは許可されていますが、ウェアハウスを一時停止するバックグラウンドプロセスは約60秒ごとに実行されるため、多くの場合、望ましい、または期待される動作にはなりません。したがって、ウェアハウスの一時停止を正確に制御できるようにすることを目的としていません。
NULL 値を設定すると、ウェアハウスが一時停止されることはなくなります。

なんと、最小で1秒を指定することができるんですね!
ただし、ここに記載されているように、ウェアハウスの停止を監視するバックグラウンドプロセスが60秒ごとらしいので、60未満の値を入力することは推奨されていないので注意してください。

60秒の指定をしたい場合はこのようなクエリになります。

CREATE WAREHOUSE hoge
WITH WAREHOUSE_SIZE = 'XLARGE'
WAREHOUSE_TYPE = 'STANDARD'
AUTO_SUSPEND = 60
AUTO_RESUME = TRUE
MIN_CLUSTER_COUNT = 1
MAX_CLUSTER_COUNT = 2
SCALING_POLICY = 'STANDARD';

これで自動サスペンドまでの時間を、GUIで設定可能な最小値よりも小さく出来ましたね!

サンドボックス用DBからFailSafe無効でコスト圧縮

GUIでのDB作成時について

またも唐突ですが、GUIでDBを作成するとですね…。
なんと何もオプションを設定できないんですね。

crate_database

ひゃー、これだとデフォルト設定のDatabaseしか作れないじゃないですか!
しかし通はサンドボックス向けやPoC向けにコストが最適化されたDatabaseを必要としています。

SnowflakeではデフォルトでFailSafeが設定される永続テーブルが使われるんですね。
これは本番運用時には助かるのですが、FailSafeが設定されてるテーブルに例えば1TBクラスのデータを書いたり消したりしていると、それらが7日分課金対象になってしまいます。
これを4回やると 「7日×1TB×=だいたい28日(約1ヶ月)に1TB」 すなわち、AWSの東京リージョンだと¥2500円くらい費用が発生してしまうんですね。

というわけで、こうしましょう。

CREATE TRANSIENT DATABASE hoge;

これで、Database が TRANSIENT になりました。このDatabaseにつくられたTableはTRANSIENTになるため、FailSafeが無効化されます。
これでたくさんのデータを書いたり消したりしてもコスト圧縮されますね!

まとめ

SnowflakeのGUI(WebUI)では設定できない設定値について2つほど紹介しました。
クエリで設定するなら、普段使っているGUIだけでは設定できないお得な設定ができるんですね!
Snowflakeを普段から使っているといろいろ細かいところを設定したくなるそんな毎日です。

Snowflakeに関するお問い合わせは、こんなプロフェッショナルたちの在籍する当社へぜひお問い合わせください。
お問い合わせはこちら

このページをシェアする:



DATUM STUDIOは、クライアントの事業成長と経営課題解決を最適な形でサポートする、データ・ビジネスパートナーです。
データ分析の分野でお客様に最適なソリューションをご提供します。まずはご相談ください。