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

dbt×Fivetran×SnowflakeによるModern Data Stackのご紹介

Sagara
June 09, 2022

dbt×Fivetran×SnowflakeによるModern Data Stackのご紹介

dbt×Fivetran×SnowflakeによるModern Data Stack~データ活用までの準備を楽々に~
https://dev.classmethod.jp/news/20220609-dbt-webinar/

Sagara

June 09, 2022
Tweet

More Decks by Sagara

Other Decks in Technology

Transcript

  1. dbt×Fivetran×SnowflakeによるModern
    Data Stackのご紹介

    2022/06/09

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

    View Slide

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

    View Slide

  3. dbt×Fivetran×SnowflakeによるModern
    Data Stackのご紹介


    View Slide

  4. 4
    Modern Data Stackとは
    ・クラウドネイティブなサービスで構成されたデータ基盤
    ・データ分析を始めるまでのタイムラグを短縮できる

    View Slide

  5. dbt×Fivetran×SnowflakeによるModern
    Data Stackのご紹介


    View Slide

  6. 6
    クラスメソッドのModern Data Stack
    今日お話すること
    ・Fivetran、Snowflakeの概要
    ・dbtと、FivetranやSnowflakeを組み合わせたときの強み

    View Slide

  7. Fivetran


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. Fivetranがサポートしているデータソース
    https://fivetran.com/connectors 

    We continually add new connectors!
    Visit our directory page for an up to date list!
    Sales Databases
    Events
    Files Functions
    ● Microsoft Dynamics 365
    ● Salesforce
    ● Shopify
    ● PrestaShop
    ● Pipedrive
    ● Spree Commerce
    ● OsCommerce
    ● PrestaShop
    ● Microsoft Dynamics NAV
    ● Oracle EBS
    ● WooCommerce
    ● Loaded Commerce
    ● DynamoDB
    ● MariaDB
    ● MongoDB
    ● MySQL
    ● Oracle
    ● PostgreSQL
    ● SQL Server
    ● Segment
    ● Snowplow
    ● Webhooks
    ● Airtable
    ● Amazon Cloudfront
    ● Amazon Kinesis
    ● Amazon S3
    ● Azure Blob Storage
    ● Box
    ● Browser Upload
    ● Dropbox
    ● Email
    ● FTP
    ● FTPS
    ● Google Cloud Storage
    ● Google Drive
    ● Google Sheets
    ● SFTP
    ● AWS Lambda
    ● Azure Functions
    ● Google Cloud Functions
    Warehouses
    ● Azure Data Explorer
    ● Azure SQL
    ● BigQuery
    ● Databricks
    ● MySQL
    ● Panoly
    ● Periscope
    ● PostgreSQL
    ● Redshift
    ● Snowflake
    ● SQL Server
    Support
    ● Comm100
    ● Freshdesk
    ● Front
    ● Help Scout
    ● Intercom
    ● Kustomer
    ● UserVoice
    ● Zendesk
    ● Zendesk Chat
    Marketing
    ● Adobe Analytics
    ● AdRoll
    ● Apple Search Ads
    ● Appsflyer
    Finance
    ● Anaplan
    ● Braintree
    ● Coupa
    ● Lightspeed
    ● NetSuite SuiteAnalytics
    ● QuickBooks Online
    ● Recharge
    ● Recurly
    ● SAP ERP
    ● Square
    ● Stripe
    ● Xero
    ● Zuora
    ● Microsoft Dynamics Suite
    ● Sage Intacct
    ● SAP Concur
    Human
    Resources
    ● Greenhouse
    ● Lever
    ● Workday
    Productivity
    ● Asana
    ● Mavenlink
    ● ServiceNow
    ● Height
    ● CSV Uploader
    ● Airtable
    ● Bing Ads
    ● Braze
    ● Campaign Manager
    ● Criteo
    ● Facebook
    ● Google Ads
    ● Google Analytics
    ● Google Play
    ● Google Search Console
    ● HubSpot
    ● Iterable
    ● Itunes Connect
    ● Klaviyo
    ● LinkedIn Ads
    ● MailChimp
    ● Mandrill
    ● Marin Software
    ● Marketo
    ● Oracle Eloqua
    ● Outbrain
    ● Pardot
    ● Pinterest Ads
    ● Sailthru
    ● Salesforce Marketing Cloud
    ● SendGrid
    ● Snapchat Ads
    ● Taboola
    ● Twitter Ads
    ● Yahoo Gemini
    ● YouTube
    14

    View Slide

  15. dbt × Fivetran


    View Slide

  16. dbt × Fivetranの強み
    - dbt Transformation
    - Fivetran用のdbt package
    16

    View Slide

  17. dbt Transformationとは
    - Fivetranのロード処理が完了したことをトリガーに、
    dbtのデータ変換処理(model)を実行できる機能
    - 何が良いのか?
    - Airflow等のワークフロー管理ツール不要で、
    Fivetran➟dbtを簡単につなげる事ができる
    - dbtを使うため、使用する変換処理は
    バージョン管理可能
    - ※2022/6/9時点、BETA機能です
    17

    View Slide

  18. Fivetran用のdbt packageとは
    - Fivetranにより構築されたスキーマに合わせた、
    すぐ実務で使えるデータマートを生成するmodelの集まり
    - ※「dbt package」は、一般的なプログラミング言語でいう
      ライブラリのdbt版
    - 例:Salesforce用のdbt package
    - チーム/メンバー/商談ごとに、各種金額や商談に関する集計値を
    出してくれるmodelがまとまった「salesforce」
    - Fivetranでロードしたテーブルやカラムに、source定義として、
    description、testを自動で設定してくれる「salesforce_source」
    18

    View Slide

  19. Fivetran用のdbt package一覧 ※2022/6/9時点
    https://hub.getdbt.com/ 

    19

    View Slide

  20. dbt × Fivetranの良さ 20
    データソース DWH BI等
    「dbt Transformation」と「Fivetran用のdbt package」により…
    Fivetranロード層 データマート層
    開発作業不要で、実務に使えるデータがすぐ出来ます

    View Slide

  21. dbt × Fivetran 参考リンク
    DevelopersIOブログ Fivetran社のYouTube
    21

    View Slide

  22. Snowflake


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. dbt × Snowflake


    View Slide

  29. dbt × Snowflakeの強み
    - Snowflake用のdbt package
    - dbtからSnowflakeの各種設定変更
    29

    View Slide

  30. Snowflake用のdbt package
    - dbt_dataquality
    - snowflake_env_setup
    - dbt_snow_mask
    - dbt_snow_utils
    - snowflake_spend
    - snowflake_utils
    - dbt_constraints
    など、Snowflakeは他DWHと比べてdbt packageが非常に多い
    ※dbtvault等、Snowflakeの対応が最も早いpackageもあります
    30

    View Slide

  31. Snowflake用のdbt package:dbt_snow_maskについて
    - dbt_snow_mask
    - 列レベルのセキュリティをdbtから設定出来るpackage
    - 参考記事:https://dev.classmethod.jp/articles/dbt-package-dbt_snow_mask/
    31
    ポリシーを満たす場合
    ポリシーを満たさない場合
    packageを活用した、マスキングポリシーの定義

    View Slide

  32. dbtからSnowflakeの各種設定変更
    - SnowflakeはSQLでほぼ全ての操作を完結出来るDWH
    そのため、dbt側からSnowflakeの設定を変更することが可能
    - 例:SQLで実施できるSnowflakeの設定
    - コンピュートリソース(ウェアハウス)のスペック変更
    - タイムトラベル
    - クローン
    - データシェアリング
    - 行レベル・列レベルのセキュリティ
    32

    View Slide

  33. - フォルダやmodelごとに、使用するウェアハウスを変更
    dbtからSnowflakeの各種設定変更:実例 33
    例その1:
     フォルダごとに、使用する
     ウェアハウスを変更する
    例その2:
     特定のmodelの実行時のみ、
     ウェアハウスのサイズを変更する

    View Slide

  34. dbt × Snowflakeの強み まとめ 34
    互いの良さを活かし、人的リソースの負荷を減らした
    DWHの運用・開発が出来る組み合わせです
    ・すぐにスペック変更出来る
     柔軟なコンピュートリソース
    ・タイムトラベル、クローン、
     データシェアリング等の機能
    ・ほぼ全ての操作をSQLで可能
    ・クエリのバージョン管理、
     開発環境&本番環境の分離
    ・データリネージ、テスト、
     ドキュメント生成などの機能
    ・Snowflake用のpackage

    View Slide

  35. まとめ


    View Slide

  36. dbt × Fivetran × Snowflakeの事例
    dbt × Fivetran × Snowflakeは、海外事例も多い組み合わせです
    36
    画像引用元:
    Snowflake + Fivetran + dbt: Turn Your Marketing
    Data Silos into Marketing Insights
    画像引用元:
    The 80/20 rule in data (and why it doesn’t have
    to be that way)
    画像引用元:
    GitLab:Data Team Platform

    View Slide

  37. dbt × Fivetran × Snowflakeの強み
    - dbt × Fivetran
    - Fivetran➟dbtの連携はGUIベースで簡単に実現可能
    - Fivetran用のdbt packageがあれば、開発作業不要で
    データのロード~実務に使えるデータ作成がすぐに可能
    - dbt × Snowflake
    - Snowflake用のdbt packageも多く提供されている
    - dbtからSnowflake側の様々な設定が可能
    37
    開発や運用の負荷を減らし、
    本来すべき「データ活用」に専念できる構成です!

    View Slide

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


    View Slide