Slide 1

Slide 1 text

Copyright stable, inc. All rights reserved.
 これからのSQL開発 — dbt F✦SION engineの本質とその先の世界 2025.06.17 dbt Global Circuit Series: Tokyo dbt Meetup#14 1 stable株式会社 データエンジニア 三角勇貴

Slide 2

Slide 2 text

Copyright stable, inc. All rights reserved.
 本日お話しすること
 2
 ⚠ 便宜上、本発表ではdbt F✦SION engineをF✦SIONと省略しています。 dbt F✦SION engineによるこれからの SQL開発についてお話しします。 
 - SQL/dbt開発の現状と課題 
 - 解決策としての dbt F✦SION engine
 - F✦SION の技術アプローチ 
 - F✦SION の展望
 - F✦SION がくれたモノ 
 🔭


Slide 3

Slide 3 text

Copyright stable, inc. All rights reserved.
 自己紹介 3 三角勇貴(@myshmeh) stable株式会社 データエンジニア - 略歴 - プライバシーガバナンス → ソフトウェアエンジニア → CS修士 → データエンジニア - 2025年1月にstable株式会社へ入社 - 好きな領域 - コンピュータシステム全般 - 休日 - 妻とモンハンエンジョイしてます

Slide 4

Slide 4 text

Copyright stable, inc. All rights reserved.
 データ基盤整備のプロの知見やリソースを、 1ヶ月単位で提供しています。 
 stableの提供サービス
 4
 プロの知見・リソースがすぐに得られる 
 - 多数の案件を経験するプロの知見を得られる 
 - 実装まで行うので、社内にリソースがなくても OK
 
 
 1ヶ月ごとの月額制で柔軟な支援体制 
 - 見積もりが発生せず、すぐプロジェクトを開始できる 
 - 1ヶ月ごとにコミット量の調整が可能 


Slide 5

Slide 5 text

Copyright stable, inc. All rights reserved.
 1. はじめに 2. SQL/dbt開発の現状と課題 3. 解決策としてのdbt F✦SION engine 4. F✦SION の技術アプローチ 5. F✦SION の展望 6. F✦SION がくれたモノ 5

Slide 6

Slide 6 text

Copyright stable, inc. All rights reserved.
 SQL/dbt開発の課題 大体、以下の2種類に分けられると思います。 6 💰 🐢 お金がかかる 
 開発スピード 
 何をするにもDWHが必要 痒いところに手が届かない開発体験

Slide 7

Slide 7 text

Copyright stable, inc. All rights reserved.
 7 こんな悩みありませんか集 1/2 dbt run --emptyでSQLチェック

Slide 8

Slide 8 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 1/2 これって実行できるの? 8 🤔

Slide 9

Slide 9 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 1/2 これって実行できるの? 9 カラム名をイギリス英語で統一したんだった。。 😇
 -- 存在しないカラム


Slide 10

Slide 10 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 1/2 dbt run --emptyでSQLチェック → Snowflake Warehouseを1分消費 10 カラム名をイギリス英語で統一したんだった。。 😇
 -- 存在しないカラム


Slide 11

Slide 11 text

Copyright stable, inc. All rights reserved.
 -- 存在しないカラム
 こんな悩みありませんか集 1/2 dbt run --emptyでSQLチェック → Snowflake Warehouseを1分消費 11 カラム名をイギリス英語で統一したんだった。。 😇
 時間かかる&
 💰ちりつも


Slide 12

Slide 12 text

Copyright stable, inc. All rights reserved.
 -- 存在しないカラム
 こんな悩みありませんか集 1/2 dbt run --emptyでSQLチェック → Snowflake Warehouseを1分消費 12 カラム名をイギリス英語で統一したんだった。。 😇
 Pythonみたいにさっと
 補完効かないの?


Slide 13

Slide 13 text

Copyright stable, inc. All rights reserved.
 13 こんな悩みありませんか集 2/2 面倒なデバッグ

Slide 14

Slide 14 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 2/2 デバッグ時、targetディレクトリのコードをコピペ&微修正して手動実行 14 1) コピペして

Slide 15

Slide 15 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 2/2 デバッグ時、targetディレクトリのコードをコピペ&微修正して手動実行 15 2) FROM句変えて 1) コピペして

Slide 16

Slide 16 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 2/2 デバッグ時、targetディレクトリのコードをコピペ&微修正して手動実行 16 2) FROM句変えて 1) コピペして めんどくさい


Slide 17

Slide 17 text

Copyright stable, inc. All rights reserved.
 こんな悩みありませんか集 2/2 デバッグ時、targetディレクトリのコードをコピペ&微修正して手動実行 17 2) FROM句変えて 1) コピペして CTEのデータくらい
 さっと見れないの?🐢


Slide 18

Slide 18 text

Copyright stable, inc. All rights reserved.
 SQL/dbt開発の課題 他にも、色々な課題があると思います。 18 お金がかかる 
 開発スピード 
 - 文法チェックにDWHが必要 - 関数利用のチェックにDWHが必要 - カラムチェックにDWHが必要 - テスト実行にDWHが必要 - … - ネットワーク経由の実行速度 - CTEのデータ確認にクエリ変更が必要 - カラムの由来を調べるのに、SQLを延々と 遡る羽目になる - … 💰 🐢

Slide 19

Slide 19 text

Copyright stable, inc. All rights reserved.
 19 なぜ〇〇ができない?

Slide 20

Slide 20 text

Copyright stable, inc. All rights reserved.
 なぜ〇〇ができない? dbtには、SQL実行環境がない! 逆に、dbtにSQL実行環境があれば、文法チェックやSQL実行ができるはず。 20 unit test実行!
 失敗...
 💻 💰

Slide 21

Slide 21 text

Copyright stable, inc. All rights reserved.
 21 dbt F✦SION engineは、 この課題に真正面から向き合います

Slide 22

Slide 22 text

Copyright stable, inc. All rights reserved.
 1. はじめに 2. SQL/dbt開発の現状と課題 3. 解決策としてのdbt F✦SION engine 4. F✦SION の技術アプローチ 5. F✦SION の展望 6. F✦SION がくれたモノ 22

Slide 23

Slide 23 text

Copyright stable, inc. All rights reserved.
 dbt F✦SION engineとは dbt Fusion engineは、SQLをネイティブに理解する、次世代の データエンジニアリングの核です。 23 *1 https://docs.getdbt.com/blog/dbt-fusion-engine *1
 - 5/28に公開 (Public Beta) - 対応DWH(現在): Snowflake, Databricks - ライセンス: - 基本公開ソース (ELv2、Apache) - State aware orchaestrationなど 非公開ソースもあり

Slide 24

Slide 24 text

Copyright stable, inc. All rights reserved.
 24 ほう。 で、何ができるんだい?

Slide 25

Slide 25 text

Copyright stable, inc. All rights reserved.
 25 dbt F✦SION engineで今できること 3選

Slide 26

Slide 26 text

Copyright stable, inc. All rights reserved.
 26 dbt F✦SION engineで今できること 1/3 SQLの正しさチェック

Slide 27

Slide 27 text

Copyright stable, inc. All rights reserved.
 dbt F✦SION engineで今できること 1/3 直接エディタ上でSQLの正しさをチェックできるようになった! dbt run --empty でお金をすり減らした日々にバイバイ💰 27 関数利用のチェックに DWHは不要! 文法チェックに DWHは不要!

Slide 28

Slide 28 text

Copyright stable, inc. All rights reserved.
 dbt F✦SION engineで今できること 1/3 直接エディタ上でSQLの正しさをチェックできるようになった! dbt run --empty でお金をすり減らした日々にバイバイ💰 28 存在しないカラムにも気づける! -- 存在しないカラム


Slide 29

Slide 29 text

Copyright stable, inc. All rights reserved.
 dbt F✦SION engineで今できること 1/3 直接エディタ上でSQLの正しさをチェックできるようになった! dbt run --empty でお金をすり減らした日々にバイバイ💰 29 存在しないカラムにも気づける!

Slide 30

Slide 30 text

Copyright stable, inc. All rights reserved.
 30 dbt F✦SION engineで今できること 2/3 Preview CTE

Slide 31

Slide 31 text

Copyright stable, inc. All rights reserved.
 dbt F✦SION engineで今できること 2/3 Preview CTE機能で、CTEのデータくらいさっと見れるようになった!🐢 31 1
 2


Slide 32

Slide 32 text

Copyright stable, inc. All rights reserved.
 32 dbt F✦SION engineで今できること 3/3 カラムレベルリネージ

Slide 33

Slide 33 text

Copyright stable, inc. All rights reserved.
 dbt F✦SION engineで今できること 3/3 カラムリネージで、カラムがどう加工されてきたか一目でわかるようになった!🐢 33

Slide 34

Slide 34 text

Copyright stable, inc. All rights reserved.
 解決策としてのdbt F✦SION engine 課題の大部分が、既に解決できている! 34 お金がかかる 
 開発スピード 
 - ✅ 文法チェックにDWHが必要 - ✅ 関数利用のチェックにDWHが必要 - ✅ カラムチェックにDWHが必要 - (後述) テスト実行にDWHが必要 - … - ✅ ネットワーク経由の実行速度 - ✅ CTEのデータ確認にクエリ変更が必要 - ✅カラムの由来を調べるのに、SQLを延々 と遡る羽目になる - … 💰 🐢

Slide 35

Slide 35 text

Copyright stable, inc. All rights reserved.
 F✦SIONの開発計画 当面は、GAに向けてadapterとdbt-core機能のカバレッジをあげる方針。 dbt Projects in Snowflakeでは、F✦SIONのサポートが予定されている。 35 *1 https://docs.getdbt.com/blog/dbt-fusion-engine-path-to-ga *2 https://youtu.be/w7C7OkmYPFs *1
 *2


Slide 36

Slide 36 text

Copyright stable, inc. All rights reserved.
 36 おお、良いじゃん — でも 🤔

Slide 37

Slide 37 text

Copyright stable, inc. All rights reserved.
 37 なぜ、dbt-coreではできなかったの? F✦SIONは何が違うの? 🤔

Slide 38

Slide 38 text

Copyright stable, inc. All rights reserved.
 1. はじめに 2. SQL/dbt開発の現状と課題 3. 解決策としてのdbt F✦SION engine 4. F✦SION の技術アプローチ 5. F✦SION の展望 6. F✦SION がくれたモノ 38

Slide 39

Slide 39 text

Copyright stable, inc. All rights reserved.
 なぜ〇〇ができない? dbtには、SQL実行環境がない! 逆に、dbtにSQL実行環境があれば、文法チェックやSQL実行ができるはず。 39 unit test実行!
 失敗...
 💻 💰 dbt-coreには、SQL実行環境がないことが課題だった。 dbt-coreには、SQL実行環境がないことが課題だった。

Slide 40

Slide 40 text

Copyright stable, inc. All rights reserved.
 なぜ〇〇ができない? dbtには、SQL実行環境がない! 逆に、dbtにSQL実行環境があれば、文法チェックやSQL実行ができるはず。 40 unit test実行!
 失敗...
 💻 💰 「この課題に真正面から向き合います」 どのように向き合っているのか?

Slide 41

Slide 41 text

Copyright stable, inc. All rights reserved.
 F✦SIONの技術アプローチ F✦SIONは、SQL実行環境を内包している。 つまり、dbt-coreがDWHに依存していたSQLのコンパイル・実行の機能を持つ! 41 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 ?
 ?
 入力
 コンパイル
 F✦SION
 dbt-core
 STEP
 SQL文
 ?
 ?
 データ
 ARTIFACT


Slide 42

Slide 42 text

Copyright stable, inc. All rights reserved.
 コンパイルって何してるの? SQLから実行可能な構造を生成してるのはなんとなくわかるが、内部では何が行わ れているのだろうか? 42 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 ?
 ?
 入力
 コンパイル 
 F✦SION
 dbt-core
 STEP
 SQL文
 ?
 ?
 データ
 ARTIFACT
 何が起きてる? 


Slide 43

Slide 43 text

Copyright stable, inc. All rights reserved.
 43 ざっくり言うと

Slide 44

Slide 44 text

Copyright stable, inc. All rights reserved.
 すごいざっくり言うと SQL(らしき文章)がSQLとして実行できるのか、様々なチェックをしている。 これらは多くのF✦SION機能の基になっており、解像度をあげて理解を深めたい。 44 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 チェック
 2
 チェック
 1
 入力
 コンパイル
 F✦SION
 STEP
 SQL文
 データ構造1
 データ構造2
 データ
 ARTIFACT
 から
 作る


Slide 45

Slide 45 text

Copyright stable, inc. All rights reserved.
 SQLコンパイルの概要 単純なSnowflake SQL文を例に、各コンパイルステップの概要を説明します。 45 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コンパイル
 F✦SION
 STEP
 select dateadd(‘day’, 1, ‘2025-01-01’) as new_day SQL文
 抽象構文木
 論理実行計画
 物理実行計画
 データ
 ARTIFACT


Slide 46

Slide 46 text

Copyright stable, inc. All rights reserved.
 SQLコンパイルの概要 文法チェックでは、SQLとしてキーワード・識別子の並びが正しいか確認する。 この並びをツリー構造 (抽象構文木) に整理して、SQLの要素を検索可能にする。 46 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コンパイル
 F✦SION
 STEP
 SQL文
 抽象構文木 
 論理実行計画
 物理実行計画
 データ
 ARTIFACT
 select dateadd(‘day’, 1, ‘2025-01-01’) as new_day select as dateadd new_day ‘day’ 1 ‘2025-01-01’ e.g. aliasが何かは、select, as, new_dayと辿る事でわかる 


Slide 47

Slide 47 text

Copyright stable, inc. All rights reserved.
 SQLコンパイルの概要 意味チェックでは、SQLのカラム参照・関数呼出し等が意味的に正しいか確認す る。成果物として、詳細な「何をするか」を記述した論理実行計画を生成する。 47 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コンパイル
 F✦SION
 STEP
 SQL文
 抽象構文木
 論理実行計画 
 物理実行計画
 データ
 ARTIFACT
 select dateadd(‘day’, 1, ‘2025-01-01’) as new_day Projection { expr = dateadd( ‘day’::date part, 1::number, ‘2025-01-01’::date ) schema = new_day::date } 型情報を付加 
 関数定義を参照 


Slide 48

Slide 48 text

Copyright stable, inc. All rights reserved.
 SQLコンパイルの概要 実行では、詳細な「何をするか」から最適な「どうやるか」を計画し、データを取 得する。F✦SIONは、SQLをDWHと同等に実行できる! 48 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コンパイル
 F✦SION
 STEP
 SQL文
 抽象構文木
 論理実行計画
 物理実行計画 
 データ
 ARTIFACT
 select dateadd(‘day’, 1, ‘2025-01-01’) as new_day 2025-01-02T00:00:00

Slide 49

Slide 49 text

Copyright stable, inc. All rights reserved.
 49 したがって 「コンパイルって何してるの?」に答えると 🤔

Slide 50

Slide 50 text

Copyright stable, inc. All rights reserved.
 「コンパイルって何してるの?」の答え コンパイルは、実行計画を出力するために、入力の文字列が文法・意味上正しいの かをチェックしている。このチェックを静的解析という。 50 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コンパイル
 F✦SION
 STEP
 SQL文
 ARTIFACT
 データ
 抽象構文木
 論理実行計画
 静的解析
 ⊂


Slide 51

Slide 51 text

Copyright stable, inc. All rights reserved.
 51 では、静的解析を基に 現状の機能はどう理解できるだろう?

Slide 52

Slide 52 text

Copyright stable, inc. All rights reserved.
 52 静的解析の適用例 1/2 カラムの存在チェック

Slide 53

Slide 53 text

Copyright stable, inc. All rights reserved.
 b 静的解析の適用例 1/2 あるカラムが存在するかは、ソースモデルの抽象構文木のカラムを検索すれば わかる。 53 ⚠ あくまでコンセプトの適用を例示したもので、実際の実装とは異なる場合があります。 select id source_b
 organisation from …
 this model
 …
 with as select …
 organization b . source_b organizationというカラムはselect文subtreeにいない
 カラムは全て実在するだろうか?
 TODO:エラー説明入りの 画像に差し替え 
 -- 存在しないカラム


Slide 54

Slide 54 text

Copyright stable, inc. All rights reserved.
 54 静的解析の適用例 2/2 Preview CTE

Slide 55

Slide 55 text

Copyright stable, inc. All rights reserved.
 静的解析の適用例 2/2 Preview CTE機能は、抽象構文木の一部を付け替えることで達成できる。 55 ⚠ あくまでコンセプトの適用を例示したもので、実際の実装とは異なる場合があります。 with as source …
 as modify_1 …
 as modify_2 final …
 as …
 …
 with as source …
 as modify_1 …
 select * from modify_1 this model
 Preview CTE query
 CTE modify_1後のsubtreeをselect文と付け替える
 CTE modify_1のデータをpreviewしたい


Slide 56

Slide 56 text

Copyright stable, inc. All rights reserved.
 56 仕組みと機能が理解として繋がったら幸いです!

Slide 57

Slide 57 text

Copyright stable, inc. All rights reserved.
 57 まとめ

Slide 58

Slide 58 text

Copyright stable, inc. All rights reserved.
 Re: F✦SIONの技術アプローチ F✦SIONは、dbt-coreがDWHに依存していたSQLのコンパイル・実行機能を持つ! よって、静的解析が可能になり、Public Beta版の機能を達成できた。 58 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コ ン パ イ ル 
 F✦SION
 dbt-core
 STEP
 SQL文
 抽象構文木
 論理実行計画
 データ
 ARTIFACT
 静 的 解 析 


Slide 59

Slide 59 text

Copyright stable, inc. All rights reserved.
 1. はじめに 2. SQL/dbt開発の現状と課題 3. 解決策としてのdbt F✦SION engine 4. F✦SION の技術アプローチ 5. F✦SION の展望 6. F✦SION がくれたモノ 59

Slide 60

Slide 60 text

Copyright stable, inc. All rights reserved.
 60 静的解析の他に、 まだ開いていない扉がありませんか?

Slide 61

Slide 61 text

Copyright stable, inc. All rights reserved.
 F✦SION の展望 SQLの実行ステップを応用すると、どんな開発ツールが期待できるだろうか? 61 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コンパイル
 F✦SION
 STEP
 SQL文
 抽象構文木
 論理実行計画
 物理実行計画 
 データ
 ARTIFACT
 🤔💭 公開情報をもとに妄想していきます

Slide 62

Slide 62 text

Copyright stable, inc. All rights reserved.
 62 F✦SIONに期待したいこと 3選

Slide 63

Slide 63 text

Copyright stable, inc. All rights reserved.
 63 F✦SIONに期待したいこと 1/3 テストのローカル実行

Slide 64

Slide 64 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 1/3 — テストのローカル実行 F✦SION搭載のDBにより、ローカルでのユニットテストが可能になる。 お金の都合に縛られない、品質ファーストな開発を目指せる! 64 dbt-core
 F✦SION
 F✦SION
 テスト実行がDWHに依存している。 テストするほどお金がかかる構造。 ユニットテストはローカルで完結する。 💰 💰 💰

Slide 65

Slide 65 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 1/3 — テストのローカル実行 F✦SION搭載のDBにより、ローカルでのユニットテストが可能になる。 お金の都合に縛られない、品質ファーストな開発を目指せる! 65 dbt-core
 F✦SION
 F✦SION
 テスト実行がDWHに依存している。 テストするほどお金がかかる構造。 ユニットテストはローカルで完結する。 データテストも、Sample Mode等で一度 データ取得すればコスト低減が見込める。 💰 💰 💰 💰

Slide 66

Slide 66 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 1/3 — テストのローカル実行 これで前述の課題が全て解決できる! 66 お金がかかる 
 開発スピード 
 - ✅ 文法チェックにDWHが必要 - ✅ 関数利用のチェックにDWHが必要 - ✅ カラムチェックにDWHが必要 - ✅ テスト実行に DWHが必要 - … - ✅ ネットワーク経由の実行速度 - ✅ CTEのデータ確認にクエリ変更が必要 - ✅カラムの由来を調べるのに、SQLを延々 と遡る羽目になる - … 💰 🐢

Slide 67

Slide 67 text

Copyright stable, inc. All rights reserved.
 67 F✦SIONに期待したいこと 2/3 SQLポータビリティ

Slide 68

Slide 68 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 2/3 — SQLポータビリティ SQL方言にとらわれず、目的に合わせたクエリエンジンが選べるようになる。 Write Once, Run Anywhereの世界線へ 🚀 68 🤔 🤔 🤔 F✦SION
 dbt-core
 F✦SION


Slide 69

Slide 69 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 2/3 — SQLのポータビリティ問題 単純な文法変換では意味の整合性を保てない。 69 🤔 🤔 🤔 select * from person order by age asc select * from person order by age asc 文法同じだ、ラッキー! 
 20 32 null 32 null 20 ≠ あれ?


Slide 70

Slide 70 text

Copyright stable, inc. All rights reserved.
 20 32 null F✦SIONに期待したいこと 2/3 — F✦SIONによるSQLポータビリティ 実行計画レベルで、意味まで捉えたSQL変換を実現できる! 70 *1 https://docs.rs/datafusion/latest/datafusion/logical_expr/struct.SortExpr.html select * from person order by age asc select * from person order by age asc nulls first 20 32 null = true true age F✦SION
 *1


Slide 71

Slide 71 text

Copyright stable, inc. All rights reserved.
 71 F✦SIONに期待したいこと 3/3 Iceberg x F✦SIONによる 真のvendor-lockinからの解放

Slide 72

Slide 72 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 3/3 — Icebergとの相乗効果 Iceberg無しでは、クエリ実行とデータが同じDWHに閉じていた。 よって、他のDWHを使うには、データ移行が必要... 72 クエリ実行
 データ
 Icebergの無い世界 密結合


Slide 73

Slide 73 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 3/3 — Icebergとの相乗効果 IcebergはDBテーブルの形式を標準化し、クエリ実行・データ層を分離させた。 目的別のDWH選択が可能になり、データ層がvendor lock-inから解放された! 73 クエリ実行
 データ
 Icebergのある世界 疎結合


Slide 74

Slide 74 text

Copyright stable, inc. All rights reserved.
 74 クエリ実行・データ層の分離 == vendor-lockinからの解放?

Slide 75

Slide 75 text

Copyright stable, inc. All rights reserved.
 75 クエリ実行・データ層の分離 == vendor-lockinからの解放? 否


Slide 76

Slide 76 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 3/3 — Icebergとの相乗効果 Icebergはデータ層を抽象化したが、クエリ’層’は抽象化していない。 つまり、横断的なDWH利用にはクエリの書き直しが必要... 76 クエリ実行
 データ
 Icebergのある世界 クエリ
 密結合
 疎結合


Slide 77

Slide 77 text

Copyright stable, inc. All rights reserved.
 F✦SIONに期待したいこと 3/3 — Icebergとの相乗効果 F✦SIONは厳密なSQL変換により、クエリ・クエリ実行層を分離する! input/outputが抽象化され、真のvendor-lockinからの解放を実現 🚀 77 クエリ実行
 データ
 F✦SIONのある世界 クエリ
 F✦SION
 疎結合
 疎結合


Slide 78

Slide 78 text

Copyright stable, inc. All rights reserved.
 78 まとめ

Slide 79

Slide 79 text

Copyright stable, inc. All rights reserved.
 F✦SION の展望まとめ 実行ステップ由来の機能には、夢がいっぱい! 79 - テストのローカル実行 
 
 - SQLポータビリティ — Write Once, Run Anywhere
 
 - Iceberg x F✦SIONによる真のvendor-lockinからの解放 
 *年内はGAを目指す開発になると思われ、これらの機能追加はあっても暫く先になりそう 
 🤩🔥

Slide 80

Slide 80 text

Copyright stable, inc. All rights reserved.
 1. はじめに 2. SQL/dbt開発の現状と課題 3. 解決策としてのdbt F✦SION engine 4. F✦SION の技術アプローチ 5. F✦SION の展望 6. F✦SION がくれたモノ 80

Slide 81

Slide 81 text

Copyright stable, inc. All rights reserved.
 Re: F✦SIONの技術アプローチ F✦SIONは、dbt-coreがDWHに依存していたSQLのコンパイル・実行機能を持つ! コンパイル中の静的解析は、Public Beta版の機能達成に大きく貢献している。 81 ⚠ コンパイルに関して、便宜上関連部分のみ抽出し、単純化して表現しています。 実行
 意味
 チェック
 文法
 チェック
 入力
 コ ン パ イ ル 
 F✦SION
 dbt-core
 STEP
 SQL文
 抽象構文木
 論理実行計画
 データ
 ARTIFACT
 静 的 解 析 
 今日の発表では、F✦SION の技術アプローチから、 今できること・将来期待できることを紹介してきました。

Slide 82

Slide 82 text

Copyright stable, inc. All rights reserved.
 82 要するに、F✦SION がSQL開発者に くれたモノとは何だろう? 🤔

Slide 83

Slide 83 text

Copyright stable, inc. All rights reserved.
 83 それはズバリ。。 😱

Slide 84

Slide 84 text

Copyright stable, inc. All rights reserved.
 F✦SION がくれたモノ ソフトウェア開発の当たり前! ソフトウェア開発 dbt-core dbt F✦SION engine ローカルでコード実行 ❌ ✅ ローカルでSQL実行 IDEの補完機能 ❌ ✅ IntelliSense ユニットテスト ⚠ DWHで実行 ✅ 無料でテスト実行 Write Once, Run Anywhere ❌ ✅ SQLポータビリティ 84

Slide 85

Slide 85 text

Copyright stable, inc. All rights reserved.
 まとめ F✦SIONはいいぞ! 85 - dbt-coreは、SQLの理解をDWHに依存していた。
 
 - dbt F✦SION engineは、SQLのコンパイル・実行機能を内包し、 静的解析を用いた開発サポートができるようになった。 
 
 - 展望として、テストのローカル実行や真の vendor-lockinからの解 放が目指せる。
 
 - ソフトウェア開発の当たり前が SQL開発にもやってきた! 
 🏎

Slide 86

Slide 86 text

Copyright stable, inc. All rights reserved.
 参考資料 1. Jeremy Cohen and Joel Labes, Path to GA: How the dbt Fusion engine rolls out from beta to production, https://docs.getdbt.com/blog/dbt-fusion-engine-path-to-ga 2. Jason Ganz and Joel Labes, The Components of the dbt Fusion engine and how they fit together, https://docs.getdbt.com/blog/dbt-fusion-engine-components 3. Tristan Handy, Where we're headed with the dbt Fusion engine, https://www.getdbt.com/blog/where-we-re-headed-with-the-dbt-fusion-engine 4. Jason Ganz, Meet the dbt Fusion Engine: the new Rust-based, industrial-grade engine for dbt, https://docs.getdbt.com/blog/dbt-fusion-engine 5. Elias DeFaria and Azzam Aijazi, The future is now: Get to know the new dbt Fusion engine and VS Code Extension, https://www.getdbt.com/blog/get-to-know-the-new-dbt-fusion-engine-and-vs-code-extension 6. Joel Labes, The Three Levels of SQL Comprehension: What they are and why you need to know about them, https://docs.getdbt.com/blog/the-levels-of-sql-comprehension 7. Dave Connors, The key technologies behind SQL Comprehension, https://docs.getdbt.com/blog/sql-comprehension-technologies 8. dbt Labs, Accelerate data workflows with the dbt Fusion engine, https://www.getdbt.com/product/fusion 9. dbt Labs, About the dbt VS Code extension, https://docs.getdbt.com/docs/about-dbt-extension 10. dbt Labs, Quickstart for the dbt Fusion engine, https://docs.getdbt.com/guides/fusion 11. dbt Labs, About the dbt Fusion engine, https://docs.getdbt.com/docs/fusion/about-fusion 12. dbt Labs, dbt-fusion, https://github.com/dbt-labs/dbt-fusion 13. t-hiroto, 【Snowflake Summit 2025】Platform Keynoteまとめ速報, https://zenn.dev/finatext/articles/db766782b40e2c 14. Docs.rs, Apache DataFusion, https://docs.rs/datafusion/latest/datafusion/index.html 86

Slide 87

Slide 87 text

Copyright stable, inc. All rights reserved.
 END ご清聴ありがとうございました! https://pitta.me/matches/loYNLznDRaqV https://x.com/myshmeh X (旧Twitter) カジュアル面談 87