SlideShare uma empresa Scribd logo
1 de 31
© 2021 Snowflake Inc. All Rights Reserved 1
2021/02/10 配信
https://www.youtube.com/watch?v=DUaQwn34JLE
© 2021 NTT DATA Corporation 2
自己紹介
渋谷 亮太
AI&IoT事業部
DBエンジニア
・ OLTP系
・ DWH系
・ Hadoopも
クラウドデータ分析基盤
■経験
© 2021 NTT DATA Corporation 3
SnowVillage Live 001:視聴者のみんなでSnowflakeにリアルタイムアクセス!
前回のおさらい
データ共有すごい!
マスキングすごい!
10億件データに対する
参照性能すごい!
タイムトラベルすごい!
ウェアハウスの
サイズ変更すごい!
BIツールやTwitterとの
連携すごい!
© 2021 NTT DATA Corporation 4
SnowVillage Live 001:視聴者のみんなでSnowflakeにリアルタイムアクセス!
前回のおさらい
データ共有すごい!
マスキングすごい!
10億件データに対する
参照性能すごい!
タイムトラベルすごい!
ウェアハウスの
サイズ変更すごい!
BIツールやTwitterとの
連携すごい!
すごすぎて何か怪しい・・・
落とし穴があるのでは・・・?
© 2021 NTT DATA Corporation 5
今日のテーマ
「Snowflakeって実際どうなの?」
全力で「怪しいところ」をあげて、リアルタイムで動かしてみて、
実際どうなの?を探ります
Snowflakeのここってどうなの?という疑問・質問をTwitterで募集します
#SnowVillage をつけてツイートお願いします
© 2021 NTT DATA Corporation 6
Snowflakeのアーキテクチャ
マルチクラスタ・共有データ(Multi Cluster / Shared Data)
© 2021 NTT DATA Corporation 7
疑惑1
ストレージが
ボトルネックに
なるんじゃ?
© 2021 NTT DATA Corporation 8
「共有データ」ということは、ストレージを共有するということ=普通に考えるとボトルネック
疑惑1:ストレージがボトルネックになるんじゃ?
ストレージがボトルネックになって
参照性能が出ないのでは?
© 2021 NTT DATA Corporation 9
疑惑1:ストレージがボトルネックになるんじゃ?
やってみる
• 10億件の小売データ(提供: )
• 全国の200店舗の担当者が、自店舗の売上点数と売上合計を一斉に集計
• 20店舗ずつ異なるウェアハウスが割り当てられている
→10億件データに対し、違う条件のクエリを同時に200個投げるユースケース
やってみる
© 2021 NTT DATA Corporation 10
• Snowflakeはオブジェクトストレージ(AWS S3, Azure Blob, GCP GCS)をメインス
トレージとして採用
• オブジェクトストレージは、パブリッククラウドのスケールを活かして超大規模なクラスタが組ま
れた分散ストレージ
→Snowflakeはその分散性能を活かしているから、ボトルネックにならない
疑惑1:ストレージがボトルネックになるんじゃ?
見た目(使い勝手)はこうだけど・・・ 実際はこんな感じ
© 2021 NTT DATA Corporation 11
疑惑1:ストレージがボトルネックになるんじゃ?
オブジェクトストレージってSSDに比べると遅いのでは?
© 2021 NTT DATA Corporation 12
疑惑1:ストレージがボトルネックになるんじゃ?
やってみる
• 10億件の小売データ(提供: )
• 2020年12月の売上データを抽出し、都道府県別の売上点数と売上合計を集計
→10億件データに対し、1000万件程に絞り込んで集計するケース
(71項目のうち、使用するのは3項目)
Retail
10億件
71項目
使うのはここだけ
やってみる
© 2021 NTT DATA Corporation 13
疑惑1:ストレージがボトルネックになるんじゃ?
• オブジェクトストレージの強みを活かすため、Snowflakeは「マイクロパーティション」という形
式でデータを保持
• データを小分けにして分散配置し、複数のサーバで同時に処理
• マイクロパーティションは、ハイブリッドカラムナ形式で保存されていて、必要なレコードが含ま
れるファイルの必要なカラムだけをバイト単位で読み込める
→必要なデータだけを読み取り、並列で処理して性能向上
ヘッダ R1 C1 R2 C1
Snowflakeデータブロック(マイクロパーティションファイル)
R1 C2 R2 C2 R1 C3 R2 C3
C1 C2 C3
R1
R2
R3
R4
ヘッダ R3 C1 R4 C1 R3 C2 R4 C2 R3 C3 R4 C3
テーブル
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
MP
サーバ サーバ サーバ
サーバ サーバ サーバ サーバ サーバ
© 2021 NTT DATA Corporation 14
ボトルネックにはならない!
むしろストレージの特性を活かした高性能
疑惑1:ストレージがボトルネックになるんじゃ?
実際どうなの?
© 2021 NTT DATA Corporation 15
疑惑2
更新の性能や
機能がしょぼいの
では?
© 2021 NTT DATA Corporation 16
疑惑2:更新の性能や機能がしょぼいのでは?
クエリサービスではなく「データベース」として使うからには、更新も非常に重要
トランザクション機能はどうなっているのか?
参照性能のために更新機能や性能を
トレードオフにしているんじゃないの?
© 2021 NTT DATA Corporation 17
疑惑2:更新の性能や機能がしょぼいのでは?
やってみる
• 10億件の小売データ(提供: )
• 大量のGzip圧縮されたCSVファイルをSnowflakeテーブルにロード
→10億件をロードするケース
• トランザクションを開始し、顧客名をUPDATE
• 別のトランザクションから参照
→トランザクション分離レベルを確認するケース
やってみる
© 2021 NTT DATA Corporation 18
疑惑2:更新の性能や機能がしょぼいのでは?
• SnowflakeはUPDATEでもDELETEでも、データを全てマイクロパーティションファイルごと
追記することで実現
• これにより、更新の性能は安定するし、更新してもデータブロックが汚れることはない
• この特性を活かしてRead Committed分離レベルのトランザクションを実現
ヘッダ A B C
A B C ヘッダ A B ’ C
UPDATE
一時的にデータは増えるが汚れない
Update後のファイルを新規追加
古いファイルは一定期間後削除
コミット前のSELECT
はこちらを参照
コミット後のSELECTは
こちらを参照
© 2021 NTT DATA Corporation 19
疑惑2:更新の性能や機能がしょぼいのでは?
独自の更新方式で性能は良い!
トランザクションもしっかり!
実際どうなの?
© 2021 NTT DATA Corporation 20
疑惑3
更新と参照が
混ざったら
遅くなるんでしょ?
© 2021 NTT DATA Corporation 21
疑惑3:更新と参照が混ざったら遅くなるんでしょ?
分散システムでトランザクションを守るためには、状態の同期が必要
一般的に、同期のためには性能を犠牲にせざるを得ないことが多い
ノー
ド1
ノー
ド2
ノー
ド3
Aテーブル
更新しよう
Aテーブル
参照しよう
どっちが勝ち?
© 2021 NTT DATA Corporation 22
疑惑3:更新と参照が混ざったら遅くなるんでしょ?
やってみる
• 10億件の小売データ(提供: )
• 10秒間隔で100ユーザから同時参照
• 1分間隔で1000件ずつロード(INSERTとUPDATEが半々)
• 更新と参照は別のウェアハウスで実行
→同一のテーブルに対する更新と参照の混合ワークロード
やってみる
更新 参照
© 2021 NTT DATA Corporation 23
疑惑3:更新と参照が混ざったら遅くなるんでしょ?
• Snowflakeは「クラウドサービス」「バーチャルウェアハウス」「ストレージ」の3層で構成
• トランザクションはクエリを受けつける「クラウドサービス」層が管理
ノー
ド1
ノー
ド2
ノー
ド3
クラウドサービス
・ Aテーブルはノード1が更新中
・ ノード3はコミット前のデータを参照させる
Aテーブル
更新しよう
Aテーブル
参照しよう
© 2021 NTT DATA Corporation 24
疑惑3:更新と参照が混ざったら遅くなるんでしょ?
• クラウドサービスレイヤに、メタデータ管理用のスケーラブルかつトランザクショナルなKVS
(FoundationDB)を持っていて、Snowflake内の全ての処理状況を管理
• そのためSnowflakeはACIDを担保していながら、内部処理は全てステートレスで、
Design for Failureなアーキテクチャデザイン
クラウド
サービス
バーチャル
ウェアハウス
メタデータ管理KVS
ロードバランサ
ストレージ
クライアント
KVS上に持つトランザクショ
ンステータスの更新をコミット
したらトランザクション確定
© 2021 NTT DATA Corporation 25
疑惑3:更新と参照が混ざったら遅くなるんでしょ?
一番外側の層(クラウドサービスレイヤ):
目立たないけど、実は非常に重要な役割
© 2021 NTT DATA Corporation 26
疑惑3:更新と参照が混ざったら遅くなるんでしょ?
遅くならない!
混合ワークロードにも強い!
実際どうなの?
© 2021 NTT DATA Corporation 27
3つの疑惑「実際どうなの?」
大人数で同時参照してもOK
更新のトランザクション担保OK
更新と参照の同時実行OK
© 2021 NTT DATA Corporation 28
これまでありがちだった状況
• 分析に必要なデータは、日次・週次・月次のバッチで連携され、分析は「ある静止点」をも
とに行われる
• 多くの人が同時に同じデータにアクセスできないため、データ分析は一部の人の特権
• 分析と業務の間に壁があり、分析結果を業務に活かすには高いハードルがある
データ分析の世界
一部の高度
な分析者
業務の世界
分析用データ
基幹系
データ
日次~月次バッチ
一般社員
© 2021 NTT DATA Corporation 29
Snowflakeで実現できる「データの民主化」
• 分析に必要なデータが、ニアリアルタイムでストリーム処理されて連携
• 大勢が一斉にアクセスしても問題がないため、全ての社員が同じデータを参照
• 分析と業務が一体で、分析結果をそのまま業務に活かせる
→組織の全員が「データドリブン」になるための準備が整う!
業務の世界
基幹系
データ
一般社員
一部の高度
な分析者
クラウド
データ
社外データ
ニアリアル
ニアリアル
ニアリアル
© 2021 NTT DATA Corporation 30
Snowflakeで実現できる「データの民主化」
Snowflakeって実際どうなの?を探ったら
新しい世界が見えてきた・・・!
© 2021 NTT DATA Corporation

Mais conteúdo relacionado

Mais procurados

バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
Ryota Watabe
 

Mais procurados (20)

単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
ビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分けビッグデータ処理データベースの全体像と使い分け
ビッグデータ処理データベースの全体像と使い分け
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
 
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
大規模データ処理の定番OSS Hadoop / Spark 最新動向 - 2021秋 -(db tech showcase 2021 / ONLINE 発...
 
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介  #streamctjpApache NiFi の紹介  #streamctjp
Apache NiFi の紹介 #streamctjp
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版) データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)
あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)
あなたのクラウドは大丈夫?NRI実務者が教えるセキュリティの傾向と対策 (Oracle Cloudウェビナーシリーズ: 2021年11月24日)
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 
Yahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組みYahoo! JAPANにおけるApache Cassandraへの取り組み
Yahoo! JAPANにおけるApache Cassandraへの取り組み
 
Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築Amazon Redshiftによるリアルタイム分析サービスの構築
Amazon Redshiftによるリアルタイム分析サービスの構築
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
AWS初心者向けWebinar RDBのAWSへの移行方法(Oracleを例に)
 

Semelhante a Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語る

【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
griddb
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
Insight Technology, Inc.
 
Big data presentation for mcpc
Big data presentation for mcpcBig data presentation for mcpc
Big data presentation for mcpc
CLOUDIAN KK
 

Semelhante a Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語る (20)

Why we need blockchain for dx
Why we need blockchain for dxWhy we need blockchain for dx
Why we need blockchain for dx
 
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
【C-2・醍醐様】AIとAPIがITインフラにもたらす変化 ~プログラマブルなクラウド型Wi-Fi~
 
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
 
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
 
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介 Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
Qlik TechFest A-3 Qlik Senseによる厚生労働省の国民向けサイト事例紹介
 
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
Db2 & Db2 Warehouse v11.5.4 最新情報アップデート2020年8月25日
 
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにありNew IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
 
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
データ活用を俊敏に進めるためのDataOps実践方法とその高度化のためのナレッジグラフ活用の取り組み(NTTデータ テクノロジーカンファレンス 2020 ...
 
IOT and Lean Manifacturing
IOT and Lean ManifacturingIOT and Lean Manifacturing
IOT and Lean Manifacturing
 
小売データ×地理情報/Tableau×Snowflake データでクリエイティブになるあたらしい世界
小売データ×地理情報/Tableau×Snowflake データでクリエイティブになるあたらしい世界小売データ×地理情報/Tableau×Snowflake データでクリエイティブになるあたらしい世界
小売データ×地理情報/Tableau×Snowflake データでクリエイティブになるあたらしい世界
 
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Wireless Japan[講演]八子 20110526
Wireless Japan[講演]八子 20110526Wireless Japan[講演]八子 20110526
Wireless Japan[講演]八子 20110526
 
BigData-JAWS 2020-11-30 - AWS Batchによるデータ変換処理
BigData-JAWS 2020-11-30 - AWS Batchによるデータ変換処理BigData-JAWS 2020-11-30 - AWS Batchによるデータ変換処理
BigData-JAWS 2020-11-30 - AWS Batchによるデータ変換処理
 
ニフティクラウドアップデート in クラウドごった煮@青森
ニフティクラウドアップデート in クラウドごった煮@青森ニフティクラウドアップデート in クラウドごった煮@青森
ニフティクラウドアップデート in クラウドごった煮@青森
 
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
[db tech showcase Tokyo 2017] C25: 世界最速のAnalytic DBがHadoopとタッグを組んだ! ~スケールアウト検...
 
Big data presentation for mcpc
Big data presentation for mcpcBig data presentation for mcpc
Big data presentation for mcpc
 
DX と社会問題解決
DX と社会問題解決DX と社会問題解決
DX と社会問題解決
 
大企業におけるイノベーションはどうやって起こす?@立命館大学
大企業におけるイノベーションはどうやって起こす?@立命館大学大企業におけるイノベーションはどうやって起こす?@立命館大学
大企業におけるイノベーションはどうやって起こす?@立命館大学
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
 

Snowflakeって実際どうなの?数多のDBを使い倒した猛者が語る

  • 1. © 2021 Snowflake Inc. All Rights Reserved 1 2021/02/10 配信 https://www.youtube.com/watch?v=DUaQwn34JLE
  • 2. © 2021 NTT DATA Corporation 2 自己紹介 渋谷 亮太 AI&IoT事業部 DBエンジニア ・ OLTP系 ・ DWH系 ・ Hadoopも クラウドデータ分析基盤 ■経験
  • 3. © 2021 NTT DATA Corporation 3 SnowVillage Live 001:視聴者のみんなでSnowflakeにリアルタイムアクセス! 前回のおさらい データ共有すごい! マスキングすごい! 10億件データに対する 参照性能すごい! タイムトラベルすごい! ウェアハウスの サイズ変更すごい! BIツールやTwitterとの 連携すごい!
  • 4. © 2021 NTT DATA Corporation 4 SnowVillage Live 001:視聴者のみんなでSnowflakeにリアルタイムアクセス! 前回のおさらい データ共有すごい! マスキングすごい! 10億件データに対する 参照性能すごい! タイムトラベルすごい! ウェアハウスの サイズ変更すごい! BIツールやTwitterとの 連携すごい! すごすぎて何か怪しい・・・ 落とし穴があるのでは・・・?
  • 5. © 2021 NTT DATA Corporation 5 今日のテーマ 「Snowflakeって実際どうなの?」 全力で「怪しいところ」をあげて、リアルタイムで動かしてみて、 実際どうなの?を探ります Snowflakeのここってどうなの?という疑問・質問をTwitterで募集します #SnowVillage をつけてツイートお願いします
  • 6. © 2021 NTT DATA Corporation 6 Snowflakeのアーキテクチャ マルチクラスタ・共有データ(Multi Cluster / Shared Data)
  • 7. © 2021 NTT DATA Corporation 7 疑惑1 ストレージが ボトルネックに なるんじゃ?
  • 8. © 2021 NTT DATA Corporation 8 「共有データ」ということは、ストレージを共有するということ=普通に考えるとボトルネック 疑惑1:ストレージがボトルネックになるんじゃ? ストレージがボトルネックになって 参照性能が出ないのでは?
  • 9. © 2021 NTT DATA Corporation 9 疑惑1:ストレージがボトルネックになるんじゃ? やってみる • 10億件の小売データ(提供: ) • 全国の200店舗の担当者が、自店舗の売上点数と売上合計を一斉に集計 • 20店舗ずつ異なるウェアハウスが割り当てられている →10億件データに対し、違う条件のクエリを同時に200個投げるユースケース やってみる
  • 10. © 2021 NTT DATA Corporation 10 • Snowflakeはオブジェクトストレージ(AWS S3, Azure Blob, GCP GCS)をメインス トレージとして採用 • オブジェクトストレージは、パブリッククラウドのスケールを活かして超大規模なクラスタが組ま れた分散ストレージ →Snowflakeはその分散性能を活かしているから、ボトルネックにならない 疑惑1:ストレージがボトルネックになるんじゃ? 見た目(使い勝手)はこうだけど・・・ 実際はこんな感じ
  • 11. © 2021 NTT DATA Corporation 11 疑惑1:ストレージがボトルネックになるんじゃ? オブジェクトストレージってSSDに比べると遅いのでは?
  • 12. © 2021 NTT DATA Corporation 12 疑惑1:ストレージがボトルネックになるんじゃ? やってみる • 10億件の小売データ(提供: ) • 2020年12月の売上データを抽出し、都道府県別の売上点数と売上合計を集計 →10億件データに対し、1000万件程に絞り込んで集計するケース (71項目のうち、使用するのは3項目) Retail 10億件 71項目 使うのはここだけ やってみる
  • 13. © 2021 NTT DATA Corporation 13 疑惑1:ストレージがボトルネックになるんじゃ? • オブジェクトストレージの強みを活かすため、Snowflakeは「マイクロパーティション」という形 式でデータを保持 • データを小分けにして分散配置し、複数のサーバで同時に処理 • マイクロパーティションは、ハイブリッドカラムナ形式で保存されていて、必要なレコードが含ま れるファイルの必要なカラムだけをバイト単位で読み込める →必要なデータだけを読み取り、並列で処理して性能向上 ヘッダ R1 C1 R2 C1 Snowflakeデータブロック(マイクロパーティションファイル) R1 C2 R2 C2 R1 C3 R2 C3 C1 C2 C3 R1 R2 R3 R4 ヘッダ R3 C1 R4 C1 R3 C2 R4 C2 R3 C3 R4 C3 テーブル MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP MP サーバ サーバ サーバ サーバ サーバ サーバ サーバ サーバ
  • 14. © 2021 NTT DATA Corporation 14 ボトルネックにはならない! むしろストレージの特性を活かした高性能 疑惑1:ストレージがボトルネックになるんじゃ? 実際どうなの?
  • 15. © 2021 NTT DATA Corporation 15 疑惑2 更新の性能や 機能がしょぼいの では?
  • 16. © 2021 NTT DATA Corporation 16 疑惑2:更新の性能や機能がしょぼいのでは? クエリサービスではなく「データベース」として使うからには、更新も非常に重要 トランザクション機能はどうなっているのか? 参照性能のために更新機能や性能を トレードオフにしているんじゃないの?
  • 17. © 2021 NTT DATA Corporation 17 疑惑2:更新の性能や機能がしょぼいのでは? やってみる • 10億件の小売データ(提供: ) • 大量のGzip圧縮されたCSVファイルをSnowflakeテーブルにロード →10億件をロードするケース • トランザクションを開始し、顧客名をUPDATE • 別のトランザクションから参照 →トランザクション分離レベルを確認するケース やってみる
  • 18. © 2021 NTT DATA Corporation 18 疑惑2:更新の性能や機能がしょぼいのでは? • SnowflakeはUPDATEでもDELETEでも、データを全てマイクロパーティションファイルごと 追記することで実現 • これにより、更新の性能は安定するし、更新してもデータブロックが汚れることはない • この特性を活かしてRead Committed分離レベルのトランザクションを実現 ヘッダ A B C A B C ヘッダ A B ’ C UPDATE 一時的にデータは増えるが汚れない Update後のファイルを新規追加 古いファイルは一定期間後削除 コミット前のSELECT はこちらを参照 コミット後のSELECTは こちらを参照
  • 19. © 2021 NTT DATA Corporation 19 疑惑2:更新の性能や機能がしょぼいのでは? 独自の更新方式で性能は良い! トランザクションもしっかり! 実際どうなの?
  • 20. © 2021 NTT DATA Corporation 20 疑惑3 更新と参照が 混ざったら 遅くなるんでしょ?
  • 21. © 2021 NTT DATA Corporation 21 疑惑3:更新と参照が混ざったら遅くなるんでしょ? 分散システムでトランザクションを守るためには、状態の同期が必要 一般的に、同期のためには性能を犠牲にせざるを得ないことが多い ノー ド1 ノー ド2 ノー ド3 Aテーブル 更新しよう Aテーブル 参照しよう どっちが勝ち?
  • 22. © 2021 NTT DATA Corporation 22 疑惑3:更新と参照が混ざったら遅くなるんでしょ? やってみる • 10億件の小売データ(提供: ) • 10秒間隔で100ユーザから同時参照 • 1分間隔で1000件ずつロード(INSERTとUPDATEが半々) • 更新と参照は別のウェアハウスで実行 →同一のテーブルに対する更新と参照の混合ワークロード やってみる 更新 参照
  • 23. © 2021 NTT DATA Corporation 23 疑惑3:更新と参照が混ざったら遅くなるんでしょ? • Snowflakeは「クラウドサービス」「バーチャルウェアハウス」「ストレージ」の3層で構成 • トランザクションはクエリを受けつける「クラウドサービス」層が管理 ノー ド1 ノー ド2 ノー ド3 クラウドサービス ・ Aテーブルはノード1が更新中 ・ ノード3はコミット前のデータを参照させる Aテーブル 更新しよう Aテーブル 参照しよう
  • 24. © 2021 NTT DATA Corporation 24 疑惑3:更新と参照が混ざったら遅くなるんでしょ? • クラウドサービスレイヤに、メタデータ管理用のスケーラブルかつトランザクショナルなKVS (FoundationDB)を持っていて、Snowflake内の全ての処理状況を管理 • そのためSnowflakeはACIDを担保していながら、内部処理は全てステートレスで、 Design for Failureなアーキテクチャデザイン クラウド サービス バーチャル ウェアハウス メタデータ管理KVS ロードバランサ ストレージ クライアント KVS上に持つトランザクショ ンステータスの更新をコミット したらトランザクション確定
  • 25. © 2021 NTT DATA Corporation 25 疑惑3:更新と参照が混ざったら遅くなるんでしょ? 一番外側の層(クラウドサービスレイヤ): 目立たないけど、実は非常に重要な役割
  • 26. © 2021 NTT DATA Corporation 26 疑惑3:更新と参照が混ざったら遅くなるんでしょ? 遅くならない! 混合ワークロードにも強い! 実際どうなの?
  • 27. © 2021 NTT DATA Corporation 27 3つの疑惑「実際どうなの?」 大人数で同時参照してもOK 更新のトランザクション担保OK 更新と参照の同時実行OK
  • 28. © 2021 NTT DATA Corporation 28 これまでありがちだった状況 • 分析に必要なデータは、日次・週次・月次のバッチで連携され、分析は「ある静止点」をも とに行われる • 多くの人が同時に同じデータにアクセスできないため、データ分析は一部の人の特権 • 分析と業務の間に壁があり、分析結果を業務に活かすには高いハードルがある データ分析の世界 一部の高度 な分析者 業務の世界 分析用データ 基幹系 データ 日次~月次バッチ 一般社員
  • 29. © 2021 NTT DATA Corporation 29 Snowflakeで実現できる「データの民主化」 • 分析に必要なデータが、ニアリアルタイムでストリーム処理されて連携 • 大勢が一斉にアクセスしても問題がないため、全ての社員が同じデータを参照 • 分析と業務が一体で、分析結果をそのまま業務に活かせる →組織の全員が「データドリブン」になるための準備が整う! 業務の世界 基幹系 データ 一般社員 一部の高度 な分析者 クラウド データ 社外データ ニアリアル ニアリアル ニアリアル
  • 30. © 2021 NTT DATA Corporation 30 Snowflakeで実現できる「データの民主化」 Snowflakeって実際どうなの?を探ったら 新しい世界が見えてきた・・・!
  • 31. © 2021 NTT DATA Corporation