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

データエンジニアを助けてくれるFivetranとSnowflakeの仕様&機能のご紹介

Sagara
January 19, 2023

 データエンジニアを助けてくれるFivetranとSnowflakeの仕様&機能のご紹介

「こんなことまでしてくれるの!?~データエンジニアを助けてくれるFivetranとSnowflake~」で発表した登壇資料です。
https://dev.classmethod.jp/news/230119_fivetran-snowflake

Sagara

January 19, 2023
Tweet

More Decks by Sagara

Other Decks in Technology

Transcript

  1. データエンジニアを助けてくれる

    FivetranとSnowflakeの仕様&機能紹介

    2023/1/19

    クラスメソッド株式会社
    相樂 悟

    View Slide

  2. 2
    自己紹介
    氏名
    相樂 悟 (サガラ サトシ)
    所属
    クラスメソッド株式会社 アライアンス統括部
    主な担当
    Modern Data Stackのプリセールス・プロサービス

    View Slide

  3. 3
    クラスメソッドのModern Data Stack
    今日お話すること
    ・Fivetran、Snowflakeの概要
    ・データエンジニアを助けてくれるFivetran、Snowflakeの仕様・機能

    View Slide

  4. Fivetran


    View Slide

  5. Fivetranとは
    - 開発や運用作業が不要なELT(Extract,Load,Transform)サービス
    - ロード時のスキーマ(テーブル構成)も定義済
    - データ抽出前のスキーマ設計が不要
    5

    View Slide

  6. 一般的なデータ抽出(イメージ像)
    データ抽出してDWHに入れるだけでしょ?簡単
    でしょ!
    6

    View Slide

  7. 一般的なデータ抽出(実情) 7

    View Slide

  8. Fivetranがあれば…
    が全て担ってくれます
    8

    View Slide

  9. Fivetranでユーザーがすること
    1.データソースへの接続定義 2.使用するテーブルの選択
    9
    「データ抽出&データロード用の加工処理開発」
    「サーバー管理含めた、各種保守・運用」
    全て不要です

    View Slide

  10. - 対応サービスごとに、スキーマのER図が用意されています
    (例)Shopify ※公式Docより
    Fivetranにより構築されるスキーマ 10

    View Slide

  11. データエンジニアを助けてくれる

    Fivetranの仕様・機能


    View Slide

  12. データエンジニアを助けてくれるFivetranの仕様・機能
    - データ型の自動割当・自動変更 ※デモ予定
    - カラムの追加・削除の自動検知 ※デモ予定
    - レコード削除の自動検知(対応するデータソースのみ)
    - レコード変更履歴の自動保持
    12

    View Slide

  13. データ型の自動割当・自動変更とは
    - Fivetranは対象のデータソースで
    データ型が明示的に定められていない場合、
    データの値を見てデータ型を割り当てる
    - 例:あるカラムで以下の値を確認
    - 「9.90」➟DOUBLEと推測
    - 「9」➟INTと推測
    - どちらにも対応できる「DOUBLE」を割当
    13
    Fivetranによる
    データ型の割当時の上下関係

    View Slide

  14. カラムの追加・削除の自動検知とは
    - データソース側でカラムの追加があった場合
    - 対象のカラムを自動で追加してくれる
    - データソース側でカラムの削除があった場合
    - 対象のカラムは基本そのまま残すが、削除された時から
    対象のカラムのレコードにはNULLが入る
    14

    View Slide

  15. デモ
    - Fivetranを介してスプレッドシートのデータをSnowflakeに同期する
    - 2回目の同期前に、明らかにデータ型が異なる値を入れたり、新しいカラ
    ムが追加された場合どうなるか
    - 1回目
    - 2回目
    15

    View Slide

  16. レコード削除の自動検知(対応するデータソースのみ)
    - Capture Deletes ※対応しているデータソースのみ
    - 「_fivetran_deleted」カラムをテーブルに追加し、データソース側で
    削除されたレコードは「_fivetran_deleted = TRUE」となる
    16

    View Slide

  17. レコード変更履歴の自動保持
    - History Mode ※コストが通常よりもかかるため注意
    - 対象のテーブルに変更があった場合、レコードの有効期間を
    1レコードずつ保持し、変更履歴をすべて保持できる
    - 「_fivetran_start」:対象レコードの有効開始日時
    - 「_fivetran_end」:対象レコードの有効終了日時
    - 「_fivetran_active」:対象のレコードが現在有効かどうかのフラグ
    17

    View Slide

  18. Snowflake


    View Slide

  19. Snowflakeとは
    - クラウドのメリットを最大限活かしたデータウェアハウス
    - 強み
    - コンピューティングとストレージの分離
    - クローン・タイムトラベルなどの独自機能
    - マルチクラウド対応
    - 外部へのデータシェアリング
    19

    View Slide

  20. コンピューティングとストレージの分離
    - 操作対象のデータ1つに対して、
    複数の独立したコンピュートリソース(ウェアハウス)を確保できる
    - 何が良いのか?
    - リソースの取り合いがなく、
    リソース管理に悩むことがない
    - 用途ごとに最適なスペックを
    選定できる柔軟なアーキテクチャ
    - オートスケールも可能
    機械学習(XL×1)
    BIツール
    (M×4)
    データ加工
    (L×2)
    対象のストレージは1つ
    処理を行うウェアハウスは
    用途別に分けられる
    20

    View Slide

  21. クローン・タイムトラベルなどの独自機能
    - クローン:既存のデータをコピーすることなく、複製可能
    - クローン先とクローン元それぞれへ違う更新処理が可能
    - タイムトラベル:最大90日間、過去のデータに遡れる
    - なぜクローンやタイムトラベルが容易に出来る?
    - Snowflakeは差分が発生する度に、不変なデータを新規作成するから(下
    図:超ざっくりマイクロパーティション紹介から引用)
    21

    View Slide

  22. マルチクラウド対応
    - AWS・GoogleCloud・Azure、どのプラットフォーム上でも
    Snowflakeは動作可能
    - メリット
    - S3・GCS・Blob Storage、どこからでも容易にロード可能
    - プラットフォーム間のレプリケーションも容易に可能
    22
    M
    anagem
    ent
    Optimization
    Transactions Security
    M
    etadata
    Data Sharing

    View Slide

  23. 外部へのデータシェアリング
    - データの移動・コピー・ETL処理を不要で、外部のユーザーに対して最新の
    データを共有することができる
    - 共有先がSnowflakeアカウントを所持していなくても、
    リーダーアカウントを設定することで共有可能
    23

    View Slide

  24. データエンジニアを助けてくれる

    Snowflakeの仕様・機能


    View Slide

  25. データエンジニアを助けてくれるSnowflakeの仕様・機能
    - 基本的にデータロードをした順番で、
    勝手にクラスタリングしてくれる ※デモ予定
    - コンピュートリソースの管理不要なジョブ管理機能
    25

    View Slide

  26. データロードをした順番で勝手にクラスタリング?
    - Snowflakeで単純にデータロードした時の仕様
    - データロード日時と比例する値を持つカラムで絞り込めば、
    自然とスキャン対象のマイクロパーティションが減る
    26
    starttime stoptime station
    2013-01-01 2013-04-01 aaa
    2013-04-01 2013-04-01 aaa
    2013-05-01 2013-05-02 ccc
    2013-07-01 2013-07-02 aaa
    2013-08-01 2013-08-02 kkk
    ロード対象のファイル
    マイクロパーティションその1
    マイクロパーティションその2
    マイクロパーティションその3
    ロード後のテーブル
    select * from trips where starttime = '2013-01-01'; ➟ 「その1」のみスキャン 
    select * from trips where stoptime = '2013-04-01'; ➟ 「その1」「その2」のみスキャン
    ※複数ファイルから1つのマイクロパーティション生成、
     1ファイルから複数のマイクロパーティション生成、
     といったことも実際には起こります

    View Slide

  27. なぜこれがデータエンジニアの助けと言えるの?
    - BigQueryの場合、ユーザー側でパーティショニングの設定がほぼ必須、かつ
    パーティショニングに用いたカラムで絞り込まないと、
    スキャン量が削減できない
    - BigQueryはクラスタリングもあるが、
    ユーザー側での設定が必須
    27
    starttime stoptime station
    2013-01-01 2013-04-01 aaa
    2013-04-01 2013-04-01 aaa
    2013-05-01 2013-05-02 ccc
    2013-07-01 2013-07-02 aaa
    「starttime」でパーティションした
    BigQueryテーブル
    パーティションその1
    パーティションその2
    パーティションその3
    パーティションその4
    select * from trips where starttime = '2013-01-01'; ➟ 「その1」のみスキャン  
    select * from trips where stoptime = '2013-04-01'; ➟ すべてのパーティションをスキャン

    View Slide

  28. デモ
    - 「Citi Bike」の利用状況データ6100万行を単純にロードしたテーブルを用いて、
    絞り込むカラムに応じてスキャン量がどう変化するか
    - 下図は実際にロードするファイル名の一例、
    「サービス利用開始日時の年月日」ごとにまとまっている
    - 検証内容:以下のカラムに対し絞り込みを行い、スキャン量を確認
    - starttime:Citi Bikeの利用開始日時
    - stoptime:Citi Bikeの利用終了日時
    28

    View Slide

  29. コンピュートリソースの管理不要なジョブ管理機能
    - Serverless Taskを用いた「タスク」機能
    - 定期的にCREATE TABLE AS SELECTなどのSQLを実行できる機能
    - Serverless Taskならばウェアハウスの管理も不要
    - Airflowなどのワークフロー管理のツールを用意せずとも、
    Snowflake上だけで下図のようなワークフローを構築できる
    29
    Aテーブル
    データロード
    A’テーブル
    最低限の加工
    Bテーブル
    データロード
    B’テーブル
    最低限の加工
    A’とB'をJOINした
    データマート作成

    View Slide

  30. まとめ


    View Slide

  31. Fivetran × Snowflakeの事例
    Fivetran × Snowflakeは、事例も多い組み合わせです
    最近では国内のデータエンジニアも注目しています
    31
    引用元:
    [事例] Snowflake社の成長の秘密:Fivetranで業
    界トップクラスのデータ分析基盤を構築
    引用元:
    [レポート]みんなの考えた最強のデータアーキテクチャ #datatechjp

    View Slide

  32. まとめ
    - Fivetran
    - ユーザーが行うのは「接続設定だけ」でよい
    - Snowflake
    - 「まずはデータを入れてみよう」から気軽に試して、
    十分な性能が出ることが多い
    - Fivetran × Snowflake
    - データの準備を爆速で行い、本来すべき「データ活用」に専
    念できる組み合わせ
    32

    View Slide

  33. ご清聴ありがとうございました


    View Slide