Slide 1

Slide 1 text

Snowflake はじめの一歩 データアナリティクス事業本部 2020/3/27 玉井励 1

Slide 2

Slide 2 text

2 自己紹介 玉井 励(タマイ レイ) • データアナリティクス事業本部 • 大阪オフィス勤務 • 本日は奈良県の自宅から放送 • コロナウイルス騒動前からリモート ワークがメイン(2年くらい)

Slide 3

Slide 3 text

3 本日お話すること

Slide 4

Slide 4 text

4 本日お話すること • Snowflakeとは何か? • Snowflakeの実際の画面(デモ) • Snowflakeの特徴 • 他のDWHにはないところを中心に

Slide 5

Slide 5 text

5 本日お話しないこと

Slide 6

Slide 6 text

6 本日お話しないこと • 詳細な料金体系 • ※従量課金ということだけ知っていただければ • セキュリティの解説 • 権限管理 • エディションの内容 • ※5つのエディションから選択可能ということだけ知っていただけ れば • その他細かい仕様

Slide 7

Slide 7 text

7 Snowflakeって何?

Slide 8

Slide 8 text

8 Snowflakeとは データウェアハウス ANSI準拠のSQLが使用可能 クラウド上で稼働 AWS、Azure、GCP オンプレミスは非対応 SaaS ハードウェア無し(管理不要) クラウド上に 構築 SQL使用可能 SaaSとして 提供

Slide 9

Slide 9 text

9 とりあえず画面を見てもらいます(デモ)

Slide 10

Slide 10 text

10 デモでやること 1. テーブルを作る 2. データを入れる 3. テーブルに対してSELECT文を実行する 極めて普通のことをSnowflakeでやります →イメージを掴んでもらえれば嬉しいです。

Slide 11

Slide 11 text

11 画面を変えます

Slide 12

Slide 12 text

12 3層アーキテクチャ

Slide 13

Slide 13 text

© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query Processing Layer Cloud Service Layer Data Storage Layer

Slide 14

Slide 14 text

© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query Processing Layer Cloud Service Layer Data Storage Layer

Slide 15

Slide 15 text

15 Data Storage Layer • データの保存場所 • 全てのデータはここに置かれる • 内部の最適化された形式(マイクロパーティション)と して保存 • データに直接触れることはできない • マイクロパーティションとは? • テーブルデータを保持する連続したストレージユニット • テーブル毎に複数のマイクロパーティションを作成 • イミュータブル(不変)

Slide 16

Slide 16 text

© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query Processing Layer Cloud Service Layer Data Storage Layer

Slide 17

Slide 17 text

17 Query Processing Layer • クエリを処理するところ • 仮想ウェアハウスが稼働する • 仮想ウェアハウスとは? • MPPタイプのコンピューティングクラスタ • 各クラスタは独立 • 後で詳細説明します • ストレージ(データ)と分離している

Slide 18

Slide 18 text

© 2020 Snowflake Inc. All Rights Reserved Snowflakeのアーキテクチャ マルチクラウド対応 Query Processing Layer Cloud Service Layer Data Storage Layer

Slide 19

Slide 19 text

19 Cloud Service Layer • Snowflakeの各種管理を司る • セキュリティ • 認証 • アクセス制御 • データ暗号化 • メタデータ管理 • クエリの処理等、色々なことに利用 • SQLオプティマイザ • クエリの最適化 • プルーニング • トランザクション • 完全なCRUD機能 • 完全なACIDトランザクション • 同時実行の管理

Slide 20

Slide 20 text

20 その他アーキテクチャについて • ユーザー側がインフラを操作することはできない • 自分でインフラ側のスペックを増強する等は不可 • Snowflake社が管理 • インフラリソースは他ユーザーと共有 • 例外は最上位エディション(VPS)

Slide 21

Slide 21 text

21 仮想ウェアハウス

Slide 22

Slide 22 text

22 仮想ウェアハウスとは データに対してクエリを 実行するマシン それぞれにCPU、メモリ、SSD が備わっている データ(ストレージ)と分離 して存在

Slide 23

Slide 23 text

23 従来のDB(DWH)のアーキテクチャ 共有ストレージ シングルクラスタ 共有ディスク 分散型のローカルストレージ シングルクラスタ 共有なし(Shared Nothing)

Slide 24

Slide 24 text

XL 営業 機械学習 Structured & semi-structured ETL/ELT S M M M M M M M M

Slide 25

Slide 25 text

25 もう少し細かい特徴 • いくつでも作成できる • SELECT等の各種DMLの実行時に稼働する • 自動レジュームも可能 • いつでも停止できる • 自動サスペンドも可能 • いつでもスペック(サイズ)を変更できる • 稼働している間だけ費用が発生する

Slide 26

Slide 26 text

26 仮想ウェアハウスのサイズ(スケールアップ) 仮想ウェアハウスのサイ ズ(スペック)はTシャ ツのサイズと同じ表記 XS~4XL S XL

Slide 27

Slide 27 text

Doubling the number of servers halves the run-time... サーバスペックを2 倍にすると実行時間 が1/2になる サーバの請求単位は 秒単位 そのため、同じコス トで8倍速く処理す ることができる スケーリングアップ(10億件のアップロード)

Slide 28

Slide 28 text

28 マルチクラスター化(スケールアウト) 最大10個までクラスター を増やせる 最小時と最大時のクラス タの数を指定することで、 自動スケールが可能 ※Enterpriseエディション以上の み S S S S

Slide 29

Slide 29 text

XL 営業 機械学習 Structured & semi-structured ETL/ELT S M M M M M M M M

Slide 30

Slide 30 text

30 データのロード

Slide 31

Slide 31 text

31 Snowflakeにおけるデータロードの大まかな流れ データを用意する (ファイルとして出力する) データをステージに配置する ステージからテーブルに データをロードする

Slide 32

Slide 32 text

32 ステージとは Snowflake用のファイル のリポジトリ Snowflakeにとって都合良くデー タをロード/アンロードできる場 所

Slide 33

Slide 33 text

33 2種類のステージ • Internal Stage(内部ステージ) • Snowflake内部に作成するステージ • 任意のテーブルにデータをロードできる • External Stage(外部ステージ) • Snowflakeの外に存在するステージ • 下記のストレージサービスをSnowflakeのステージとし て扱うことができる • Amazon S3 • Azure Blob • Google Cloud Storage

Slide 34

Slide 34 text

34 Snowflakeにおけるデータロードの流れ

Slide 35

Slide 35 text

35 Snowflakeにおけるデータロードの流れ

Slide 36

Slide 36 text

36 Continuous(連続)ロード Snowflake側に用意され たサーバーレスなサービ ス 指定したステージから継 続的にデータをロードし 続ける 「テーブルにデータをストリー ミングする」というイメージ Snowpipe

Slide 37

Slide 37 text

37 半構造化データ

Slide 38

Slide 38 text

38 Snowflakeは半構造化データをネイティブサポート 半構造化データをそのまま テーブルに入れることが可 能 (VARIANT型というカラムにロー ド可能) 入れた半構造化データに対 して直接SQLを実行可能 半構造化データ専用の関数もあり

Slide 39

Slide 39 text

39 対応ファイル形式 • JSON • XML • Avro • ORC • Parquet

Slide 40

Slide 40 text

40 半構造化データを扱う例 Salesforceのデータを 分析したい!

Slide 41

Slide 41 text

41 半構造化データを扱う例 Salesforceのデータを 分析したい! REST APIから データをGET

Slide 42

Slide 42 text

42 半構造化データを扱う例 Salesforceのデータを 分析したい! REST APIから データをGET 出てくるのは JSON形式のファイル

Slide 43

Slide 43 text

43 従来の方法だとETL(Extract→Transform→Load) 抽出してきた Salesforceのデータ

Slide 44

Slide 44 text

44 従来の方法だとETL(Extract→Transform→Load) 抽出してきた Salesforceのデータ テーブル形式(RDBMS)に 変換

Slide 45

Slide 45 text

45 従来の方法だとETL(Extract→Transform→Load) 抽出してきた Salesforceのデータ テーブル形式(RDBMS)に 変換 DB(DWH)にロード

Slide 46

Slide 46 text

46 SnowflakeはELT(Extract→Load→Transform) 抽出してきた Salesforceのデータ Snowflakeにロード Snowflake上で データ変換

Slide 47

Slide 47 text

47 タイムトラベル(とフェールセーフ)

Slide 48

Slide 48 text

48 システムを運用する上でアクシデントは不可避 ヒューマンエラー システムのエラー 時間のかかるバックアップ ミスを防ぐためのスキルと管 理コスト

Slide 49

Slide 49 text

49 タイムトラベル機能で解決 • 各種過去データに対するクエリ、複製、リストアが 可能 • データベース • テーブル • スキーマ • 遡れる日数はエディションによる • StandardとPremiumは最大1日 • Enterprise以上だと最大90日 • (Transientテーブル、Temporaryテーブルは最大1日)

Slide 50

Slide 50 text

50 さらにフェールセーフまで • タイムトラベルの有効期限を過ぎたデータを7日間保 持する • Snowflake社の担当者のみがアクセスできる • 復元するためには特殊な手続きが必要 • 全エディションで使用可能

Slide 51

Slide 51 text

51 本日のまとめ(とその他諸々)

Slide 52

Slide 52 text

52 Snowflakeの特徴 • クラウドベース&SaaS型のデータウェアハウス • データストレージとコンピュート(仮想ウェアハウ ス)が分離したアーキテクチャ • 好きな時だけ稼働する仮想ウェアハウス • ステージを使ったデータロード • 半構造化データをネイティブサポート • タイムトラベルで過去データにアクセス

Slide 53

Slide 53 text

S M Sales Data Science S Structured & semi-structured クラウドサービス トランザクション管理 セキュリティ クエリ計画・最適化 メタデータ管理 L M ETL/ELT Snowpipe XS タスク&ストリーム 論理モデル

Slide 54

Slide 54 text

54 他にも色々… • 強固なセキュリティ • Snowflake上のデータは全部暗号化される等 • 強力なキャッシュ • 3種類のキャッシュで仮想ウェアハウス動作無しでデータ 取得 • データシェアリング • 簡単に別アカウント等へデータ共有 • ロールベースの権限管理 • …etc

Slide 55

Slide 55 text

55 ご案内 Snowflake無料トライアル(30日間) https://classmethod.jp/partner/snowflake/ Snowflakeに関する弊社の技術ブログ https://dev.classmethod.jp/referencecat/business- analytics-tools-snowflake/

Slide 56

Slide 56 text

56