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

Overview of The Modern Data Stack / モダンデータスタック概論

Overview of The Modern Data Stack / モダンデータスタック概論

satoshihirose

June 07, 2022
Tweet

More Decks by satoshihirose

Other Decks in Programming

Transcript

  1. • Satoshi Hirose ◦ https://twitter.com/satoshihirose ◦ https://meety.net/matches/UDPxozaylQEa ◦ https://menta.work/user/48511 •

    Customer Reliability Engineer @ Treasure Data ◦ prev: Data Engineer @ SmartNews ◦ prev: Technical Support Engineer @ AWS Japan ◦ prev: Backend Engineer @ a few startups • ブログ記事 ◦ モダンデータスタックというトレンドについて ▪ https://satoshihirose.hateblo.jp/entry/2021/11/20/160548 Self Introduction
  2. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  3. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  4. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  5. データ基盤のクラウド化とサービス化 • 開発・運用コストが激減 ◦ not Big Data ユーザーへの広がり、様々なニー ズに対応できるよう進化 ◦

    データ活用・管理についての方法論の議論が進 み、特定ドメインに特化した SaaSが増える • スケーラブル ◦ ETL -> ELT ▪ データに近いところで一括で処理をしま しょう • データエンジニアの役割の変化 ◦ データ分析用コードの開発・運用のニーズ ↑ ▪ (new role!) Analytics Engineer https://www.getdbt.com/what-is-analytics-engineering/
  6. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  7. • データを使いやすいように変換する処理 (ELTのT) • 実装の変化 ◦ MapReduce, Spark ▪ コードを書ける人は少ない

    ◦ SQL (Hive, SparkSQL, Presto etc…) ▪ 比較的書ける人が多い ▪ クラウドデータウェアハウスが普及してきた • 基礎的な変換はSQL、特別な実装が必要な場合は別でコードを書く ◦ 最近はSQLでも UDF (User Defined Function) が自由に作れたり、ML が出来るようになってきて いる ▪ e.g. BigQuery ML データトランスフォーメーション
  8. データトランスフォーメーション • SQLによるデータ変換の記述と管理 ◦ 宣言的なSQLはデータ定義を記述しやすい ◦ CI/CDも容易 • dbt の登場と発展

    ◦ SQLによるデータ変換のためのフレームワーク ▪ 1. テンプレート化された SQL を実行可能な SQL に変換する compiler ▪ 2. SQLを実行しデータ変換をする runner ◦ OSS、プラガブル、データリネージやドキュメン テーションもサポート ▪ エコシステムを形作っている https://docs.getdbt.com/tutorial/learning-more/using-jinja
  9. • メトリック ◦ 対象の属性や状態を数値化したもの • これまではメトリックの定義・計算は変換レイ ヤーやBIなど複数の場所に分散していて重複 管理されており問題の元だった ◦ BI上に実装すると、BIを超えて再利用できない

    ◦ データマートとして用意すると集計単位をあらかじめ 決定して計算しておかないといけない • そこでメトリックを集中管理し API 経由などで提 供し再利用しましょうというもの ◦ Headless BI や Metric Store というキーワードも同 様な考え • AirBnb の社内システム Minerva ◦ スピンアウトしたスタートアップ ▪ Transform: https://transform.co/ ▪ OSS: MetricFlow メトリックフレームワーク https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70 https://benn.substack.com/p/metrics-layer
  10. メトリックフレームワーク • dbt も v1.0.0 から実験的にメトリック定 義機能をサポート ◦ API Layer

    はない • dbt による YAML を使ったメトリックの定 義例 ◦ メトリックを定義すると、 lineage に含めたり、 その upstream を一度に build できたり、 downstream で利用できたりする ◦ トランスフォームレイヤーが担うべきかどうか https://docs.getdbt.com/docs/building-a-dbt-project/metrics
  11. • Metriql ◦ バックエンドにdbtを採用している • Weld ◦ APIではなく各種サービスとのインテグレーショ ンをサポート •

    Metlo ◦ ストリームデータを使った計算をサポート • Cube ◦ Headless BI、モデル定義やキャッシュ • Supergrain ◦ Headless BI を謳ってローンチしていたが customer engagement platform に pivot した メトリックフレームワーク https://metriql.com/ https://cube.dev/docs/introduction
  12. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  13. データインテグレーション • データ活用領域が増え企業が使う SaaSの数が増えるなどにつれ、ETL 処理の実装と管理が大変に • ETL サービス ◦ データソースからDWHへのデータのロー

    ドと変換 ◦ e.g. Airbyte • Reverse ETL サービス ◦ DWHから各種 SaaS(データを活用する 先のサービス) へのデータのロード ◦ e.g. Hightouch https://medium.com/memory-leak/reverse-etl-a-primer-4e6694dcc7fb https://twitter.com/mengxilu/status/1265786665898881024
  14. Reverse ETL -> Data Activation? https://hightouch.io/blog/the-data-activation-company/ • Reverse ETLを謳っていたHightouchは Data

    Activation Companyと自身をリブ ランディングした ◦ Reverse ETL はただのデータの複製を想起さ せてしまう ◦ データを使って、意志決定のためのデータ分 析だけでなく、アクションを取ることにより フォーカス
  15. Change Data Capture (CDC) • サービスで使われる RDB上のテーブル情報を分析 に使いたい ◦ e.g.

    登録ユーザー数のカウントを取りたい • ナイーブな方法 ◦ テーブルの全データ(もしくは差分だけ)を定期的に取得し履歴 テーブルをDWH上に作成する • CDC: 変更ログをストリーミングして構築する方法 ◦ リアルタイム ◦ すべての変更が追える • Meroxa ◦ マネージド CDC サービス ◦ 最近 OpenCDC という CDC 連携の標準化を進めようともし ている ▪ 現状は、変更ログを取得した後、そのログを各種アプ リケーションに反映させるためには何らかの実装が必 要 • Fivetran、Airbyte のようなETLサービスも一部 CDC をサポートし始めている https://engineering.mercari.com/blog/entry/20220420-5d89f9d9c7/
  16. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  17. メタデータカタログ / データディスカバリー • データ活用が進むと、データガバナンスが問題になってくる • メタデータカタログ ◦ 分散したデータのメタデータを一元的に管理し、データの発見・理解を容易にするツール •

    この分野の製品は古くから存在するが、エンタープライズ向けであり、使い勝手がいまいち のものも多かった ◦ A senior data leader at a large company called these data catalogs “expensive shelfware”, or software that sits on the shelf and never gets used. • スタートアップ各社は自社システムを作り運用する状況が生まれていた ◦ LinkedIn: DataHub ▪ スピンアウトサービス: Acryl Data ◦ Lyft: Amundsen ▪ スピンアウトサービス: Stemma ◦ WeWork: Marquez ◦ Airbnb: Dataportal ◦ Spotify: Lexikon ◦ Netflix: Metacat ◦ Uber: Databook
  18. メタデータカタログ / データディスカバリー • OpenMetadata ◦ OSS ◦ 機能追加の速度が凄い •

    機能 ◦ 検索(キーワード検索、関連性タグ) ◦ アクティビティフィード ◦ Webhook によるイベント通知 ◦ OwnerやTierの管理 ◦ Role Based Access Control (RBAC) ◦ データリネージ ◦ dbt インテグレーション ◦ データプロファイル • デモサイトもあるのでメタデータカタログっ てものがどんなものか触ってみたいとき には見てみると良いかも
  19. メタデータカタログ / データディスカバリー • Active Metadata? ◦ ガートナー社は、MagicQuadrant™ の Metadata

    Management Solutions 領域を 2020/11 に廃止し、代わ りに 2021/10 に Active Metadata Management と定義 し直した ▪ 従来のメタデータカタログシステムは外部とのイン テグレーションが十分なく、手動入力が必要で継続 的利用が大変だった( Not Active) ◦ 外部システムからメタデータを継続的に収集、更新 ◦ カタログとして機能するだけではなく、知見を提供しアク ションを促す ◦ 外部 API と連携し、シームレスな体験を提供する https://towardsdatascience.com/the-future-of-data-catalogs-868ffbe7354d
  20. データオブザーバビリティ / クオリティモニタリング https://www.getdbt.com/product/data-testing/ • データオブザーバビリティ ◦ データの状態が観測できる状態になってい ること ▪

    e.g. Freshness, Distribution, Volume, Schema, Lineage ◦ データの健全性を監視しながらデータ品質 を向上させデータのダウンタイムを削減する ◦ ref: Data Reliability • dbt ◦ YAML定義によるschema test ◦ SQLによるdata test ◦ data profiler ◦ run external library (e.g. great expectation)
  21. データオブザーバビリティ / クオリティモニタリング https://www.datafold.com/data-diff • Datafold ◦ Data Reliability platform

    ▪ Data Diff ▪ Column Level Lineage ▪ Data Monitoring (alert by SQL) ▪ Data Catalog ▪ Pull Request Impact Analysis • Monte Carlo ◦ Data Observability platform ▪ Anomaly Detection ▪ Column Level Lineage (Impact radius assessment) ▪ Data Cleanup Suggestions
  22. • 世界的にデータを取り扱う際のルール や規制が増え、組織的にガバナンス強 化に取り組む場面が増えている (GDPR, CCPA etc…) • Immuta, Satori

    ◦ データアクセスコントロールプラットフォー ム ◦ 属性ベースアクセスコントロール、 Dynamic Data Masking、データクラス管 理、モニタリング https://documentation.immuta.com/SaaS/prologue/data-flow/ データアクセスコントロール / プライバシーデータコントロール
  23. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda
  24. • Hyperquery, Hex ◦ ノートブック型BI ◦ SQLとその実行結果をドキュメントとして 共有できる • Sigma,

    Actiondesk ◦ スプレッドシート型BI ◦ インテグレーションの豊富なデータ探索 しやすい BI https://www.hyperquery.ai/ https://www.sigmacomputing.com/product/features/
  25. • データを扱うアプリケーションのため の実装に特化したツール群 ◦ データを利用したアプリケーション実装 のニーズが増えてきた ◦ データの視覚化、UIコンポーネント、 ユーザー入力などの ready-madeな要

    素を提供し、実装を簡素化 • Streamlit ◦ Python を使ってインタラクティブなアプ リケーションを作れる ◦ Snowflake に買収された • Plotly • TopCoat ◦ Snyk に買収されクローズ データアプリケーション https://share.streamlit.io/streamlit/example-app-ab-testing/main
  26. • The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦

    データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda