データ基盤を支える技術
by
chanyou0311
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
データ基盤を⽀える技術 chanyou
Slide 2
Slide 2 text
Yu Nakamura - chanyou ‧ DRE ← Data Engineer ← SWE ‧ X: @chanyou0311 ‧ GCP BigQuery ‧ Azure Databricks ‧ おうち Kubernetes クラスタ
Slide 3
Slide 3 text
ゴール ‧データ基盤の構成要素がわかる ‧データ基盤を構成する技術スタックがイメージできる なんかデータ分析基盤作れそう!作ってみたい 💪
Slide 4
Slide 4 text
注意 ‧AWS と Azure 固有のサービスは触れられてません ‧GCP に類似したサービスはあるはず… ‧だいたい Databricks で対応できます
Slide 5
Slide 5 text
Databricks
Slide 6
Slide 6 text
データ基盤の構成要素
Slide 7
Slide 7 text
データ基盤とは?
Slide 8
Slide 8 text
データを保存‧加⼯‧活⽤する システム群のこと
Slide 9
Slide 9 text
クラウド時代のデータ基盤は どうあるべき?
Slide 10
Slide 10 text
“モダンデータスタック”
Slide 11
Slide 11 text
https://snowplow.io/blog/modern-data-stack/
Slide 12
Slide 12 text
クラウドサービスの組み合わせで データ基盤が作れてしまう
Slide 13
Slide 13 text
データ基盤の主な構成要素を 紐解いていく
Slide 14
Slide 14 text
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
Slide 15
Slide 15 text
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
Slide 16
Slide 16 text
ストレージ
Slide 17
Slide 17 text
ストレージ ‧データウェアハウス ‧データレイク ‧データレイクハウス
Slide 18
Slide 18 text
データウェアハウス ‧構造データをサクッと取り出せるストレージ ‧BigQuery, Snowflake など
Slide 19
Slide 19 text
データレイク ‧構造‧⾮構造どちらも保存できるストレージ ‧S3 や GCS など ‧画像や⾳声を使ってMLモデル作りたい、に応える ‧構造データはデータウェアハウスに転送する
Slide 20
Slide 20 text
データレイクハウス ‧データレイクにデータウェアハウスを内包する思想 ‧構造データとして Delta Lake などを採⽤ ‧ACID トランザクションの担保 ‧実体は列指向の Parquet ファイル ‧マネージドサービスとして Databricks Unity Catalog
Slide 21
Slide 21 text
ストレージ ‧データウェアハウス ‧データレイク ‧データレイクハウス
Slide 22
Slide 22 text
ELT
Slide 23
Slide 23 text
ELT ‧Extract ‧Load ‧Transform
Slide 24
Slide 24 text
ELT vs ETL ‧ELT: 外部データをそのままストレージにロードして後から変換する ‧ETL: 外部データを変換してからストレージにロードする 最近は ELT が主流 ストレージコストが安価、後から変換をやり直せるため
Slide 25
Slide 25 text
ETL 全部できるもの ‧GCP Dataflow / Apache Beam ‧Databricks Delta Live Tables ‧trocco / Embulk / Fluentd ‧Jupyter Notebook / Spark ‧お⼿製スクリプトと任意の実⾏環境
Slide 26
Slide 26 text
Extract と Load 特化 ‧Fivetran ‧Airbyte Cloud / Airbyte ‧dlt ‧trocco / Embulk / Fluentd 多数のコネクタを持ち合わせている 接続したいサービスの token を渡すだけで連携できる 例: S3 に保存された⽣ログをそのまま BigQuery に転送
Slide 27
Slide 27 text
Fivetran が⼀強(豊富な連携先、安定性) https://classmethod.jp/partner/fivetran/
Slide 28
Slide 28 text
Transform 特化 ‧dbt Cloud / dbt Core ‧GCP Dataform ‧Databricks Delta Live Tables ストレージにロード済みのデータを変換する SQL ベースで冪等に処理できるものが好まれる
Slide 29
Slide 29 text
dbt がデファクトスタンダード的ポジション ‧token 設定して SQL ファイル書いて実⾏するだけ ‧結果がテーブルとして書き込まれる ‧別の SQL ファイルの結果を利⽤して SQL ファイルを書ける ‧依存関係を解決して⾃動で適切な順序でテーブルを⽣成してくれる ‧ストレージや実⾏環境にロックインされない ‧dbt は SQL のコンパイルを⾏うのがメイン ‧実際の変換処理はストレージ標準の計算リソースを利⽤する
Slide 30
Slide 30 text
dbt がデファクトスタンダード的ポジション ‧データエンジニアリングに SWE の⽂化を持ち込める ‧データテスト、単体テスト、ドキュメンテーション ‧オープンソースでプラグイン開発が容易 ‧Web Framework のプラグインのように dbt ライブラリが豊富 ‧クラウド ↔ セルフホストを⾏き来できる ‧最初は dbt Cloud に頼る ‧コストが気になったら GitHub Actions で dbt Core に切替とか
Slide 31
Slide 31 text
dbt integration なサービスが豊富 ‧Fivetran, Airbyte, troccoなど Extruct / Load に特化したサービスで dbt に対応 ‧Databricks Jobs などのワークフローのステップに dbt が使える https://prtimes.jp/main/html/rd/p/000000046.000039164.html
Slide 32
Slide 32 text
その他の要素
Slide 33
Slide 33 text
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
Slide 34
Slide 34 text
データモデリング ‧ファクトテーブル、ディメンションテーブルの実装 ‧分析のための集約テーブルの実装 Transform の作り込み Notebook ベースでも実装可能だが、保守性が低い dbt ⼀択な印象
Slide 35
Slide 35 text
カタログ ‧テーブルやカラムのメタデータ管理ツール ‧分析時に⾏や列の意味がわからないとしんどい ‧GCP Data Catalog ‧BigQuery テーブル詳細画⾯ ‧dbt docs
Slide 36
Slide 36 text
データ品質保証 ‧これだけで1テーマになってしまう ‧データの品質とはなにか? ‧完全性、⼀意性、適時性、可⽤性… ‧dbt test + elementary ‧レコードに重複が発⽣したらアラートを出す ‧存在しない FK がデータに含まれていたら(ry ‧データが反映されるべき時刻に挿⼊されてなかったら(ry
Slide 37
Slide 37 text
MLOps / BI ‧MLOps ‧実験環境、モデルレジストリ、モデルのサービング ‧GCP Vertex AI ‧Databricks MLFlow ‧BI ‧Tableau / PowerBI / Looker ‧Superset / Metabase
Slide 38
Slide 38 text
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
Slide 39
Slide 39 text
データ基盤の構成要素のまとめ
Slide 40
Slide 40 text
マネージド サービス セルフ ホスト Storage Extract Load Transform DataModeling Catalog 品質 MLOps BI dbt BigQuery DuckDB Unity Catalog Airbyte Fivetran Dataform Vertex AI Superset Metabas e Looker Tableau Snowflak e Data Catalog trocco Embulk Delta Live Tables Unity Catalog Dataflow BigQuery MLFlow Dashboard
Slide 41
Slide 41 text
まとめ ‧パブリッククラウド以外の選択肢も豊富 ‧OSS のマネージドサービスが近年増えている ‧パブリッククラウドにロックインされず健全 ‧選択肢がありすぎて、技術選定が難しい ‧ストレージと Fivetran と dbt があればなんとかなる
Slide 42
Slide 42 text
⽂献 ‧データマネジメント知識体系ガイド 第⼆版 ‧ビッグデータを⽀える技術 ‧データエンジニアリングの基礎