Skip to content
기사 목록으로 돌아가기
Data14分

変換層の選択 2026: dbt Core 1.10・SQLMesh 0.150・Dagster 1.10 どれを採るか

Transformation Layer 2026: dbt Core 1.10 vs SQLMesh 0.150 vs Dagster 1.10

久保 真由美Lead Analytics Engineer
2026-04-2114分
dbtSQLMeshDagsterSemantic LayerMetricFlowCube.devCI/CD

이 글은 일본어로 작성되어 있습니다. 한국어 요약은 아래와 같습니다:

Transformation Layer 2026: dbt Core 1.10 vs SQLMesh 0.150 vs Dagster 1.10dbt Core 1.10、SQLMesh 0.150、Dagster 1.10 の 2026 年最新版を、Semantic Layer、incremental materialization、CI/CD、コスト監視の四軸で実戦比較。dbt Labs の商用戦略転換、SQLMesh の virtual data environments、Dagster Asset-centric の成熟度を検証する。

分析変換ツールの三つ巴、2026 年の現在地

  • 年頃まで「データ変換といえば dbt」という暗黙の了解があったが、2024 年以降は明確に選択肢が分岐した。SQLMesh が仮想データ環境(virtual data environments)と column-level lineage で技術的優位を示し、Dagster が asset-centric オーケストレーションで dbt を包含する形で勢力を伸ばし、dbt Labs 自身も 2025 年の Fusion エンジン(Rust 実装の dbt ランタイム)導入と Semantic Layer の本格化で巻き返しを図った。
  • 年 4 月時点で KGA が顧客に推奨するのは、規模と性質で分けて次の通りだ。既存の中~大規模 dbt プロジェクト(モデル 500 個以上)は dbt Core 1.10 + Fusion のまま。グリーンフィールドで PostgreSQL/BigQuery/Snowflake 中心、かつ CI 待ち時間が痛みになっている案件は SQLMesh 0.150。データパイプライン全体(ML、reverse ETL、BI 更新含む)を単一オーケストレータで見たい案件は Dagster 1.10 + dbt または Dagster 1.10 + SQLMesh 統合。

dbt Core 1.10 と Fusion エンジン

  • 年末に GA した dbt Fusion は、Python 実装だった dbt のコンパイル・パースフェーズを Rust で書き直したもので、モデル 1000 個規模のプロジェクトで `dbt parse` が 3~4 倍、`dbt compile` が 2~3 倍速くなった。これは CI 時間の短縮に直結し、KGA の小売顧客では PR 毎の CI が 18 分から 7 分に短縮された。
  • 10 で特筆すべきは三点ある。第一に、`microbatch` incremental strategy の安定化。時系列データの ingestion において、過去分の再実行と新規バッチの追記を同一モデル定義で扱えるようになり、Lambda アーキテクチャ的な二重管理が不要になった。第二に、Python models の行パーティション実行サポート。dbt Python model を Snowpark/Databricks/BigQuery DataFrames で動かす際、自動的にパーティション単位並列化される。第三に、MetricFlow(Semantic Layer の中核)の定義ファイル構文安定化で、メトリクス定義の YAML が 1.9 時点の実験的構文からクリーンになった。

弱点は依然として存在する。column-level lineage は dbt Cloud でしか利用できず、OSS 版にはない。unit test は導入されたが SQLMesh の audits ほど表現力がない。virtual environment(blue-green 的なテーブル切り替え)は未サポートで、zero-copy clone に頼る運用が必要。

SQLMesh 0.150 の virtual data environments

SQLMesh 最大の差別化要因は仮想データ環境だ。開発者が feature branch で変更したモデルを `sqlmesh plan dev` すると、テーブルを物理コピーせずに「変更したモデルだけ別名で実体化し、それ以外は本番テーブルを参照する論理ビュー」が作られる。これにより CI 時のフルビルドコストが劇的に下がる。

  • 150 での目玉機能は次の通り。

Column-level lineage OSS 提供: dbt Cloud の有料機能と同等の列レベル系譜を、OSS のまま SQLMesh UI から可視化できる。影響範囲分析で「このカラム定義を変えると、下流のどのダッシュボードの、どの指標が変わるか」まで追える。

Incremental by time range の自動最適化: 時系列 incremental モデルで、ロード対象パーティションの自動検出と過去再実行の冪等性保証が dbt microbatch より柔軟。データ到着遅延(late-arriving facts)の対処が宣言的に書ける。

Audits(データ品質アサーション): SQL で書いた audit が、モデルの update/append/backfill 前後で自動実行される。失敗したら rollback される仕様で、本番データ破壊のリスクが実質ゼロになる。

ネイティブ Python models: dbt の Python model 相当だが、引数の型ヒントベースで暗黙的に依存解決される。

  • 年時点での弱点は、エコシステム規模。dbt の package(dbt-utils、dbt-expectations、dbt-snowflake-monitoring 等)に相当するコミュニティアセットがまだ薄く、自前で書く量が多くなる。また、日本語ドキュメントと社内研修コンテンツが dbt と比較して圧倒的に不足している。

Dagster 1.10 の asset-centric アプローチ

Dagster は元来 Python ベースのオーケストレータだが、software-defined assets の概念を核に据え、dbt/SQLMesh/Airbyte/Fivetran/Hightouch といった各種ツールを単一の資産グラフとして統合できる点が最大の強みだ。

  • 10 での進化ポイント。

dbt + SQLMesh の両方を資産として扱える: 同一パイプラインで、遷移期に dbt と SQLMesh を併存させる構成が破綻しない。KGA の金融顧客では、既存 dbt 800 モデルを段階的に SQLMesh へ移行中で、両方を Dagster から一括管理している。

Pipes protocol の拡張: Databricks/EMR/Kubernetes の外部実行環境で走るジョブと、Dagster 本体のオーケストレーション層を軽量連携できる仕組みで、Python/Scala/Rust など言語を問わない。

Declarative scheduling の成熟: 「asset A は B が更新されてから 15 分以内に更新する」といった宣言的 SLA スケジュールが、cron より直感的で、依存関係の変化に自動追従する。

Asset checks: データ品質チェックを資産自体のメタデータとして定義し、失敗時に下流の更新を自動停止できる。

弱点は、学習曲線。asset-centric の考え方は Airflow の task-centric からの乗り換えコストが小さくなく、チーム全体がモデルを変える必要がある。また、SQL だけで回る小規模プロジェクトには明らかに過剰装備。

Semantic Layer の実装戦略

  • 年のデータスタックで避けて通れないのが Semantic Layer だ。BI ツール、LLM エージェント、reverse ETL のいずれもが、同一のメトリクス定義を一元参照することが要求される。主要な選択肢は三つ。

dbt MetricFlow: dbt Semantic Layer の中核エンジン。dbt のモデルと密結合で、semantic_model と metric を YAML で定義し、JDBC/GraphQL API 経由で消費される。Tableau、Hex、Mode、Lightdash、Metabase が対応。利点は dbt との密結合で、メトリクス変更がモデル CI に自動で含まれる点。欠点は dbt Cloud のフル機能を活用するなら有料枠が必要で、Semantic Layer API の同時接続数制限もプラン依存。

Cube.dev: Semantic Layer 特化の OSS/商用ツール。dbt/SQLMesh/直接 SQL のいずれとも接続可能で、キャッシュ層と access control が強力。LLM エージェント向けの MCP サーバーも標準提供され、自然言語から安全にメトリクスを引き出せる。KGA の EC 顧客では、Cube.dev + dbt の組み合わせで LLM ダッシュボード(Slack 上でメトリクスを質問する)を構築した。

SQLMesh Metrics: SQLMesh 0.150 で導入された新機能。SQLMesh モデルと同じリポジトリで metric 定義を管理し、column-level lineage との統合が深い。成熟度はまだ MetricFlow/Cube.dev より劣るが、SQLMesh を採用する案件なら自然な選択肢。

CI/CD パターンとコスト監視

変換ツールの運用で 2026 年的なベストプラクティスは次の通り。

Blue-green デプロイ: SQLMesh の virtual data environments か、dbt + Snowflake zero-copy clone/BigQuery snapshot で実装。本番と同じデータで PR 時にフルビルドし、検証後に切り替える。

Slim CI: 変更に影響するモデルだけをビルドする差分実行。dbt なら `dbt build --select state:modified+`、SQLMesh は標準機能として備える。

Model-level cost attribution: Snowflake なら QUERY_HISTORY + ACCESS_HISTORY の結合、BigQuery なら INFORMATION_SCHEMA.JOBS、Databricks なら system.billing.usage を dbt の model metadata と突合し、モデル単位の課金を可視化する。2026 年は dbt の `dbt-snowflake-monitoring` package、SQLMesh の built-in cost tracker、Dagster の asset insights と三者三様だが、ほぼ同等の可視性を提供する。

PR 単位のコスト予算: KGA では GitHub Actions の中で、CI フルビルドの推定コストを試算し 1 PR あたり 500 円を超える変更は自動で approval reviewer を増やす運用にしている。無駄な SELECT * クエリや非効率 CTE がコミット前に弾かれる。

結論: 2026 年のお勧めスタック

ゼロから始めるなら KGA の推奨は Dagster + SQLMesh + Cube.dev である。理由は、virtual environments による CI 高速化、asset-centric オーケストレーション、Semantic Layer の明確な責務分離が揃い、しかも全て OSS で運用できる。

既存資産(dbt モデル 300 個以上)があるなら、当面は dbt Core 1.10 + Fusion + MetricFlow が合理的。dbt Cloud は Semantic Layer と column-level lineage が欲しい場合のみ検討する。Airflow が組織の既成スタックなら、dbt + Airflow の構成を急いで捨てる必要はないが、新規プロジェクトは Dagster を検討する価値がある。

どの選択でも、CI/CD の自動化、コスト可視化、Semantic Layer の一元管理を怠ると、5 年後には技術負債の山になる。ツール選定の議論と同じか、それ以上に運用設計の議論に時間を使うべきだ。

技術的な課題を一緒に解決しませんか?

KGA IT Solutionsは、AI・クラウド・DevOpsの専門チームがお客様の課題に最適なソリューションを提供します。

お問い合わせ