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

データ基盤を支える技術

 データ基盤を支える技術

主にクラウドの話してます - 広島 での登壇資料です。
https://omoni-cloud.connpass.com/event/315682/

chanyou0311

May 09, 2024
Tweet

More Decks by chanyou0311

Other Decks in Technology

Transcript

  1. Yu Nakamura - chanyou • DRE ← Data Engineer ←

    SWE • X: @chanyou0311 • GCP BigQuery • Azure Databricks • おうち Kubernetes クラスタ
  2. データ基盤の構成要素 • ストレージ • ELT • データモデリング • カタログ •

    データ品質保証 • MLOps / BI https://snowplow.io/blog/modern-data-stack/
  3. データ基盤の構成要素 • ストレージ • ELT • データモデリング • カタログ •

    データ品質保証 • MLOps / BI https://snowplow.io/blog/modern-data-stack/
  4. データレイクハウス • データレイクにデータウェアハウスを内包する思想 • 構造データとして Delta Lake などを採用 • ACID

    トランザクションの担保 • 実体は列指向の Parquet ファイル • マネージドサービスとして Databricks Unity Catalog
  5. ELT

  6. ETL 全部できるもの • GCP Dataflow / Apache Beam • Databricks

    Delta Live Tables • trocco / Embulk / Fluentd • Jupyter Notebook / Spark • お手製スクリプトと任意の実行環境
  7. Extract と Load 特化 • Fivetran • Airbyte Cloud /

    Airbyte • dlt • trocco / Embulk / Fluentd 多数のコネクタを持ち合わせている 接続したいサービスの token を渡すだけで連携できる 例: S3 に保存された生ログをそのまま BigQuery に転送
  8. Transform 特化 • dbt Cloud / dbt Core • GCP

    Dataform • Databricks Delta Live Tables ストレージにロード済みのデータを変換する SQL ベースで冪等に処理できるものが好まれる
  9. dbt がデファクトスタンダード的ポジション • token 設定して SQL ファイル書いて実行するだけ • 結果がテーブルとして書き込まれる •

    別の SQL ファイルの結果を利用して SQL ファイルを書ける • 依存関係を解決して自動で適切な順序でテーブルを生成してくれる • ストレージや実行環境にロックインされない • dbt は SQL のコンパイルを行うのがメイン • 実際の変換処理はストレージ標準の計算リソースを利用する
  10. dbt がデファクトスタンダード的ポジション • データエンジニアリングに SWE の文化を持ち込める • データテスト、単体テスト、ドキュメンテーション • オープンソースでプラグイン開発が容易

    • Web Framework のプラグインのように dbt ライブラリが豊富 • クラウド ↔ セルフホストを行き来できる • 最初は dbt Cloud に頼る • コストが気になったら GitHub Actions で dbt Core に切替とか
  11. dbt integration なサービスが豊富 • Fivetran, Airbyte, troccoなど Extruct / Load

    に特化したサービスで dbt に対応 • Databricks Jobs などのワークフローのステップに dbt が使える https://prtimes.jp/main/html/rd/p/000000046.000039164.html
  12. データ基盤の構成要素 • ストレージ • ELT • データモデリング • カタログ •

    データ品質保証 • MLOps / BI https://snowplow.io/blog/modern-data-stack/
  13. データ品質保証 • これだけで1テーマになってしまう • データの品質とはなにか? • 完全性、一意性、適時性、可用性… • dbt test

    + elementary • レコードに重複が発生したらアラートを出す • 存在しない FK がデータに含まれていたら(ry • データが反映されるべき時刻に挿入されてなかったら(ry
  14. MLOps / BI • MLOps • 実験環境、モデルレジストリ、モデルのサービング • GCP Vertex

    AI • Databricks MLFlow • BI • Tableau / PowerBI / Looker • Superset / Metabase
  15. データ基盤の構成要素 • ストレージ • ELT • データモデリング • カタログ •

    データ品質保証 • MLOps / BI https://snowplow.io/blog/modern-data-stack/
  16. マネージド サービス セルフ ホスト Storage Extract Load Transform DataModeling Catalog

    品質 MLOps BI dbt BigQuery DuckDB Unity Catalog Airbyte Fivetran Dataform Vertex AI Superset Metabase Looker Tableau Snowflake Data Catalog trocco Embulk Delta Live Tables Unity Catalog Dataflow BigQuery MLFlow Dashboard