Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データ基盤を支える技術
Search
chanyou0311
May 09, 2024
Technology
4.6k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データ基盤を支える技術
主にクラウドの話してます - 広島 での登壇資料です。
https://omoni-cloud.connpass.com/event/315682/
chanyou0311
May 09, 2024
More Decks by chanyou0311
See All by chanyou0311
5分でわかるDuckDB Quack
chanyou0311
4
270
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.6k
LookerとADKで作る社内AIエージェント
chanyou0311
0
530
「リリース後」に向き合うAI駆動開発の実践
chanyou0311
0
92
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
10
4.4k
5分でわかるDuckDB
chanyou0311
12
4.7k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
3
2k
データの信頼性を支える仕組みと技術
chanyou0311
6
2.4k
Pulumi に入門してみた
chanyou0311
1
400
Other Decks in Technology
See All in Technology
なぜ人は自分のプロジェクトを 「なんちゃってアジャイル」と 自嘲するのか
kozotaira
0
160
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
240
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
110
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
180
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
130
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
110
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
150
BPaaSで進むAIオペレーションの現在地 AI実装が効く領域とスケーラビリティの選定と実装
kentarofujii
0
220
Agile and AI Redmine Japan 2026
hiranabe
4
510
水を運ぶ人としてのリーダーシップ
izumii19
4
1.1k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
WebGIS AI Agentの紹介
_shimizu
0
600
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
170
Navigating Team Friction
lara
192
16k
RailsConf 2023
tenderlove
30
1.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
440
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
240
Unsuck your backbone
ammeep
672
58k
Agile that works and the tools we love
rasmusluckow
331
22k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
A Soul's Torment
seathinner
6
3k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
260
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
260
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
Transcript
データ基盤を⽀える技術 chanyou
Yu Nakamura - chanyou ‧ DRE ← Data Engineer ←
SWE ‧ X: @chanyou0311 ‧ GCP BigQuery ‧ Azure Databricks ‧ おうち Kubernetes クラスタ
ゴール ‧データ基盤の構成要素がわかる ‧データ基盤を構成する技術スタックがイメージできる なんかデータ分析基盤作れそう!作ってみたい 💪
注意 ‧AWS と Azure 固有のサービスは触れられてません ‧GCP に類似したサービスはあるはず… ‧だいたい Databricks で対応できます
Databricks
データ基盤の構成要素
データ基盤とは?
データを保存‧加⼯‧活⽤する システム群のこと
クラウド時代のデータ基盤は どうあるべき?
“モダンデータスタック”
https://snowplow.io/blog/modern-data-stack/
クラウドサービスの組み合わせで データ基盤が作れてしまう
データ基盤の主な構成要素を 紐解いていく
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
ストレージ
ストレージ ‧データウェアハウス ‧データレイク ‧データレイクハウス
データウェアハウス ‧構造データをサクッと取り出せるストレージ ‧BigQuery, Snowflake など
データレイク ‧構造‧⾮構造どちらも保存できるストレージ ‧S3 や GCS など ‧画像や⾳声を使ってMLモデル作りたい、に応える ‧構造データはデータウェアハウスに転送する
データレイクハウス ‧データレイクにデータウェアハウスを内包する思想 ‧構造データとして Delta Lake などを採⽤ ‧ACID トランザクションの担保 ‧実体は列指向の Parquet
ファイル ‧マネージドサービスとして Databricks Unity Catalog
ストレージ ‧データウェアハウス ‧データレイク ‧データレイクハウス
ELT
ELT ‧Extract ‧Load ‧Transform
ELT vs ETL ‧ELT: 外部データをそのままストレージにロードして後から変換する ‧ETL: 外部データを変換してからストレージにロードする 最近は ELT が主流
ストレージコストが安価、後から変換をやり直せるため
ETL 全部できるもの ‧GCP Dataflow / Apache Beam ‧Databricks Delta Live
Tables ‧trocco / Embulk / Fluentd ‧Jupyter Notebook / Spark ‧お⼿製スクリプトと任意の実⾏環境
Extract と Load 特化 ‧Fivetran ‧Airbyte Cloud / Airbyte ‧dlt
‧trocco / Embulk / Fluentd 多数のコネクタを持ち合わせている 接続したいサービスの token を渡すだけで連携できる 例: S3 に保存された⽣ログをそのまま BigQuery に転送
Fivetran が⼀強(豊富な連携先、安定性) https://classmethod.jp/partner/fivetran/
Transform 特化 ‧dbt Cloud / dbt Core ‧GCP Dataform ‧Databricks
Delta Live Tables ストレージにロード済みのデータを変換する SQL ベースで冪等に処理できるものが好まれる
dbt がデファクトスタンダード的ポジション ‧token 設定して SQL ファイル書いて実⾏するだけ ‧結果がテーブルとして書き込まれる ‧別の SQL ファイルの結果を利⽤して
SQL ファイルを書ける ‧依存関係を解決して⾃動で適切な順序でテーブルを⽣成してくれる ‧ストレージや実⾏環境にロックインされない ‧dbt は SQL のコンパイルを⾏うのがメイン ‧実際の変換処理はストレージ標準の計算リソースを利⽤する
dbt がデファクトスタンダード的ポジション ‧データエンジニアリングに SWE の⽂化を持ち込める ‧データテスト、単体テスト、ドキュメンテーション ‧オープンソースでプラグイン開発が容易 ‧Web Framework のプラグインのように
dbt ライブラリが豊富 ‧クラウド ↔ セルフホストを⾏き来できる ‧最初は dbt Cloud に頼る ‧コストが気になったら GitHub Actions で dbt Core に切替とか
dbt integration なサービスが豊富 ‧Fivetran, Airbyte, troccoなど Extruct / Load に特化したサービスで
dbt に対応 ‧Databricks Jobs などのワークフローのステップに dbt が使える https://prtimes.jp/main/html/rd/p/000000046.000039164.html
その他の要素
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
データモデリング ‧ファクトテーブル、ディメンションテーブルの実装 ‧分析のための集約テーブルの実装 Transform の作り込み Notebook ベースでも実装可能だが、保守性が低い dbt ⼀択な印象
カタログ ‧テーブルやカラムのメタデータ管理ツール ‧分析時に⾏や列の意味がわからないとしんどい ‧GCP Data Catalog ‧BigQuery テーブル詳細画⾯ ‧dbt docs
データ品質保証 ‧これだけで1テーマになってしまう ‧データの品質とはなにか? ‧完全性、⼀意性、適時性、可⽤性… ‧dbt test + elementary ‧レコードに重複が発⽣したらアラートを出す ‧存在しない
FK がデータに含まれていたら(ry ‧データが反映されるべき時刻に挿⼊されてなかったら(ry
MLOps / BI ‧MLOps ‧実験環境、モデルレジストリ、モデルのサービング ‧GCP Vertex AI ‧Databricks MLFlow
‧BI ‧Tableau / PowerBI / Looker ‧Superset / Metabase
データ基盤の構成要素 ‧ストレージ ‧ELT ‧データモデリング ‧カタログ ‧データ品質保証 ‧MLOps / BI https://snowplow.io/blog/modern-data-stack/
データ基盤の構成要素のまとめ
マネージド サービス セルフ ホスト 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
まとめ ‧パブリッククラウド以外の選択肢も豊富 ‧OSS のマネージドサービスが近年増えている ‧パブリッククラウドにロックインされず健全 ‧選択肢がありすぎて、技術選定が難しい ‧ストレージと Fivetran と dbt
があればなんとかなる
⽂献 ‧データマネジメント知識体系ガイド 第⼆版 ‧ビッグデータを⽀える技術 ‧データエンジニアリングの基礎