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はじめの一歩
Search
tama-chang
March 27, 2020
Technology
2
2.4k
Snowflakeはじめの一歩
tama-chang
March 27, 2020
Tweet
Share
More Decks by tama-chang
See All by tama-chang
データ分析の世界で今後必要とされる役割 「Purple People」とは
cmtamai
3
2.8k
Transform〜メトリクスレイヤーとは何か? データ分析に必要な「指標」を管理する
cmtamai
0
2.1k
アナリティクスエンジニアとは(What is Analytics Engineer)
cmtamai
1
8.7k
DWH御三家の各特徴と選び方〜SnowflakeとBigQueryとRedshiftと〜
cmtamai
0
9.5k
禁忌解放~TableauとLookerを連携して究極のBI環境を召喚する
cmtamai
0
3.3k
Lookerはじめの一歩
cmtamai
0
2.2k
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
cmtamai
0
870
osaka_tamai.pdf
cmtamai
0
1.8k
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
cmtamai
0
1.4k
Other Decks in Technology
See All in Technology
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
140
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
180
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
Engineer Career Talk
lycorp_recruit_jp
0
180
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
390
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1k
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
110
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Visualization
eitanlees
145
15k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Code Review Best Practice
trishagee
64
17k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Building an army of robots
kneath
302
43k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
What's new in Ruby 2.0
geeforr
343
31k
Building Adaptive Systems
keathley
38
2.3k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Transcript
Snowflake はじめの一歩 データアナリティクス事業本部 2020/3/27 玉井励 1
2 自己紹介 玉井 励(タマイ レイ) • データアナリティクス事業本部 • 大阪オフィス勤務 •
本日は奈良県の自宅から放送 • コロナウイルス騒動前からリモート ワークがメイン(2年くらい)
3 本日お話すること
4 本日お話すること • Snowflakeとは何か? • Snowflakeの実際の画面(デモ) • Snowflakeの特徴 • 他のDWHにはないところを中心に
5 本日お話しないこと
6 本日お話しないこと • 詳細な料金体系 • ※従量課金ということだけ知っていただければ • セキュリティの解説 • 権限管理
• エディションの内容 • ※5つのエディションから選択可能ということだけ知っていただけ れば • その他細かい仕様
7 Snowflakeって何?
8 Snowflakeとは データウェアハウス ANSI準拠のSQLが使用可能 クラウド上で稼働 AWS、Azure、GCP オンプレミスは非対応 SaaS ハードウェア無し(管理不要) クラウド上に
構築 SQL使用可能 SaaSとして 提供
9 とりあえず画面を見てもらいます(デモ)
10 デモでやること 1. テーブルを作る 2. データを入れる 3. テーブルに対してSELECT文を実行する 極めて普通のことをSnowflakeでやります →イメージを掴んでもらえれば嬉しいです。
11 画面を変えます
12 3層アーキテクチャ
© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query
Processing Layer Cloud Service Layer Data Storage Layer
© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query
Processing Layer Cloud Service Layer Data Storage Layer
15 Data Storage Layer • データの保存場所 • 全てのデータはここに置かれる • 内部の最適化された形式(マイクロパーティション)と
して保存 • データに直接触れることはできない • マイクロパーティションとは? • テーブルデータを保持する連続したストレージユニット • テーブル毎に複数のマイクロパーティションを作成 • イミュータブル(不変)
© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query
Processing Layer Cloud Service Layer Data Storage Layer
17 Query Processing Layer • クエリを処理するところ • 仮想ウェアハウスが稼働する • 仮想ウェアハウスとは?
• MPPタイプのコンピューティングクラスタ • 各クラスタは独立 • 後で詳細説明します • ストレージ(データ)と分離している
© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query
Processing Layer Cloud Service Layer Data Storage Layer
19 Cloud Service Layer • Snowflakeの各種管理を司る • セキュリティ • 認証
• アクセス制御 • データ暗号化 • メタデータ管理 • クエリの処理等、色々なことに利用 • SQLオプティマイザ • クエリの最適化 • プルーニング • トランザクション • 完全なCRUD機能 • 完全なACIDトランザクション • 同時実行の管理
20 その他アーキテクチャについて • ユーザー側がインフラを操作することはできない • 自分でインフラ側のスペックを増強する等は不可 • Snowflake社が管理 • インフラリソースは他ユーザーと共有
• 例外は最上位エディション(VPS)
21 仮想ウェアハウス
22 仮想ウェアハウスとは データに対してクエリを 実行するマシン それぞれにCPU、メモリ、SSD が備わっている データ(ストレージ)と分離 して存在
23 従来のDB(DWH)のアーキテクチャ 共有ストレージ シングルクラスタ 共有ディスク 分散型のローカルストレージ シングルクラスタ 共有なし(Shared Nothing)
XL 営業 機械学習 Structured & semi-structured ETL/ELT S M M
M M M M M M
25 もう少し細かい特徴 • いくつでも作成できる • SELECT等の各種DMLの実行時に稼働する • 自動レジュームも可能 • いつでも停止できる
• 自動サスペンドも可能 • いつでもスペック(サイズ)を変更できる • 稼働している間だけ費用が発生する
26 仮想ウェアハウスのサイズ(スケールアップ) 仮想ウェアハウスのサイ ズ(スペック)はTシャ ツのサイズと同じ表記 XS~4XL S XL
Doubling the number of servers halves the run-time... サーバスペックを2 倍にすると実行時間
が1/2になる サーバの請求単位は 秒単位 そのため、同じコス トで8倍速く処理す ることができる スケーリングアップ(10億件のアップロード)
28 マルチクラスター化(スケールアウト) 最大10個までクラスター を増やせる 最小時と最大時のクラス タの数を指定することで、 自動スケールが可能 ※Enterpriseエディション以上の み S
S S S
XL 営業 機械学習 Structured & semi-structured ETL/ELT S M M
M M M M M M
30 データのロード
31 Snowflakeにおけるデータロードの大まかな流れ データを用意する (ファイルとして出力する) データをステージに配置する ステージからテーブルに データをロードする
32 ステージとは Snowflake用のファイル のリポジトリ Snowflakeにとって都合良くデー タをロード/アンロードできる場 所
33 2種類のステージ • Internal Stage(内部ステージ) • Snowflake内部に作成するステージ • 任意のテーブルにデータをロードできる •
External Stage(外部ステージ) • Snowflakeの外に存在するステージ • 下記のストレージサービスをSnowflakeのステージとし て扱うことができる • Amazon S3 • Azure Blob • Google Cloud Storage
34 Snowflakeにおけるデータロードの流れ
35 Snowflakeにおけるデータロードの流れ
36 Continuous(連続)ロード Snowflake側に用意され たサーバーレスなサービ ス 指定したステージから継 続的にデータをロードし 続ける 「テーブルにデータをストリー ミングする」というイメージ
Snowpipe
37 半構造化データ
38 Snowflakeは半構造化データをネイティブサポート 半構造化データをそのまま テーブルに入れることが可 能 (VARIANT型というカラムにロー ド可能) 入れた半構造化データに対 して直接SQLを実行可能 半構造化データ専用の関数もあり
39 対応ファイル形式 • JSON • XML • Avro • ORC
• Parquet
40 半構造化データを扱う例 Salesforceのデータを 分析したい!
41 半構造化データを扱う例 Salesforceのデータを 分析したい! REST APIから データをGET
42 半構造化データを扱う例 Salesforceのデータを 分析したい! REST APIから データをGET 出てくるのは JSON形式のファイル
43 従来の方法だとETL(Extract→Transform→Load) 抽出してきた Salesforceのデータ
44 従来の方法だとETL(Extract→Transform→Load) 抽出してきた Salesforceのデータ テーブル形式(RDBMS)に 変換
45 従来の方法だとETL(Extract→Transform→Load) 抽出してきた Salesforceのデータ テーブル形式(RDBMS)に 変換 DB(DWH)にロード
46 SnowflakeはELT(Extract→Load→Transform) 抽出してきた Salesforceのデータ Snowflakeにロード Snowflake上で データ変換
47 タイムトラベル(とフェールセーフ)
48 システムを運用する上でアクシデントは不可避 ヒューマンエラー システムのエラー 時間のかかるバックアップ ミスを防ぐためのスキルと管 理コスト
49 タイムトラベル機能で解決 • 各種過去データに対するクエリ、複製、リストアが 可能 • データベース • テーブル •
スキーマ • 遡れる日数はエディションによる • StandardとPremiumは最大1日 • Enterprise以上だと最大90日 • (Transientテーブル、Temporaryテーブルは最大1日)
50 さらにフェールセーフまで • タイムトラベルの有効期限を過ぎたデータを7日間保 持する • Snowflake社の担当者のみがアクセスできる • 復元するためには特殊な手続きが必要 •
全エディションで使用可能
51 本日のまとめ(とその他諸々)
52 Snowflakeの特徴 • クラウドベース&SaaS型のデータウェアハウス • データストレージとコンピュート(仮想ウェアハウ ス)が分離したアーキテクチャ • 好きな時だけ稼働する仮想ウェアハウス •
ステージを使ったデータロード • 半構造化データをネイティブサポート • タイムトラベルで過去データにアクセス
S M Sales Data Science S Structured & semi-structured クラウドサービス
トランザクション管理 セキュリティ クエリ計画・最適化 メタデータ管理 L M ETL/ELT Snowpipe XS タスク&ストリーム 論理モデル
54 他にも色々… • 強固なセキュリティ • Snowflake上のデータは全部暗号化される等 • 強力なキャッシュ • 3種類のキャッシュで仮想ウェアハウス動作無しでデータ
取得 • データシェアリング • 簡単に別アカウント等へデータ共有 • ロールベースの権限管理 • …etc
55 ご案内 Snowflake無料トライアル(30日間) https://classmethod.jp/partner/snowflake/ Snowflakeに関する弊社の技術ブログ https://dev.classmethod.jp/referencecat/business- analytics-tools-snowflake/
56