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
5
3k
データ基盤を支える技術
主にクラウドの話してます - 広島 での登壇資料です。
https://omoni-cloud.connpass.com/event/315682/
chanyou0311
May 09, 2024
Tweet
Share
More Decks by chanyou0311
See All by chanyou0311
おうちk8s入門 - すごい広島 IT初心者の会 [84]
chanyou0311
1
120
オンラインコミュニケーションの課題と、その乗り越え方
chanyou0311
0
400
データ分析基盤のはじめかた
chanyou0311
0
1.2k
ゼロから始める Python パッケージ配布
chanyou0311
0
250
フルリモートでもチームを作れる、超えられる!
chanyou0311
0
540
ひとり研修の体験談
chanyou0311
0
60
2020年、広島の地域 Python コミュニティの挑戦
chanyou0311
0
130
connpass-feeder で気になるイベントに参加しまくる!
chanyou0311
0
100
quicktype を使って爆速で型定義する
chanyou0311
0
480
Other Decks in Technology
See All in Technology
Deno で作る快適な “as Code” プラットフォーム – TSKaigi 2024
pizzacat83
4
320
開発スピードの維持向上を支える、テスト設計の 漸進的進化への取り組み / Continuous Test Design Development for Speed of Product Development
ropqa
0
190
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
390
#phpconkagawa レガシーコードにもオブザーバビリティを 〜少しずつ始めるサービス監視〜
yamato_sorariku
0
570
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
37k
TiDBにおけるテーブル設計と最適化の事例
cygames
0
810
Google Cloudを組織(企業)で運用する時のベストプラクティス × 健康の環境分離戦略 #まるクラ勉強会
yasumuusan
0
190
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
10
1.8k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.7k
[2024년 5월 세미나] 생성형 AI와 함께하는 데이터 분석가 커리어
datarian
0
1.3k
株式会社EventHub・エンジニア採用資料
eventhub
0
2.1k
Domain-driven Design: A Complete Example
ewolff
2
270
Featured
See All Featured
Facilitating Awesome Meetings
lara
43
5.6k
Building Effective Engineering Teams - LeadDev
addyosmani
33
1.9k
Adopting Sorbet at Scale
ufuk
69
8.6k
Six Lessons from altMBA
skipperchong
22
3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
How STYLIGHT went responsive
nonsquared
92
4.9k
The Cult of Friendly URLs
andyhume
74
5.7k
Raft: Consensus for Rubyists
vanstee
133
6.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
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 Metabase Looker Tableau Snowflake Data Catalog trocco Embulk Delta Live Tables Unity Catalog Dataflow BigQuery MLFlow Dashboard
まとめ • パブリッククラウド以外の選択肢も豊富 • OSS のマネージドサービスが近年増えている • パブリッククラウドにロックインされず健全 • 選択肢がありすぎて、技術選定が難しい
• ストレージと Fivetran と dbt があればなんとかなる
文献 • データマネジメント知識体系ガイド 第二版 • ビッグデータを支える技術 • データエンジニアリングの基礎