Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Snowflakeの最大ウェアハウス4XLは遠慮せず使うべし
Search
numa
October 09, 2021
Programming
0
270
Snowflakeの最大ウェアハウス4XLは遠慮せず使うべし
2021-02-24の #SnowVillage LIVE 003 での発表資料
4XLは速い!
numa
October 09, 2021
Tweet
Share
More Decks by numa
See All by numa
データウェアハウス製品のSnowflakeでPythonが動くって知ってました?
foursue
1
360
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
750
日本におけるデータエンジニアリングのこれまでとこれから
foursue
19
5.9k
技育祭2023春 ちゅらデータ講演資料
foursue
1
1.9k
dbtでデータ品質活動
foursue
8
5.9k
dbtvaultはここまでできる
foursue
2
6.8k
今日わかるデータメッシュ!!!
foursue
1
870
モダンデータスタックとかの話(データエンジニアのお仕事とは)
foursue
3
7.2k
dbtvault on snowflake
foursue
0
5.8k
Other Decks in Programming
See All in Programming
私の愛したLaravel 〜レールを超えたその先へ〜
kentaroutakeda
12
3.6k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
180
‘무차별 LGTM~👍’만 외치던 우리가 ‘고봉밥 코드 리뷰’를?
hannah0731
0
530
snacks.nvim内のセットアップ不要なプラグインを紹介 / introduce_snacks_nvim
uhooi
0
350
生成AIの使いどころ
kanayannet
0
100
Go1.24で testing.B.Loopが爆誕
kuro_kurorrr
0
170
Compose Navigation実装の見通しを良くする
hiroaki404
0
180
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
830
Devinのメモリ活用の学びを自社サービスにどう組み込むか?
itarutomy
0
1.7k
AI Agents with JavaScript
slobodan
0
130
requirements with math
moony
0
520
PHPUnit 高速化テクニック / PHPUnit Speedup Techniques
pinkumohikan
1
1.2k
Featured
See All Featured
Code Review Best Practice
trishagee
67
18k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
22
2.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Fireside Chat
paigeccino
37
3.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
25k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
What's in a price? How to price your products and services
michaelherold
245
12k
4 Signs Your Business is Dying
shpigford
183
22k
Bash Introduction
62gerente
611
210k
Transcript
Snowflakeの最⼤ウェアハウス 4XLは遠慮せず使うべし #SnowVillage LIVE 003 © 2020 Chura DATA inc.
PROPRIETARY & CONFIDENTIAL.
⾃⼰紹介 CTO 菱沼雄太 ⼤きなデータを扱う仕事を主にしてます ↓↓沖縄は良いぞお↓↓ © 2020 Chura DATA inc.
PROPRIETARY & CONFIDENTIAL.
今⽇やりたいこと © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. とある店員「そこに無ければ無いですね」
を Snowflake でもやりたい 「4XLで処理出来なければ処理出来ないですね」
今⽇やりたいこと © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. とある店員「そこに無ければ無いですね」
を Snowflake でもやりたい 「4XLで処理出来なければ処理出来ないですね」 くっくっく… 4XLの幻想をぶち壊してやるぜ
AGENDA © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. •
①1minクエリチャレンジ︕ • ②サチらせチャレンジ︕ • ③4XLを使うときのポイントまとめ
①1minクエリチャレンジ︕ © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
問題です︓1問⽬ 次のサイズのテーブルのうち、 select * from tablename; を1分以内に処理できるのはど こまででしょう。このときウェアハウスのサイズは4XLとする。 A)1億⾏、550MB B)10億⾏、5.4GB
C)100億⾏、53.7GB D)1000億⾏、537.1GB E)2000億⾏、1TB © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 1億⾏だって 無理に決まってるぜ
結論 • やっぱ select * だとこんなもんかな︖ 参考値︓ A)1億⾏、550MB => 1秒
B)10億⾏、5.4GB => 20秒くらい C)100億⾏、53.7GB => 1分くらい D)1000億⾏、537.1GB => 6分くらい E)2000億⾏、1TB => 13分くらい © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. フルスキャンは 100億⾏くらいが 限界かwwww
問題です︓2問⽬ 次のクエリでsize列の基礎統計量(count、mean、std、min、max、median)を求めた いと思います。1分以内に処理できるのはどこまででしょう。 select count(*), avg(size), stddev(size),min(size), max(size), median(size) from
access_log; A)1億⾏、550MB B)10億⾏、5.4GB C)100億⾏、53.7GB D)1000億⾏、537.1GB E)2000億⾏、1TB © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. くっくっく… 今度はどうかな︖
結論 統計量出すのはめっちゃ速い 参考値︓ A)1億⾏、550MB => 3秒 B)10億⾏、5.4GB => 7秒くらい C)100億⾏、53.7GB
=> 10秒くらい D)1000億⾏、537.1GB => 1分くらい E)2000億⾏、1TB => 2分くらい © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 2000億⾏でもぜんぜん 使えるじゃねーかwwww
問題です︓3問⽬ 次のクエリで特定の⾏を検索したいと思います。1分以内に処理できるのはどこまででしょう。 select * from access_log where host = '148.117.65.93'
and path = '/item/jewelry/1288'; A)1億⾏、550MB B)10億⾏、5.4GB C)100億⾏、53.7GB D)1000億⾏、537.1GB E)2000億⾏、1TB © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. RDBと違ってIndexはないが、 こういうのはどうなるのかな︖
結論 特定の⾏を抽出するのもめっちゃ速い 参考値︓ A)1億⾏、550MB => 1秒 B)10億⾏、5.4GB => 2秒 C)100億⾏、53.7GB
=> 5秒 D)1000億⾏、537.1GB => 25秒 E)2000億⾏、1TB => 50秒 © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. こ、こいつ速すぎる
問題です︓4問⽬ 次のクエリで集約したい思います。。1分以内に処理できるのはどこまででしょう。 select host, path, count(*) from access_log group by
host, path; A)1億⾏、550MB B)10億⾏、5.4GB C)100億⾏、53.7GB D)1000億⾏、537.1GB E)2000億⾏、1TB © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 集約関数おそかったら 仕事でつかえねーから
結論 集約関数もめっちゃ速い 参考値︓ A)1億⾏、550MB => 2秒 B)10億⾏、5.4GB => 7秒 C)100億⾏、53.7GB
=> 10秒 D)1000億⾏、537.1GB => 35秒 E)2000億⾏、1TB => 1分5秒 © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ありがてぇ
1minクエリチャレンジ結論 4XL速すぎ © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
②サチらせチャレンジ︕ © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
こんな速い4XLですが サチります。 © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
ほう︖
サチるとは saturate(飽和する)のことで、これ以上性能が上がらないような状態を指します。 今回は4XLを下⼿くそに使って、サチらせてみましょう。 © 2020 Chura DATA inc. PROPRIETARY &
CONFIDENTIAL. なるほどな
S3からロードしてみよう さぁ予想してみよう。それぞれどれくらいかかるかな︖ ※参考情報︓100億⾏、50GBで、1分12秒でした。 A)100万⾏、⾮圧縮、240MB、1ファイル => B)200万⾏、⾮圧縮、480MB、1ファイル => C)200万⾏、gzip圧縮、37MB、1ファイル => D)1億⾏、snappy圧縮550MB、69ファイル
=> © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
© 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 1ファイルで1億⾏のndjsonを ロードしたら15分もかかってびっくりしました。
そらそうだろ
© 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 同じ1億⾏のデータをきちんと分割すると 11秒でロード出来てしまう。
そらそうだろ
S3からロードしてみよう 参考値︓ A)100万⾏、⾮圧縮、240MB => 12秒 B)200万⾏、⾮圧縮、480MB => 23秒 C)200万⾏、gzip圧縮、37MB =>
22秒 D)1億⾏、550MB、69ファイル => 11秒 © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
③4XLを使うときのポイントまとめ © 2020 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
今⽇のまとめ • 4XLは何をやらせても速かった(本当に速いと思います © 2020 Chura DATA inc. PROPRIETARY &
CONFIDENTIAL.
今⽇のまとめ • 4XLは何をやらせても速かった(本当に速いと思います • だが分割されてないファイル︕お前は駄⽬だ︕ © 2020 Chura DATA inc.
PROPRIETARY & CONFIDENTIAL.