Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第3回Snowflake女子会_LT登壇資料_Snowflake「マイクロパーティション」_kayo

kayo
December 13, 2024
180

 第3回Snowflake女子会_LT登壇資料_Snowflake「マイクロパーティション」_kayo

2024年12月13日にSnowflake女子会で男女問わずのユーザー会が開催されました。そのLT資料です。
タイトル:Oracle Databaseと比較しながら学ぶ 「マイクロパーティション」きほんのき

kayo

kayo

December 13, 2024
Tweet

Transcript

  1. AGENDA © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 1.

    自己紹介 2. Snowflake「マイクロパーティション」を Oracle Databaseと比較する 3. Snowflake「マイクロパーティション」良いところ 4. まとめ
  2. 自己紹介 【名前】kayo(@tshizuku03) 【主な職歴】 • 2013年9月~:Webサイト開発運用の事業会社 • Oracle Exadata→Oracle Exadataリプレイスなど経験 •

    2022年8月~:DB関連Sier • オンプレミスOracle Database→AWS Aurora PostgreSQL(SCT/DMS)などを担当 • 2024年7月~:ちゅらデータ株式会社 • データエンジニア • 既存データ基盤をSnowflakeへ移行というPoC案件を担当 © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ⇐ いまここ★
  3. 自己紹介 アーキテクチャ クラウド クローン Snowsight マイクロパーティション ストレージ キャッシュ Time Travel

    © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. Snowflakeに触れるがRDBMS(Oracle Database)との違いに困惑する日々..
  4. 自己紹介 アーキテクチャ クラウド クローン Snowsight マイクロパーティション ストレージ キャッシュ Time Travel

    © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. その中で今回は Snowflake「マイクロパーティション」を Oracle Database機能と比較 してみましたのでご紹介します 新しいサービスも、なじみあるサービスと比べて学べば理解度が上がる
  5. AGENDA © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 1.

    自己紹介 2. Snowflake「マイクロパーティション」を Oracle Databaseと比較する 3. Snowflake「マイクロパーティション」良いところ 4. まとめ
  6. Oracle Database「パーティション・テーブル」 CREATE TABLE customer ( costomer_id NUMBER(4) NOT NULL,

    c_name VARCHAR2(100), salse_date DATE) PARTITION BY RANGE(sales_date)) PARTITION p1 VALUES LESS THAN(TO_DATE(‘ 2024/09/01 ','YYYY/MM/DD’)) TABLESPACE Q9, PARTITION p2 VALUES LESS THAN(TO_DATE(‘ 2024/10/01 ','YYYY/MM/DD')) TABLESPACE Q10, PARTITION p3 VALUES LESS THAN(TO_DATE(‘ 2024/11/01 ','YYYY/MM/DD')) TABLESPACE Q11, PARTITION p4 VALUES LESS THAN(TO_DATE(‘ 2024/12/01 ','YYYY/MM/DD')) TABLESPACE Q12); © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. パーティション・テーブル作成例をご紹介 ※EEの有料オプション ※レンジパーティション例
  7. OracleDatabase「パーティション・テーブル」 ・・・ PARTITION BY RANGE(sales_date)( PARTITION p1 VALUES LESS THAN(TO_DATE('

    2024/09/01 ','YYYY/MM/DD’)) TABLESPACE Q9, PARTITION p2 VALUES LESS THAN(TO_DATE(‘ 2024/10/01 ','YYYY/MM/DD')) TABLESPACE Q10, PARTITION p3 VALUES LESS THAN(TO_DATE(‘ 2024/11/01 ','YYYY/MM/DD')) TABLESPACE Q11, PARTITION p4 VALUES LESS THAN(TO_DATE(‘ 2024/12/01 ','YYYY/MM/DD')) TABLESPACE Q12); © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. テーブル作成時にパーティションで分割する範囲を指定 キー列を指定 分割範囲を指定 ※EEの有料オプション ※レンジパーティション例
  8. データを小さい単位で分割して保存してくれる仕組みのこと CUSTOMER_ID C_NAME C_ADRESS C_DATE 50900001 山田 東京都 10/01 50900002

    山川 神奈川県 10/01 50900003 鈴木 埼玉県 10/01 50900004 鈴田 群馬県 11/02 50900005 田中 茨城県 11/02 50900006 中里 栃木県 11/02 50900007 佐藤 東京都 12/03 50900008 藤田 神奈川県 12/03 Snowflakeの「マイクロパーティション」 © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ストレージ 分割 圧縮 格納
  9. CUSTOMER_ID C_NAME C_ADRESS C_DATE 50900001 山田 東京都 10/01 50900002 山川

    神奈川県 10/01 50900003 鈴木 埼玉県 10/01 50900004 鈴田 群馬県 11/02 50900005 田中 茨城県 11/02 50900006 中里 栃木県 11/02 50900007 佐藤 東京都 12/03 50900008 藤田 神奈川県 12/03 Snowflakeの「マイクロパーティション」 データを小さい単位で分割して保存してくれる仕組みのこと © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 分割 圧縮 格納 ストレージ
  10. Snowflakeの「マイクロパーティション」 入れ替わった過去のマイクロパーティションは Enterprise Editionの場合1~90日間保持 ➢Standard Edition ⚫1日間 ➢Enterprise Edition以上 ⚫1~90日間

    ⚫DATA_RETENTION_TIME_IN_DAYSで指定 ➢Fail-Safe ⚫Time Travel保持期間終了後7日間 ⚫要サポート連絡 © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. tableA
  11. Snowflake「マイクロパーティション」と Oracle Database「パーティションテーブル」の比較 「仕組み」と「テーブル」で異なるがパーティション・プルーニングのみ類似 © 2024 Chura DATA inc. PROPRIETARY

    & CONFIDENTIAL. Snowflake「マイクロパーティション」 Oracle Database「パーティションテーブル」 概念 データを分割・圧縮・格納する仕組み 分割キー(列)を指定してデータベース内部で複数 の領域に分割したテーブル パーティション・ プルーニング 参照したいデータ以外のファイルを読み 飛ばしてパフォーマンス向上を図る 参照したいデータがあるテーブルのみアクセス してパフォーマンス向上を図る 管理作業 表領域という概念はなくTime Travel/Failsageがバックアップとしても機 能している 各パーティション毎に表領域を配置することで 個別にバックアップ/リカバリが可能 ※表領域の説明は後術 可用性 クラウドプロバイダのオブジェクトスト レージに配置され可用性を担保 パーティション単位で障害の影響を限定
  12. CUSTOMER_ID C_NAME C_ADRESS C_DATE 50900001 山田 東京都 10/01 50900002 山川

    神奈川県 10/01 50900003 鈴木 埼玉県 10/01 50900004 鈴田 群馬県 11/02 50900005 田中 茨城県 11/02 50900006 中里 栃木県 11/02 50900007 佐藤 東京都 12/03 50900008 藤田 神奈川県 12/03 【再掲】Snowflakeの「マイクロパーティション」 データを小さい単位で分割して保存してくれる仕組みのこと © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ストレージ 分割 圧縮 格納
  13. CUSTOMER_ID C_NAME C_ADRESS C_DATE 50900001 山田 東京都 10/01 50900002 山川

    神奈川県 10/01 50900003 鈴木 埼玉県 10/01 50900004 鈴田 群馬県 11/02 50900005 田中 茨城県 11/02 50900006 中里 栃木県 11/02 50900007 佐藤 東京都 12/03 50900008 藤田 神奈川県 12/03 Snowflakeの「マイクロパーティション」 実際に小分けにされた一つ一つのものはファイル © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ストレージ 分割 圧縮 格納
  14. Snowflake「マイクロパーティション」のファイルと Oracle Database「データブロック」の比較 どちらも実データを格納する入れ物 © 2024 Chura DATA inc. PROPRIETARY

    & CONFIDENTIAL. Snowflake「マイクロパーティション」ファイル Oracle Database「データブロック」 指向タイプ 列指向 行指向 圧縮タイプ 圧縮 非圧縮 サイズ 50~500MB(圧縮して16MB) テーブル作成時に指定(デフォルト8KB) 更新状態 不変(immutable)で 更新時に新規マイクロパーティション作成 同じデータブロックが何度も更新
  15. AGENDA © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 1.

    自己紹介 2. Snowflake「マイクロパーティション」を Oracle Databaseと比較する 3. Snowflake「マイクロパーティション」良いところ 4. まとめ
  16. Snowflake「Time Travel」について Time Travelは、ある時点のテーブルを再現できる機能 SELECT * FROM tableA AT (TIMESTAMP

    => ‘2024-10-01 12:00:00'); © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. ストレージ クラウド サービス tableA tableA
  17. OracleDatabase「Flashback Query」について Oracle Databaseにもある時点のテーブルを再現できる機能がある SELECT * FROM tableA AS OF

    TIMESTAMP TO_TIMESTAMP(‘2024-10-01 12:00:00', 'yyyy-mm-dd hh:mi:ss’); © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL.
  18. Oracle Database「Flashback機能」 カテゴリ 機能名 機能概要 リカバリ FlashbackDatabase DB全体を過去時点に戻す FlashbackTable テーブルのデータを過去時点に戻す

    FlashbackDrop 削除したテーブルを元に戻す 開発機能 FlashbackQuery 指定した過去時点のデータを参照 FlashbackVersionQuery 指定された2点間でのすべての変更データを表示 FlashbackTransactionQuery トランザクションの変更を戻すためのSQL文を表示 FlashbackTransaction トランザクションのロールバックを実行 FlashbackDataArchive テーブルに対する全てのトランザクションによる変更を追跡/格納 © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 他にもたくさんの機能があるけど 省略
  19. Oracle Database「Flashback Query」と Snowflake「Time Travel」の比較 どちらも誤って削除されたデータの復元可能だが、戻れる期間が異なる © 2024 Chura DATA

    inc. PROPRIETARY & CONFIDENTIAL. Snowflake「Time Travel」 OracleDatabase「Flashback Query」 機能内容 マイクロパーティションが不変(immutable)で あることを利用して過去データを参照 UNDO領域にINSERT/UPDATE/DELETEの更 新履歴を保存 そのUNDO領域を利用して過去データを 参照 いつまで戻れるか SE:1日 EE:1~90日 UNDO保存期間 ※保存期間、表領域サイズ、保存保障に依存 指定方法 1. TIMESTAMP 2. OFFSET(現在時刻との時差) 3. STATEMENT(queryID) 1. TIMESTAMP 2. INTERVAL(現在時刻との時差) 3. SCN(System Change Number)
  20. Snowflake「ゼロコピークローン」と類似する Oracle Database機能は・・・ 物理的なコピーをせずメタデータだけクローンする機能はなし © 2024 Chura DATA inc. PROPRIETARY

    & CONFIDENTIAL. 機能名 機能概要 Oracle Multitenant (Pluggable Databases) プラガブルデータベース(PDB)をクローンする機能あり ゼロコピークローンほどの即時性、ストレージ効果はなし RMAN(Recovery Manager) Duplicate バックアップ機能の一つにDB複製機能あり
  21. AGENDA © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 1.

    自己紹介 2. Snowflake「マイクロパーティション」を Oracle Databaseと比較する 3. Snowflake「マイクロパーティション」良いところ 4. まとめ
  22. まとめ ➢Snowflake「マイクロパーティション」と Oracle Databaseの「パーティション」は 「仕組み」と「テーブル」で異なるがパーティション・プルーニングのみ類似 ➢Snowflake「Time Travel」 は Oracle「Flashback Query」と類似するが

    戻れる期間は異なる ➢Snowflale「ゼロコピークローン」のように物理コピーをしない機能は Oracle Databaseには類似機能なし © 2024 Chura DATA inc. PROPRIETARY & CONFIDENTIAL. 新しいサービスも、なじみあるサービスと比べて学べば理解度が上がる