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.5k
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.2k
アナリティクスエンジニアとは(What is Analytics Engineer)
cmtamai
1
8.8k
DWH御三家の各特徴と選び方〜SnowflakeとBigQueryとRedshiftと〜
cmtamai
0
9.7k
禁忌解放~TableauとLookerを連携して究極のBI環境を召喚する
cmtamai
0
3.4k
Lookerはじめの一歩
cmtamai
0
2.2k
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
cmtamai
0
910
osaka_tamai.pdf
cmtamai
0
1.9k
スティーブン・セガール出演作品の邦題に「沈黙」がつくかどうか判別する機械学習モデルを作ろうとしてみた
cmtamai
0
1.4k
Other Decks in Technology
See All in Technology
Formal Development of Operating Systems in Rust
riru
1
420
20250116_自部署内でAmazon Nova体験会をやってみた話
riz3f7
1
100
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!事例のご紹介+座学②
siyuanzh09
0
110
Oracle Exadata Database Service(Dedicated Infrastructure):サービス概要のご紹介
oracle4engineer
PRO
0
12k
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
250
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
230
Amazon Q Developerで.NET Frameworkプロジェクトをモダナイズしてみた
kenichirokimura
1
200
Amazon Route 53, 待ちに待った TLSAレコードのサポート開始
kenichinakamura
0
170
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
13
2.2k
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
DMMブックスへのTipKit導入
ttyi2
1
110
Featured
See All Featured
Side Projects
sachag
452
42k
Music & Morning Musume
bryan
46
6.3k
Code Review Best Practice
trishagee
65
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
A Tale of Four Properties
chriscoyier
157
23k
Scaling GitHub
holman
459
140k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
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