---
title: 【Snowflake】Dynamic TableはTask&Streamの代わりになるのか調査（使用感、コスト）
description: Snowflakeの新機能であるDynamic Tableについての調査結果やコストに関する情報をまとめた内容を紹介します。Snowflakeのデータパイプライン構築に役立つ情報が満載です。
image: https://knowledge.insight-lab.co.jp/hubfs/SNO-SnowflakeLogo_blue2.png
---

![INSIGHT LAB](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/INSIGHT%20LAB_%E6%96%87%E5%AD%97%E3%81%AE%E3%81%BF_WHT-1.png?width=400&height=110&name=INSIGHT%20LAB_%E6%96%87%E5%AD%97%E3%81%AE%E3%81%BF_WHT-1.png)

![INSIGHT LAB](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/INSIGHT%20LAB_%E6%96%87%E5%AD%97%E3%81%AE%E3%81%BF.png?width=400&height=110&name=INSIGHT%20LAB_%E6%96%87%E5%AD%97%E3%81%AE%E3%81%BF.png)

[![お問い合わせ](https://hubspot-no-cache-na2-prod.s3.amazonaws.com/cta/default/5935783/c64a7bb0-e32a-499b-851b-b4e7a66da275.png)](https://hubspot-cta-redirect-na2-prod.s3.amazonaws.com/cta/redirect/5935783/c64a7bb0-e32a-499b-851b-b4e7a66da275)

<https://knowledge.insight-lab.co.jp/snowflake/-snowflake-dynamic-table-taskstream-replacement-investigation-usability-cost#tmpmodule_159357067471898>

- [Snowflakeとは](https://service.insight-lab.co.jp/snowflake)
- [SNOWFLAKEナレッジ](https://knowledge.insight-lab.co.jp/snowflake)
- [お役立ち資料](https://download.insight-lab.co.jp/snowflake/download)

###### 4 分で読むことができます

# [【Snowflake】Dynamic TableはTask&Streamの代わりになるのか調査（使用感、コスト）](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-dynamic-table-taskstream-replacement-investigation-usability-cost)

 執筆者 [neco](https://knowledge.insight-lab.co.jp/snowflake/author/neco) 更新日時 2024年5月28日

###### Topics: [DB](https://knowledge.insight-lab.co.jp/snowflake/tag/db)

![](https://knowledge.insight-lab.co.jp/hubfs/SNO-SnowflakeLogo_blue2.png)

 目次

## はじめに

---

これまでのSnowflakeでのデータパイプライン構築のためには、タスク、ストリームなどの複数のオブジェクトを作成する必要がありました。複数のオブジェクトがあると煩雑になり、また、オブジェクト管理をそれぞれに対して行う必要があります。

これらオブジェクトをひとまとめにしてデータパイプライン構築を簡便にする方法としてDynamic Tableが2024/04/29に一般公開となりました。タスク、ストリームを使用するデータパイプライン構築に煩雑さを感じていた著者としては、ぜひこのDynamic Tableを使ってみたいと思い、今回調査してみました。

## Dynamic Tableとは

---

[動的テーブル | Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/dynamic-tables-about)

Dynamic Tableは、指定したクエリの結果を具体化します。データ取得元テーブルが更新されれば、それを検知してDynamic Tableのデータも更新されます。

DDLの例は以下です。以下の例のDYNAMIC\_TBL\_CUSTOMERSは、一分ごとにCUSTOMERSテーブルの更新を確認し、CUSTOMERSテーブルが更新されていれば、データの更新を行います。

> CREATE OR REPLACE DYNAMIC TABLE DYNAMIC\_TBL\_CUSTOMERS  
> TARGET\_LAG = '1 minutes'  
> WAREHOUSE = DYNAMIC\_TBL\_WH  
> AS  
> SELECT \*  
> FROM CUSTOMERS  
> ;

```
 
```

### **マテリアライズドビュー**との違い

上記の説明をみると取得元テーブルが更新されると更新するマテリアライズドビューとの違いがわかりづらいですが、大きな違いとしては、マテリアライズドビューでは単一のテーブルからデータを取得するのに対し、Dynamic Tableでは複数のテーブルからデータを取得することが可能です。

マテリアライズドビューとの違いについての詳細は、以下のリンク参照。

[ストリーム、タスク、およびマテリアライズドビューと比較した動的テーブル | Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/dynamic-tables-comparison)

 

### Dynamic Tableの制約

Dynamic Tableで下記を使用するとエラーになります。

- 外部関数
- 非決定性関数（動的テーブルでサポートされる非決定性関数 にリストされているものを除く）
- 外部テーブル、ストリーム、およびマテリアライズドビューを含むソース
- 動的テーブルやその他のサポートされていないオブジェクトのビュー

[動的テーブルの作成 | Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/dynamic-tables-tasks-create#label-dynamic-tables-intro-unsupported-constructs)

 

### Dynamic Tableデータリフレッシュの方法

データのリフレッシュの方法として、「増分リフレッシュ」と「フルリフレッシュ」があります。

- 「増分リフレッシュ」は、データ取得元テーブルのデータ変更部分を用いてマージによりDynamic Tableを更新します。
- 「フルリフレッシュ」は、Dynamic Tableで指定したクエリ結果が全件更新されます。
- **指定したクエリが「増分リフレッシュ」を適用できる場合は「増分リフレッシュ」になりますが、適用できない場合は「フルリフレッシュ」になります。**
- CREATE DYNAMIC TABLE内のオプションパラメーター「REFRESH\_MODE」で「増分リフレッシュ」と「フルリフレッシュ」を指定することができますが、「増分リフレッシュ」適用できない場合は「増分リフレッシュ」を指定できません。
- 「増分リフレッシュ」、「フルリフレッシュ」どちらが適用されているかは、後述するSnowsightでのモニタリングの画面で確認できます。
- 「フルリフレッシュ」になる場合の例としては、「FROM 句外のサブクエリ」があります（著者の確認範囲では「UNION」もフルリフレッシュになりそうです）。
- 詳しくは、以下のリンク参照

[動的テーブルリフレッシュについて | Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/dynamic-tables-refresh#label-dynamic-tables-intro-refresh-queries)

 

## 使用調査結果

---

### Dynamic Tableによるデータパイプライン作成

前述のとおりCREATE DYNAMIC TABLEだけです（簡単!）。

[動的テーブルの作成 | Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/dynamic-tables-tasks-create)

 

### モニタリング&操作

Snowsightでモニタリング&操作することができます。

下図はリフレッシュの履歴です。更新時間、更新行数が確認できます。

![](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(1095)-png.png?width=1442&height=300&name=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(1095)-png.png)

上図のGraghタブを選択すると下図のようにDynamic Tableを構成するDAGが表示されます。

![](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(1098)-png.png?width=1451&height=459&name=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(1098)-png.png)

- Dynamic Tableの更新停止・起動や手動Refreshができます（ALTER DYNAMIC TABLE <name> SUSPEND; ALTER DYNAMIC TABLE <name> REFRESH; でも操作可能です）。

- Refreshモードには、更新パターン（フルリフレッシュ「Full」か増分リフレッシュ「Incremental」）が表示されます。

下図のように、クエリでもリフレッシュ履歴を確認できます。

![](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(1097)-png.png?width=1379&height=227&name=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%20(1097)-png.png)

- REFRESH\_ACTIONカラムには、データ取得元テーブルの更新がなかったことを表す「NO\_DATA」、データ取得元テーブルの更新されたことを表す「FULL」や「INCREMENTAL」が入ります。

### コスト

[動的テーブルのコストについて | Snowflake Documentation](https://docs.snowflake.com/ja/user-guide/dynamic-tables-cost)

> [仮想ウェアハウスのコンピューティング](https://docs.snowflake.com/ja/user-guide/cost-understanding-compute.html#label-virtual-warehouse-credit-usage): 動的テーブルには、ベースオブジェクトが最初に事前設定されるときや、後ほど継続的にリフレッシュされるときに、ベースオブジェクトに対してクエリを実行するための仮想ウェアハウスが必要です。

ちょっと確認してみました。

更新のないテーブルを取得元とするDynamic Table（TARGET\_LAGは1分）をInformation Schemaのテーブル関数warehouse\_metering\_historyで確認したところ、テーブル作成時に*ウェアハウス*を使用しましたが、その後は、クラウドサービスのクレジットを消費していました（注：2023/10時点調査）。

![](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/warehouse_mat-png.png?width=1081&height=103&name=warehouse_mat-png.png)

クラウドサービス使用時のコストは以下のようになっています。

> クラウドサービスのコンピューティングコストには、日次クラウドサービスコストがアカウントの日次ウェアハウスコストの10%より大きい場合にのみ、Snowflakeによって請求されるという制約が適用されます。

更新が稀なDynamic Tableではクラウドサービスのコストがかかる可能性も出てくるため、取得元テーブルの個数やテーブルデータの大きさごとにクラウドサービスのコストについて調査してみました。その結果、取得元テーブルの個数、テーブルの行数、列数を変化させても、クラウドサービスのクレジットに大きな変化ありませんでした（TARGET\_LAG1分を1時間起動で0.004クレジット程度）。

気になるのは更新の際のクレジットということ、調査しました。

結論としては、**ウェアハウス利用のためのクレジットは、通常のクエリと同様にDDLで指定したウェアハウスのサイズと時間に依存します**。（ドキュメントのどこにも追加料金かかるとは書かれていないので、あたり前かもしれません。）

↓の画像は、XSのウェアハウスを指定して1分以内で終わる更新を1回実行した結果です（注：2023/10時点調査）。「credits\_used\_compute」カラムが使われたクレジットです。

![](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/Untitled-png-May-27-2024-12-55-04-0034-AM.png?width=1041&height=75&name=Untitled-png-May-27-2024-12-55-04-0034-AM.png)

2024/05時点では、サーバーレスタスクのような実行時間きっちりで課金されるようには指定はできないので、1回の更新では最低でも1分間分の料金が発生するようです。

参考：ウェアハウス、実行時間ごとのクレジット

| 実行時間 | クレジット （XS） | クレジット （XL） | クレジット （5XL） |
| --- | --- | --- | --- |
| 0～60秒間 | 0.017 | 0.267 | 4.268 |
| 61秒間 | 0.017 | 0.271 | 4.336 |
| 2分間 | 0.033 | 0.533 | 8.532 |
| 10分間 | 0.167 | 2.667 | 42.668 |
| 1時間 | 1.000 | 16.000 | 256.000 |

※サーバーレスタスクのクレジットは「[Snowflakeサービス利用テーブル](https://www.snowflake.com/legal-files/CreditConsumptionTable.pdf)」参照。

## おわりに

---

Dynamic Tableについて調査しました。

Dynamic Tableを使うメリットとしては以下が考えられます。

- マテビューではできない複数のテーブルからのデータ取得が可能
- タスク、プロシージャ、ストリーム、テーブルのオブジェクトをまとめられる
- Snowsightによりモニタリングや操作（起動・停止・手動リフレッシュ）がしやすい

Dynamic Table用のSnowsightの機能が充実しているため、今後も機能追加や性能向上が期待されます!

Snowflakeを体験してみませんか？

INSIGHT LABではSnowflake紹介セミナーを定期開催しています。Snowflakeの製品紹介だけでなく、デモンストレーションを通してSnowflakeのシンプルなUI操作や処理パフォーマンスの高さを体感いただけます。

[![詳細はこちら](https://hubspot-no-cache-na2-prod.s3.amazonaws.com/cta/default/5935783/0d0b0d86-fdb7-4351-ab14-d482c854defc.png)](https://hubspot-cta-redirect-na2-prod.s3.amazonaws.com/cta/redirect/5935783/0d0b0d86-fdb7-4351-ab14-d482c854defc)

- [Tweet](https://twitter.com/share)

![neco](https://app.hubspot.com/settings/avatar/d41d8cd98f00b204e9800998ecf8427e)

#### 執筆者 [neco](https://knowledge.insight-lab.co.jp/snowflake/author/neco)

###### [前の投稿](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-rag-prototype)

[![](https://knowledge.insight-lab.co.jp/hubfs/architecture-3.png)](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-rag-prototype)

###### [【Snowflake】SQLと標準関数のみでRAGシステムをサクッと構築（プロトタイプ編）](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-rag-prototype)

###### [次の投稿](https://knowledge.insight-lab.co.jp/snowflake/seminar_zakkuri_snowflake)

[![](https://knowledge.insight-lab.co.jp/hubfs/%E3%83%87%E3%83%BC%E3%82%BF%E6%B4%BB%E7%94%A8%E5%85%A5%E9%96%80.png)](https://knowledge.insight-lab.co.jp/snowflake/seminar_zakkuri_snowflake)

###### [【データウェアハウスってなに？】 Snowflakeではじめるデータ活用入門](https://knowledge.insight-lab.co.jp/snowflake/seminar_zakkuri_snowflake)

RECOMMEND こちらの記事も人気です。

<https://knowledge.insight-lab.co.jp/snowflake/pricing>

###### 4 分で読むことができます。

##### [Snowflakeの料金体系｜クレジットと費用最適化のポイントをご紹介](https://knowledge.insight-lab.co.jp/snowflake/pricing)

###### 2021年 6月 28日

<https://knowledge.insight-lab.co.jp/snowflake/dbt-data-pipeline>

###### 12 分で読むことができます。

##### [【Snowflake×dbt】データパイプライン構築](https://knowledge.insight-lab.co.jp/snowflake/dbt-data-pipeline)

###### 2022年 6月 17日

<https://knowledge.insight-lab.co.jp/snowflake/snowflake-vs-treasuredata>

###### 5 分で読むことができます。

##### [【禁断の比較？】SnowflakeとTreasure Dataを比べてみました](https://knowledge.insight-lab.co.jp/snowflake/snowflake-vs-treasuredata)

###### 2021年 5月 24日

<https://knowledge.insight-lab.co.jp/snowflake/snowsight-executive-dashboard>

###### 1 分で読むことができます。

##### [Snowsightでどこまでできるか！？限界に挑戦！](https://knowledge.insight-lab.co.jp/snowflake/snowsight-executive-dashboard)

###### 2023年 12月 14日

<https://knowledge.insight-lab.co.jp/snowflake/-snowflake-streamlit-in-snowflake-introduce>

###### 5 分で読むことができます。

##### [【Snowflake】新機能「Streamlit in Snowflake」とは何者か！？](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-streamlit-in-snowflake-introduce)

###### 2023年 9月 21日

<https://knowledge.insight-lab.co.jp/snowflake/-snowflake-rag-prototype>

###### 11 分で読むことができます。

##### [【Snowflake】SQLと標準関数のみでRAGシステムをサクッと構築（プロトタイプ編）](https://knowledge.insight-lab.co.jp/snowflake/-snowflake-rag-prototype)

###### 2024年 5月 28日

##### 運営会社

運営会社

- [会社概要](https://insight-lab.co.jp/about/)
- [お問い合わせ](https://contact.insight-lab.co.jp/main)

##### メニュー

メニュー

- [Snowflakeとは](https://service.insight-lab.co.jp/snowflake)
- [Snowflakeナレッジ](https://knowledge.insight-lab.co.jp/snowflake)
- [お役立ち資料](https://download.insight-lab.co.jp/snowflake/download)

[![INSIGHT LAB](https://knowledge.insight-lab.co.jp/hs-fs/hubfs/INSIGHT%20LAB_%E6%96%87%E5%AD%97%E3%81%AE%E3%81%BF_WHT-1.png?width=200&height=55&name=INSIGHT%20LAB_%E6%96%87%E5%AD%97%E3%81%AE%E3%81%BF_WHT-1.png "INSIGHT LAB")](https://www.insight-lab.co.jp/)

- [プライバシーポリシー](https://www.insight-lab.co.jp/privacy.html)

Copyright © 2020 INSIGHT LAB, Inc.

<https://twitter.com/INSIGHTLAB_INC><https://www.youtube.com/channel/UCOKNKiO4uuza4NioSZpBMhg>