Snowflake

10兆行の大規模データをSnowflakeの6XLウェアハウスでぶん回したパワー検証【Matillion×Snowflake】

こんにちは!yokochanです!

やっぱりみなさん”最強”には憧れますよね?私もなれるものなら最強になりたいです笑

Snowflakeのウェアハウスのサイズの”最強”は「6XL」です。

どのくらい強いかというと一番小さい「XS」の512倍のマシンパワーです。

とある案件でこの最強ウェアハウス「6XL」を使った検証を行ったので、そのパワーがどのくらいのものなのかご紹介したいと思います。

検証に使ったデータ

詳細の条件ははっきりとは書けないので、ざっくりと書きます。

  • 分単位で収集されたセンサーデータ
  • 1デバイスにつき300個ほどのセンサーが付いている
  • 1,000デバイス程度の処理をしたく、将来の拡大を見据えて10,000デバイス程度の処理を検証で行いたい
  • 分単位のデータを各デバイスのセンサーごとに1時間単位で再集計する
  • データの洗い替えを考慮し、約3年分のデータを一気に計算する

上記のような検証イメージで、以下のようなデータテーブルを用意しました。

  • 1,000デバイス分のデータ(1.1兆行:2.1TB)
  • 10,000デバイス分のデータ(10.6兆行:29.1TB)

とんでもない大きさのデータですね笑

これを計算処理して時間集計用のテーブルに格納します。(ざっくりテーブルのサイズは60分の1になる)

計算処理フローはMatillionを使用して組みました。

MatillionはELTツールで、マシンリソースとしてはSnowflakeを使うので、単純にSnowflakeのウェアハウスのパワーで計算を回します。

検証結果

結果は以下のようになりました。

1,000デバイス分(1.1兆行:2.1TB) 7分04秒
10,000デバイス分(10.6兆行:29.1TB) 50分21秒

なんと10兆行もあるテーブルの処理でも1時間以内に終わりました!

そして1兆行のテーブルであれば7分強で終わるという高速さ。

おそらく1000万行くらいのデータなら一瞬で終わってしまうでしょう。まさに最強。

私自身他のツールでここまでの規模の検証をしたことがないのでわからないのですが、おそらく他では永遠に終わらない処理になってしまうと思います。

Snowflakeさすがです。。

気になるお値段は、、?

とは言っても、ここまで最強のマシンを1時間近く動かしていたらいくらになるのでしょうか?

Snowflakeの以下の料金体系で計算をしてみます。

  • AWS東京リージョンスタンダードプラン:1クレジットあたり2.85ドル
  • ウェアハウス6XL:1時間あたり512クレジット
  • 1ドル140円

この条件で先ほどの実行時間を当てはめてみると以下のようになりました。

1,000デバイス分(1.1兆行:2.1TB) 24,061円
10,000デバイス分(10.6兆行:29.1TB) 171,432円

うーん、、やっぱりこれだけの計算をさせるとかなりの金額になりますね。。

これを毎日実行するなんて想像するととんでもないコストです。

まあここまでの計算をすることはなかなかないとは思いますが、大規模データの処理をお考えの皆様のご参考になれば幸いです。。

yokochan
データ基盤構築やデータ可視化をやっています。 夏は沖縄の海、冬は北海道の山、年がら年中ももクロのライブ会場。