Slide 1

Slide 1 text

AWSで始める 実践Dagster⼊⾨ 北川然平 データ事業本部ビジネスソリューション部データエンジニアリンググループ

Slide 2

Slide 2 text

アジェンダ

Slide 3

Slide 3 text

アジェンダ 3 1. Dagsterの概要と利点 2. Dagsterのコアコンセプト 3. Dagster + dbt統合 4. AWS環境でのDagster構築 5. 個⼈的な課題 6. まとめ

Slide 4

Slide 4 text

1. Dagsterの概要と利点

Slide 5

Slide 5 text

Dagsterとは 5 ● モダンなデータエンジニアリングのために設計されたオープンソースの データオーケストレーター ● ソフトウェア定義アセットを中⼼に据えた設計 ● 宣⾔的かつデータ意識的なワークフロー管理を実現 アセット = データベースのテーブル、データセット、MLモデルなど

Slide 6

Slide 6 text

データオーケストレーション 6 ● アセットを第一級オブジェクト として扱う ● 依存関係や最新性(freshness)を組み込み ● 品質チェックの統合 ● 処理の再現性と信頼性を飛躍的に向上 従来のタスクベースのオーケストレーションでは解決できない課題をクリアする Dagster公式からはこんな記事も... Dagster vs Airflow: Feature Comparison データオーケストレーションとは?

Slide 7

Slide 7 text

タスク中⼼からアセット中⼼への転換 7 https://stable.co.jp/blog/dagster-asset-centric

Slide 8

Slide 8 text

タスク中⼼からアセット中⼼への転換 8 https://stable.co.jp/blog/dagster-asset-centric

Slide 9

Slide 9 text

タスク中⼼からアセット中⼼への転換 9 ● 直感的な理解しやすさ ● 依存関係の⾃動管理 ● 効率的な実⾏ ● データリネージの可視化 「どうやって処理するか」から「何を作り出すか」にパラダイムシフトする アセット指向だと何が嬉しいのか?

Slide 10

Slide 10 text

タスク中⼼からアセット中⼼への転換 10 https://stable.co.jp/blog/dagster-asset-centric

Slide 11

Slide 11 text

タスク中⼼からアセット中⼼への転換 11 https://stable.co.jp/blog/dagster-asset-centric

Slide 12

Slide 12 text

統合的なリネージ‧監視 12 ● Dagster UIで一元管理 ○ 実行ログ ○ アセットの更新履歴 ○ 依存関係グラフ ● どのジョブがどのアセットに影 響したか即座に把握 ● 障害発生時のトラブルシュー トが迅速

Slide 13

Slide 13 text

組み込みデータ品質機能 13 ● コードレベルでのバリデーション ● アセットの新鮮度チェック ● テスト機能を標準搭載

Slide 14

Slide 14 text

強⼒な型システムとランタイム検証 14 ● Python型アノテーションを使った検証 ● 実行前後にデータの整合性チェック ● 変換エラーやスキーマ不整合を早期検知 ● 公式MCPが用意されるという噂も...? アナウンスされてました! Dagster’s MCP Server

Slide 15

Slide 15 text

柔軟なスケーリングとCI/CD対応 15 ● 同じコードをそのまま本番へ ○ 設定ファイルを切り替えるだけでECS上にデプロイ ● CI/CDツールと相性◎ ○ GitHub Actionsでビルド→ECRプッシュ→タスク更新を自動化 ● ECS Fargate対応 ○ サーバレス運用でインフラ管理を最小化

Slide 16

Slide 16 text

dbtなど他ツールとのシームレス連携 16 ● dbtモデルをDagsterアセットとして直接組み込み ● 上流のPython処理や下流のMLパイプラインと一体運用 ● 既存dbtプロジェクトをほぼそのまま移行可能 dbtは公式の学習コンテンツも 用意されている Dagster University | Dagster & dbt

Slide 17

Slide 17 text

2. Dagsterのコアコンセプト

Slide 18

Slide 18 text

ソフトウェア定義アセット(SDA) 18 ● データベースのテーブル、データセット、MLモデルなどを「アセット」とし て定義 ● 依存関係を明⽰し、データ系のプロセスをアセット単位で管理 ● 再現可能性の向上

Slide 19

Slide 19 text

ジョブ 19 ● アセットの更新や複数の処理ユニット(ops)をまとめた実⾏単位 ● スケジュール(Schedule)やイベントトリガー(Sensor)と組み合わせて運 ⽤

Slide 20

Slide 20 text

パーティション 20 ● 時間やその他キーでデータを分割 ● 差分だけを効率的に再処理 ● ⼤規模データの増分処理を簡潔に実装

Slide 21

Slide 21 text

リソース 21 ● データベース接続やクラウ ドサービスAPIなど外部依 存を構成化 ● ジョブ実⾏時に⾃動注⼊、 クリーンアップも⾃動化

Slide 22

Slide 22 text

3. Dagster + dbt統合

Slide 23

Slide 23 text

なぜDagster + dbt? 23 ● dbtの変換ロジックをDagsterのアセットグラフに統合 ● 上流・下流処理との一体運用 ● 統一的な監視・スケジューリング ● dbtテストの可視化

Slide 24

Slide 24 text

dbtプロジェクトのロード 24 これだけでdbtとDagsterが統合できます。

Slide 25

Slide 25 text

@dbt_assetsデコレータ 25 ● dbtのモデル・スナップショット・シードをアセット化 ● 個別モデルのマテリアライズイベントがUI上で可視化

Slide 26

Slide 26 text

dbtテストのAsset Checks統合 26 ● デフォルトでdbt定義のテストを統合可能 ● 設定不要でテストの実行履歴や結果を確認できる

Slide 27

Slide 27 text

スケジュール設定 27

Slide 28

Slide 28 text

4. AWS環境でのDagster構築

Slide 29

Slide 29 text

本番環境で推奨されるアーキテクチャ 29 本⽂ https://docs.dagster.io/deployment/oss/oss-deployment-architecture

Slide 30

Slide 30 text

本番環境で推奨されるアーキテクチャ 30 本⽂ https://docs.dagster.io/deployment/oss/oss-deployment-architecture

Slide 31

Slide 31 text

AWS環境構築の概要 31 ● Dagster Webserver / Dagster Daemon / User Code を ECS それぞれ独立 サービス化 ● RDS (PostgreSQL) にメタデータを永続化し冗長化 ● Secrets Manager で資格情報を暗号化保管しタスクへ安全に注入 ● Auto Scaling & Fargateでコスト最適化しながらピーク時にスケールアウト ● IaC (Terraform / AWS CDK) によりデプロイや環境複製を自動化 この構成をやってみたブログがあります! Dagsterとdbt CoreをECS on Fargateで構築する | DevelopersIO

Slide 32

Slide 32 text

ECS on Fargateでの構成 32

Slide 33

Slide 33 text

5. 個⼈的に感じた課題

Slide 34

Slide 34 text

課題 34 ● 学習コスト : ○ アセット指向、リソースなど独自概念が多い ○ ドキュメントや参考になるコード片がまだまだ少ない →生成AIもあまり賢く答えてくれない ○ (嬉しいことでもあるが)更新が活発で既存のやり方がベストプラクティスではなくなるこ とも ● 事例の少なさ : ○ 本番環境での運用事例が(特に日本では)少ない ○ 運用を見据えた構成の検討が難しい ● 認証・権限 : ○ OSS版は認証機能なし ○ RBACなどももちろんなし

Slide 35

Slide 35 text

6. まとめ

Slide 36

Slide 36 text

Dagsterがもたらす価値 36 ● 信頼性向上 : アセット中心の宣言的管理 ● 開発速度向上 : テスト容易性と再利用性 ● 運用可視化 : 統合的な監視とリネージ → 使いこなすことができれば強力なツールになる → 可能性は無限大!

Slide 37

Slide 37 text

参考資料 37 ● Dagster公式ドキュメント ● Dagster + dbt統合ガイド ● Dagster University ● Dagsterとdbt CoreをECS on Fargateで構築する | DevelopersIO ● dagsterの特徴「アセット指向のワークフロー」を理解する ● Dagster vs Airflow: Feature Comparison ● ゼロから始めるDagster・すぐに使える実践ガイド

Slide 38

Slide 38 text

No content