データ基盤
Snowflake Dynamic Tablesとは?SELECTだけで結果の表を最新に保つ
シリーズSnowflake 入門全13回
- 第1回Snowflakeとは?仕組み・料金・使い方をわかりやすく解説
- 第2回Snowflakeのウェアハウスとは?サイズとクレジット・自動停止
- 第3回Snowflakeの料金の仕組みとは?計算・保存・転送とコスト管理
- 第4回Snowflake マイクロパーティションとは?プルーニングとクラスタリング
- 第5回Snowflake VARIANTとは?JSONを扱う半構造化データの仕組み
- 第6回Snowflake Time Travel(タイムトラベル)とは?保持期間と復元
- 第7回Snowflake レプリケーションとは?別リージョンに複製して切り替える
- 第8回Snowflake ロールとは?権限をロールに与えて階層で渡す仕組み
- 第9回Snowflake Dynamic Tablesとは?SELECTだけで結果の表を最新に保つ
- 第10回Snowflake データ共有とは?コピーせずに取引先と同じ表を使う
- 第11回Snowflake Icebergテーブルとは?同じデータを他のエンジンでも読む
- 第12回Snowflake Cortexとは?データを外に出さずにSQLでAIを使う
- 第13回Snowflake Well-Architectedとは?5つの柱で自分の判断を見直す
- Dynamic Tables
- Snowflake
- ターゲットラグ
- TARGET_LAG
- Streams
- Tasks
- COPY INTO
- Snowpipe
- 増分リフレッシュ
- ステージ
- Snowpipe Streaming
- パイプライン
- REFRESH_MODE
- マテリアライズドビュー
- dbt
- Openflow
- タスクグラフ
- データ基盤
目次
データ基盤では、取り込んだ生のデータを、そのまま使うことは少ない。不要な行を除き、別の表と結合し、日ごとに集計した表を作る。この変換を、データが入るたびに回し続ける仕組みを、パイプラインという。
ふつうは、変わった行を追いかけ、MERGE で結果の表を更新する処理を書き、それを決まった時刻に動かす。Snowflake では、この変換を SELECT 一つで書き、更新を Snowflake に任せる表を Dynamic Tables という1。
Snowflake の Dynamic Tables とは何で、取り込んだデータの変換を、誰がどう回し続けるのか。
Dynamic Tables は、SELECT の結果を表として持ち、利用者が決めたターゲットラグ(データがどれだけ古くてよいかの目標)を超えないよう、Snowflake が自動で更新し続ける表である。利用者は、結合や集計を重ねた変換も、SELECT だけで回せる。
利用者は、元の表の行が足されても、書き換わっても、消されても、結果をそのとおりに保つ処理を書かなくてよい。表の変更を記録する Streams と、決まった間隔で処理を動かす Tasks を利用者が組み合わせる方法では、その処理を MERGE で書き分ける23。Snowflake は、結合や集計を含む新しいパイプラインには Dynamic Tables を勧めている。
注文が後から変わったとき、売上の表はどうなるか
Dynamic Tables の便利さは、元の表がどう変わっても、結果の表を定義どおりに保つ処理を、利用者が書かなくてよいことにある。注文が後から返品に変わった場面で、Streams と Tasks と比べる。注文のデータは、Snowflake の Dynamic Tables の作り方のページにある例を使う4。
注文の表 raw_orders に、次の 5 件が入っているとする。顧客の表 dim_customers には、顧客ごとの地域と区分が入っていて、顧客 1 は US-West の Enterprise、顧客 2 は US-East の Mid-Market、顧客 3 は EU-West の Startup である4。
注文 顧客 日付 数量 単価 状態
1001 1 2025-01-15 3 29.99 completed
1002 2 2025-01-15 1 49.99 completed
1003 1 2025-01-15 2 29.99 pending
1004 3 2025-01-16 5 12.50 completed
1005 2 2025-01-16 1 49.99 returned
作りたいのは、返品を除いて、日と、顧客の地域と区分ごとに、注文の数と売上(数量×単価の合計)を集めた売上の表である。今の注文からは、次の 3 行になる4。
日付 地域 区分 注文の数 売上
2025-01-15 US-East Mid-Market 1 49.99
2025-01-15 US-West Enterprise 2 149.95
2025-01-16 EU-West Startup 1 62.50
1 月 15 日の US-West は、顧客 1 の注文 1001 と 1003 で、 になる。返品の 1005 は数えない。
Dynamic Tables で書くもの: 売上の表を Dynamic Tables(名前は daily_sales)として作り、その中身を SELECT で書く。データがどれだけ古くてよいかの目標(ターゲットラグ)は 30 分、更新に使うウェアハウス(問い合わせを動かす計算の単位)は transform_wh とする1。公式の例はこの変換を二つの Dynamic Tables に分けて書いているが、ここでは一つの SELECT にまとめた。更新の方法は、その例と同じく、変わった分だけを計算する INCREMENTAL を REFRESH_MODE で明示する4。
CREATE OR ALTER DYNAMIC TABLE daily_sales
TARGET_LAG = '30 minutes'
WAREHOUSE = transform_wh
REFRESH_MODE = INCREMENTAL
AS
SELECT o.order_date::DATE AS order_day,
c.region, c.segment,
COUNT(*) AS order_count,
SUM(o.quantity * o.unit_price) AS daily_revenue
FROM raw_orders o
JOIN dim_customers c ON o.customer_id = c.customer_id
WHERE o.order_status != 'returned'
GROUP BY ALL;
注文 1003 が返品に変わる: たとえば、保留中だった注文 1003 が、後から returned に変わったとする(ここからは、定義から考えた例である)。売上の表の 1 月 15 日の US-West は、注文の数が 2 から 1 に、売上が 149.95 から 89.97 に変わるべきである。
Streams と Tasks で保っていると、次のように動く。ストリームは、行の書き換えを、古い行を消す記録と新しい行を足す記録の組として返す2。
- 注文の表ストリーム1. 1003 が pending から returned に書き換わったと記録する
- タスクストリーム2. 前に読んだところから後の変更はあるか
- ストリームタスク3. 1003 の古い行(消す)と新しい行(足す)を返す
- タスク売上の表4. 利用者が書いた MERGE で、1 月 15 日の US-West から 1 件と 59.98 を引く
図の 4 の「引く」処理は、利用者が MERGE に書いておく必要がある。注文が足されたときに足す処理しか書いていなければ、売上の表は 2 件・149.95 のままで、注文の表と合わなくなる。返品のほかに、数量や単価の修正、注文の取り消しにも、それぞれ処理を書く。
Dynamic Tables で保っていると、次のように動く。
- Snowflake1. ターゲットラグの 30 分を超えないうちに、確かめに行く
- Snowflake注文の表2. 前の更新から変わった注文はあるか
- 注文の表Snowflake3. 1003 が returned に変わった
- Snowflake4. 変わった 1003 の分だけ計算し直し、返品なので数えない
- Snowflake売上の表5. 1 月 15 日の US-West を 1 件・89.97 にする
利用者が書いたのは、最初の一文(SELECT と、ターゲットラグ、ウェアハウス、更新の方法)だけである。SELECT に「返品を除く」と書いてあるので、注文が後から返品に変わっても、売上の表はそのとおりになる。いつ確かめるかは、ターゲットラグの 30 分を超えないよう Snowflake が決める5。更新の方法に INCREMENTAL を指定してあるので、Snowflake は 5 件の注文をすべて数え直すのではなく、変わった 1003 の分だけを計算して売上の表に反映する。これを増分リフレッシュという6。
まとめると、Dynamic Tables では、次の三つを書かなくてよくなる7。
- 元の表の変更を記録するストリーム
- 決まった間隔で処理を動かすタスク
- 足す・引く・書き換えるの場合を書き分ける MERGE
Snowflake は、Streams と Tasks で作るストリーム、売上の表のような結果の表、タスクと MERGE の処理を、Dynamic Tables なら SELECT 一つの定義で置き換えられるとしている。元の注文の表は、どちらでも作る7。
Dynamic Tables とは:SELECT とターゲットラグ
Dynamic Tables は、SELECT の結果を表として持ち、最新に保つ。利用者は SELECT とターゲットラグを決め、Snowflake が依存関係を把握して更新する1。
- 更新の結果は一度に入れ替わるので、読む人が更新の途中を見ることはない1。
- Snowflake は依存の順に更新するので、後ろの段は、前の段の食い違いのない状態を見る1。依存を宣言したり、実行の順を書いたりする必要はない1。Dynamic Tables は、別の Dynamic Tables を元にして段を重ねることもできる。後ろの段のターゲットラグは、前の段と同じかそれより長くする4。
ターゲットラグ: ターゲットラグは、更新の間隔ではなく、データがどれだけ古くてよいかの目標である。10 分なら「10 分ごとに更新する」ではなく、「データが 10 分より古くならないようにする」という意味である5。
- 最短は 60 秒で、それより短い値は通らない5。
- 保証ではない。更新が長引けば、実際の遅れは目標を超える1。アプリは、データがいつも目標の内にあると考えてはいけない5。
- 遅れは、すぐ前の段ではなく、いちばん元の表から測る5。
TARGET_LAG = DOWNSTREAMにすると、自分のスケジュールを持たず、後ろの段に合わせて更新する。後ろの段が無いと、自動では更新されず、Snowflake は警告も出さない5。
Snowflake の技術者らは、2025 年の論文で、この考え方を説明している。ビューは、読むたびに SELECT を動かして結果を返す。Dynamic Tables の中身は、そのビューを過去のある時点で読んだ結果と同じになる。その時点と今との差が遅れである8。論文によれば、多くの実用の場面は数秒から数十分の遅れで足り、Dynamic Tables は数秒から数時間の処理の遅れを想定して作られている8。ただし、今のドキュメントでは、ターゲットラグの最短は 60 秒である5。
更新の方法:変わった分だけか、全部か
Dynamic Tables の更新(リフレッシュ)には、増分とフルの二つのやり方がある。後で述べる AUTO と ADAPTIVE は、どちらで動かすかを Snowflake に選ばせる指定である6。
- 増分リフレッシュ(INCREMENTAL): 前の更新から変わったデータだけを調べて、結果に反映する。
- フルリフレッシュ(FULL): SELECT を元の表の今の状態で全部やり直し、結果を入れ替える。
REFRESH_MODE を書かないと AUTO になり、作るときに Snowflake が増分か全部かを選ぶ4。2026 年 7 月には、増分を基本にしつつ、変わった量が多いときは作り直す ADAPTIVE が一般提供になった。Snowflake は、増分で回す処理には ADAPTIVE を勧め、本番では AUTO に任せずに方法を明示するよう書いている96。AUTO が ADAPTIVE を選ぶことはない6。
増分リフレッシュに向かない書き方もある。EXCEPT や INTERSECT、FROM の外の副問い合わせ(WHERE EXISTS など)を含むと、増分では作れない10。INCREMENTAL を指定していれば作成が失敗し、AUTO なら全部の更新になる10。どちらになったかは、SHOW DYNAMIC TABLES の refresh_mode と refresh_mode_reason で確かめる4。作った後に ALTER で方法を変えることはできず、変えるには CREATE OR ALTER か CREATE OR REPLACE で作り直す6。
費用:更新のウェアハウスと、変更の確かめ
Dynamic Tables には、更新を動かすウェアハウスが要る11。費用は次のように出る12。
- 更新の計算: 元の表に変化があると、ウェアハウスが動いて更新する。絞り込みの結果、出力の行が無くても動く。
- 変化の確かめ: 更新のたびに、元の表が変わったかをメタデータで確かめる。この確かめはクラウドサービスの計算で、変化が無い回にも動く。変化が無ければ、ウェアハウスは止まったままで、ウェアハウスのクレジットはかからない。クラウドサービスの料金は、アカウント全体で、その日のウェアハウスのクレジットの 10% を超えた分だけ請求される。
- 保存: 更新が多いと、Time Travel の履歴が増える。
更新の記録は、関数 DYNAMIC_TABLE_REFRESH_HISTORY で 7 日分を見られる13。元の表に変化が無かった更新は NO_DATA と記録される14。
Streams と Tasks、マテリアライズドビューとの使い分け
Dynamic Tables より前から、Snowflake には変換を回す仕組みとして Streams と Tasks がある。
- Streams: 表の変更を記録するオブジェクトである。データそのものは持たず、前に読んだ位置(オフセット)から今までの変更を返す2。
- Tasks: SQL(Structured Query Language)の文を決まった時刻に、またはストリームにデータが来たときに動かすオブジェクトである3。
Snowflake の使い分けの指針は、次のとおりである7。
- Dynamic Tables: 結合、集計、ウィンドウ関数を含む、新しい複数の表のパイプラインに勧める。
- Streams と Tasks: ストアドプロシージャ、MERGE、外部の関数の呼び出し、独自のやり直しの処理、CRON のスケジュールが要るときに使う。1 分より新しいデータを独自の処理で作りたいときも、こちらを使う。
- マテリアライズドビュー: 問い合わせの結果をあらかじめ計算して持っておくビューで、パイプラインを作るためではなく、読む速さを上げたいときに使う。元の表は一つだけで、元の表への問い合わせを Snowflake が自動でこのビューを使う形に書き換え、中身はいつも最新である。遅れの無いデータが要るときも、Snowflake はこれを勧めている。
Dynamic Tables には、次の制限がある7。
- 定義の中で、ストアドプロシージャ、外部の関数、タスクを呼べない。SELECT で書く定義には MERGE を使えない。
- 元の表に、ストリーム、外部テーブル、マテリアライズドビューなどは使えない。
- 定義を変えると、作り直し(全部の処理のやり直し)になる。
- 今の状態を表すもので、変更の履歴を残す表には向かない。
- 一つのアカウントに置けるのは 50,000 まで。
ただし、更新の方法を CUSTOM_INCREMENTAL にすると、更新の処理を MERGE か INSERT で書ける6。Snowflake は、一文の MERGE か INSERT で書いた Streams と Tasks の処理は、SELECT に書き直さずにこの方法へそのまま移せるとしている15。
Dynamic Tables は読み取り専用で、INSERT や DELETE はできない7。例外として、2026 年 7 月に、定義で更新の対象から外すと決めた範囲(凍結された範囲)の行に限って、INSERT、UPDATE、MERGE、DELETE ができる機能が一般提供になった16。
Streams の動き: ストリームのオフセットは、SELECT で読むだけでは進まず、INSERT のような DML(Data Manipulation Language)の文の中で読むと進む2。METADATA$ACTION の列が INSERT か DELETE かを示し、更新は DELETE と INSERT の組として、METADATA$ISUPDATE を TRUE にして表す2。オフセットが元の表のデータ保持期間の外に出ると、ストリームは古くなって使えず、作り直す2。保持期間が 14 日より短い表では、読まれていないストリームのために、既定で最大 14 日まで保持期間が延び、その分の保存の料金がかかる2。
Tasks の動き: タスクは止まった状態で作られ、ALTER TASK … RESUME で動き出す3。Snowflake が計算資源を用意するサーバーレスと、自分のウェアハウスを使う方式を選べる3。複数のタスクは、起点となるルートタスクと子タスクからなるタスクグラフでつなげる17。ストリームに変更が来たときだけ動くタスクも作れる18。
変換の前:データを取り込む
変換の元になるデータは、まず Snowflake の表に入れる。Snowflake は、クラウドストレージにあるデータファイルを置く場所を、ステージという19。
- 外部ステージ: Amazon S3 などのクラウドストレージの URL(Uniform Resource Locator)と、つなぐための設定を持つ19。
- 内部ステージ: Snowflake の中のステージで、ユーザーごと、表ごと、名前を付けたものの三種類がある。手元のファイルは PUT で上げる19。
COPY INTO も Snowpipe も、読み込みながら結合や集計はできない。生のデータを表に入れてから、Dynamic Tables か Streams と Tasks で変換する20。
COPY INTO: ステージのファイルを表に読み込む命令である。まとめて読み込むとき(一括ロード)は、利用者が用意したウェアハウスで動く19。
- 読み込んだファイルの記録を、表のメタデータに 64 日持ち、同じファイルをもう一度読み込まない21。読み込み直すには、FORCE = TRUE を付けるか、ファイルを変えて置き直す22。
- 一括ロードでは、既定で、誤りが一つでもあれば読み込みを止める(ABORT_STATEMENT)22。
- Snowflake は、ファイルを並列に読み込めるよう、圧縮した大きさで 100〜250 MB かそれより大きいファイルにするよう勧めている。100 GB 以上のような大きなファイルは勧めていない23。
Snowpipe: ファイルが届くたびに、決めた COPY INTO を自動で動かす仕組みである。Snowflake が用意する計算資源で動き、クラウドストレージからの到着の知らせか、REST(Representational State Transfer)の API(Application Programming Interface)の呼び出しで、新しいファイルを知る20。
- 新しいファイルは、ふつう知らせを受けてから 1 分ほどで読み込まれるが、保証はない20。
- 読み込んだファイルの記録は、パイプごとに 14 日分である。COPY INTO と記録は別なので、同じファイルを両方で読み込まないようにする20。
- 料金は、読み込んだデータ 1 GB あたり決まったクレジットで、ウェアハウスの時間やファイルの数では決まらない20。CSV(Comma-Separated Values)や JSON(JavaScript Object Notation)のようなテキストのファイルは圧縮前の大きさで数え、Parquet などは保存した大きさで数える20。Standard と Enterprise のアカウントがこの方式になったのは 2025 年 12 月である24。
Snowpipe Streaming: ファイルではなく、行を SDK(Software Development Kit)や API で直接表に書き込む仕組みである19。遅れは短ければ 5 秒ほどである20。数秒で要るデータが行やイベントとして届くなら、こちらを使う20。
データベースや SaaS(Software as a Service)のアプリから直接取り込むなら、Snowflake のデータ連携のサービス Openflow のコネクタを使う2025。
dbt と運用
SQL の変換を定義し、テストし、デプロイするオープンソースの枠組みを dbt(dbt Core)といい26、ワークフローをプログラムで書き、スケジュールし、見張るプラットフォームを Airflow という27。Snowflake は、更新をこうした外のツールから動かす使い方も書いている1。dbt の Snowflake 用のアダプターは、Dynamic Tables を作れる28。dbt v1.12 以降では、scheduler と target_lag の両方を書かずに作ると SCHEDULER が DISABLE になり、Snowflake の自動の更新は動かず、dbt の実行が更新する。target_lag を書けば、Snowflake が自動で更新する28。Snowflake には、dbt のプロジェクトを Snowflake の中で動かし、タスクでスケジュールを組める dbt Projects on Snowflake もある26。
Snowflake の Well-Architected Framework は、オペレーショナルエクセレンスの柱で、パイプラインを含むすべての構成をコードとして管理し、自動のテストで本番での不具合の再発を防ぐよう勧めている29。データの取り込みは、COPY_HISTORY などのビューで、遅れと状態を見張るよう書いている29。
出典29件
-
Snowflake「Dynamic tables | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/overview ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Snowflake「Introduction to streams | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/streams-intro ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Snowflake「Introduction to tasks | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/tasks-intro ↩ ↩2 ↩3 ↩4
-
Snowflake「Create a dynamic table | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/create — 注文の表と、二段の Dynamic Tables の例と結果。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Snowflake「Set the target lag for a dynamic table | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/target-lag — ターゲットラグは保証ではない。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
-
Snowflake「Dynamic table refresh modes | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/refresh-modes ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Snowflake「Decision guide for dynamic tables | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/decision-guide — Dynamic Tables、Streams と Tasks、マテリアライズドビューの使い分けと制限。 ↩ ↩2 ↩3 ↩4 ↩5
-
Daniel Sotolongo ほか「Streaming Democratized: Ease Across the Latency Spectrum with Delayed View Semantics and Snowflake Dynamic Tables」SIGMOD-Companion 2025. https://arxiv.org/abs/2504.10438 ↩ ↩2
-
Snowflake「Jul 30, 2026: Adaptive refresh mode for dynamic tables (General availability) | Snowflake Documentation」2026年7月30日、2026年10月29日取得. https://docs.snowflake.com/en/release-notes/2026/other/2026-07-30-dynamic-tables-adaptive-refresh-mode-ga ↩
-
Snowflake「Supported queries for dynamic tables | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/supported-queries ↩ ↩2
-
Snowflake「Choose and size warehouses for dynamic tables | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/warehouse-selection ↩
-
Snowflake「Understanding costs for dynamic tables | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/cost ↩
-
Snowflake「Monitor dynamic tables | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/monitoring ↩
-
Snowflake「DYNAMIC_TABLE_REFRESH_HISTORY | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/sql-reference/functions/dynamic_table_refresh_history ↩
-
Snowflake「Custom incrementalization | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/dynamic-tables/custom-incrementalization ↩
-
Snowflake「July 20, 2026: DML into frozen regions of dynamic tables (General availability) | Snowflake Documentation」2026年7月20日、2026年10月29日取得. https://docs.snowflake.com/en/release-notes/2026/other/2026-07-20-dynamic-tables-dml-frozen-regions ↩
-
Snowflake「Create a sequence of tasks with a task graph | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/tasks-graphs ↩
-
Snowflake「Triggered tasks | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/tasks-triggered ↩
-
Snowflake「Overview of data loading | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-load-overview ↩ ↩2 ↩3 ↩4 ↩5
-
Snowflake「Snowpipe | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro — 読み込みの遅れは保証しない。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9
-
Snowflake「Loading data | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-load-considerations-load ↩
-
Snowflake「COPY INTO <table> | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/sql-reference/sql/copy-into-table ↩ ↩2
-
Snowflake「Preparing your data files | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-load-considerations-prepare ↩
-
Snowflake「Snowpipe costs | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-load-snowpipe-billing ↩
-
Snowflake「About Openflow | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-integration/openflow/about ↩
-
Snowflake「dbt Projects on Snowflake | Snowflake Documentation」日付なし、2026年10月29日取得. https://docs.snowflake.com/en/user-guide/data-engineering/dbt-projects-on-snowflake ↩ ↩2
-
Apache Software Foundation「Apache Airflow」日付なし、2026年10月30日取得. https://airflow.apache.org/ ↩
-
dbt Labs「Snowflake configurations | dbt Developer Hub」日付なし、2026年10月29日取得. https://docs.getdbt.com/reference/resource-configs/snowflake-configs ↩ ↩2
-
Snowflake「Operational Excellence」Snowflake Well-Architected Framework、2026年6月17日更新、2026年10月29日取得. https://www.snowflake.com/en/developers/guides/well-architected-framework-operational-excellence/ ↩ ↩2
この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。