Share
Embed
Transcript
45 slides
-
Overview of The Modern Data Stack / モダンデータスタック概論 2022-06-08 Data
Engineering Study #14 Satoshi Hirose -
• 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 -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
• 「データ活用・管理領域における現代 の環境に合うような設計の新しい サービス・ソフトウェア群」 • システムの進化、ニーズの急増、 データ活用領域の拡大によるトレンド の変化を指すバズワード The Modern
Data Stack? https://twitter.com/valentinumbach/status/1418242294952644611 -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
データ基盤のクラウド化とサービス化 • 開発・運用コストが激減 ◦ not Big Data ユーザーへの広がり、様々なニー ズに対応できるよう進化 ◦
データ活用・管理についての方法論の議論が進 み、特定ドメインに特化した SaaSが増える • スケーラブル ◦ ETL -> ELT ▪ データに近いところで一括で処理をしま しょう • データエンジニアの役割の変化 ◦ データ分析用コードの開発・運用のニーズ ↑ ▪ (new role!) Analytics Engineer https://www.getdbt.com/what-is-analytics-engineering/ -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
• データを使いやすいように変換する処理 (ELTのT) • 実装の変化 ◦ MapReduce, Spark ▪ コードを書ける人は少ない
◦ SQL (Hive, SparkSQL, Presto etc…) ▪ 比較的書ける人が多い ▪ クラウドデータウェアハウスが普及してきた • 基礎的な変換はSQL、特別な実装が必要な場合は別でコードを書く ◦ 最近はSQLでも UDF (User Defined Function) が自由に作れたり、ML が出来るようになってきて いる ▪ e.g. BigQuery ML データトランスフォーメーション -
データトランスフォーメーション • SQLによるデータ変換の記述と管理 ◦ 宣言的なSQLはデータ定義を記述しやすい ◦ CI/CDも容易 • dbt の登場と発展
◦ SQLによるデータ変換のためのフレームワーク ▪ 1. テンプレート化された SQL を実行可能な SQL に変換する compiler ▪ 2. SQLを実行しデータ変換をする runner ◦ OSS、プラガブル、データリネージやドキュメン テーションもサポート ▪ エコシステムを形作っている https://docs.getdbt.com/tutorial/learning-more/using-jinja -
データ記述言語 • テンプレート化されたSQLを 使ったデータ定義方法は今の ところ上手くいっているが、ウェ ブサイト開発における HTML+PHPの先の展開みた いなものがあるかもしれない • Malloy
◦ LookML の開発者による実験的 に開発されたデータ記述言語 • 将来的にトランスパイラ的なも のが発展する余地がある...? -
• 対象のデータの種類を限定した、データの計算・取り扱いのためのフレームワーク ・サービスが生まれ、特定処理の抽象化が模索されている ◦ メトリックフレームワーク ◦ フィーチャーストア ◦ カスタマーデータプラットフォーム( CDP)
◦ etc… ドメイン特化のデータトランスフォーメーション -
• メトリック ◦ 対象の属性や状態を数値化したもの • これまではメトリックの定義・計算は変換レイ ヤーや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 -
メトリックフレームワーク • dbt も v1.0.0 から実験的にメトリック定 義機能をサポート ◦ API Layer
はない • dbt による YAML を使ったメトリックの定 義例 ◦ メトリックを定義すると、 lineage に含めたり、 その upstream を一度に build できたり、 downstream で利用できたりする ◦ トランスフォームレイヤーが担うべきかどうか https://docs.getdbt.com/docs/building-a-dbt-project/metrics -
• Metriql ◦ バックエンドにdbtを採用している • Weld ◦ APIではなく各種サービスとのインテグレーショ ンをサポート •
Metlo ◦ ストリームデータを使った計算をサポート • Cube ◦ Headless BI、モデル定義やキャッシュ • Supergrain ◦ Headless BI を謳ってローンチしていたが customer engagement platform に pivot した メトリックフレームワーク https://metriql.com/ https://cube.dev/docs/introduction -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
データインテグレーション • データ活用領域が増え企業が使う 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 -
Reverse ETL -> Data Activation? https://hightouch.io/blog/the-data-activation-company/ • Reverse ETLを謳っていたHightouchは Data
Activation Companyと自身をリブ ランディングした ◦ Reverse ETL はただのデータの複製を想起さ せてしまう ◦ データを使って、意志決定のためのデータ分 析だけでなく、アクションを取ることにより フォーカス -
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/ -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
メタデータカタログ / データディスカバリー • データ活用が進むと、データガバナンスが問題になってくる • メタデータカタログ ◦ 分散したデータのメタデータを一元的に管理し、データの発見・理解を容易にするツール •
この分野の製品は古くから存在するが、エンタープライズ向けであり、使い勝手がいまいち のものも多かった ◦ 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 -
メタデータカタログ / データディスカバリー • OpenMetadata ◦ OSS ◦ 機能追加の速度が凄い •
機能 ◦ 検索(キーワード検索、関連性タグ) ◦ アクティビティフィード ◦ Webhook によるイベント通知 ◦ OwnerやTierの管理 ◦ Role Based Access Control (RBAC) ◦ データリネージ ◦ dbt インテグレーション ◦ データプロファイル • デモサイトもあるのでメタデータカタログっ てものがどんなものか触ってみたいとき には見てみると良いかも -
メタデータカタログ / データディスカバリー • 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 -
データオブザーバビリティ / クオリティモニタリング 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) -
データオブザーバビリティ / クオリティモニタリング 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 -
• 世界的にデータを取り扱う際のルール や規制が増え、組織的にガバナンス強 化に取り組む場面が増えている (GDPR, CCPA etc…) • Immuta, Satori
◦ データアクセスコントロールプラットフォー ム ◦ 属性ベースアクセスコントロール、 Dynamic Data Masking、データクラス管 理、モニタリング https://documentation.immuta.com/SaaS/prologue/data-flow/ データアクセスコントロール / プライバシーデータコントロール -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
• 様々なソフトウェア・サービスの登場に より、BIツールに求められる役割も変化 している ◦ e.g. 今後LookMLがTableauから使えるよう になることが発表された ▪ “The
Universal Semantic Layer. More Important than Ever.” BI https://benn.substack.com/p/is-bi-dead -
• クラウドベースでインテグレーショ ン、アクティベーション、コラボレー ションを重視したBIが増えている • Lightdash ◦ OSS、dbt をバックエンドに据えた BI
BI https://www.lightdash.com/ -
• Hyperquery, Hex ◦ ノートブック型BI ◦ SQLとその実行結果をドキュメントとして 共有できる • Sigma,
Actiondesk ◦ スプレッドシート型BI ◦ インテグレーションの豊富なデータ探索 しやすい BI https://www.hyperquery.ai/ https://www.sigmacomputing.com/product/features/ -
• データを扱うアプリケーションのため の実装に特化したツール群 ◦ データを利用したアプリケーション実装 のニーズが増えてきた ◦ データの視覚化、UIコンポーネント、 ユーザー入力などの ready-madeな要
素を提供し、実装を簡素化 • Streamlit ◦ Python を使ってインタラクティブなアプ リケーションを作れる ◦ Snowflake に買収された • Plotly • TopCoat ◦ Snyk に買収されクローズ データアプリケーション https://share.streamlit.io/streamlit/example-app-ab-testing/main -
• The Modern Data Stack? • トピック詳細 ◦ データ基盤のクラウド化とサービス化 ◦
データトランスフォーメーション ◦ データインテグレーション ◦ データガバナンス ◦ BI・データアプリケーション • さいごに Agenda -
• トレンドを追いかけるのは楽しい ◦ 自分の思いつかないアイディアが色々存在する ◦ そのツールが解決する課題とそれをどう解決しているかに注目すること • 新しいツールを使えばそれで良いわけではない ◦ 解決したい課題に対して適切なツールを適切なタイミングで適切に導入する
▪ どうやって人のオペレーションに組み込むかは腕の見せ所 ▪ 導入や自社のレガシーをリプレイスするにはコストがかかる ▪ 生まれるビジネス上の価値を意識する さいごに