動的テーブルの既知の制限

このトピックでは、次の動的テーブル機能の制限について説明します。

一般的な制限

動的テーブルの使用には、次の一般的な制限が適用されます。

  • 1つのアカウントは最大1000個の動的テーブルを保持できます。

  • 動的テーブルの定義:

    • 100個を超えるテーブルをクエリすることはできません。

    • 10個を超える動的テーブルをクエリすることはできません。

    • 10個を超える動的テーブルを連結して DAG を作成することはできません。

  • 動的テーブルからデータを切り捨てることはできません。

  • 一時的または仮の動的テーブルを作成することはできません。

  • 動的テーブルを使用して 共有データをインジェストする 場合、クエリは共有動的テーブルまたは上流の動的テーブルを参照する共有セキュアビューから選択できません。

  • 動的テーブルのリフレッシュが所有者ロールとして動作するため、動的テーブルではセカンダリロールを使用できません。詳細については、 施行モデル: プライマリロールおよびセカンダリロール をご参照ください。

クエリコンストラクトの制限

現在、動的テーブルのクエリでは以下のコンストラクトはサポートされていません。クエリでこれらを指定すると、エラーが発生します。

  • 外部関数

  • CURRENT_USER に依存する関数。動的テーブルのリフレッシュは、特別な SYSTEM ユーザーの所有者ロールとして機能します。

  • ディレクトリテーブル、Icebergテーブル、外部テーブル、ストリーム、マテリアライズドビューを含むソース。

  • 動的テーブルやその他のサポートされていないオブジェクトのビュー。

  • UDFs で記述されたユーザー定義関数(UDTFs および SQL)。

機能間の相互作用のサポート

次の機能間の相互作用はサポートされていません。

  • 動的テーブルにクラスタリングキーを設定する。

  • 動的テーブルでの検索最適化を可能にする。

  • Query Acceleration Service(QAS)を使用して、動的テーブルのリフレッシュを実行する。

  • 管理アクセススキーマで動的テーブルを使用する。

機能間の相互作用には、次の制限が適用されます。

  • 動的テーブルとベーステーブルが異なるフェールオーバーグループにあると、複製に失敗します。

増分リフレッシュのサポート

このセクションでは、 動的テーブル増分リフレッシュ で現在サポートされていない式、句、関数について説明します。クエリでこれらを使用すると、自動リフレッシュプロセスでフルリフレッシュが使用され、より多くのクレジットが消費される可能性があります。 増分リフレッシュまたはフルリフレッシュのいずれが使用されているかの判断 をご参照ください。

増分リフレッシュでは非決定性関数はサポートされていませんが、 フルリフレッシュでは一部の非決定性関数はサポートされています

サポートされていないコンストラクト、演算子、関数

動的テーブルは現在、一部のコンストラクト、演算子、関数の増分リフレッシュをサポートしていません。クエリで次のように指定すると、動的テーブルはフルリフレッシュによって更新されます。

  • PIVOT.

  • UNPIVOT.

  • 集合演算子:

    • UNION、 MINUS、 EXCEPT、 INTERSECT。

  • UNION [ ALL ] の次の使用:

    • テーブルの UNION ALL とそれ自身、またはそれ自身のクローン。

    • 2つの GROUP BYs の UNION ALL。

  • ラテラル結合.

  • 次の 外部結合 (左、右、またはフル)パターン:

    • 両側が同じテーブルである外部結合。

    • 両側が GROUP BY 句を持つサブクエリである外部結合。

    • 等値でない述語を使用した外部結合。

  • ウィンドウ関数 の次の使い方:

    • 同一 SELECT ブロック内に、非同一 PARTITION BY 句を持つ複数のウィンドウ関数。

    • ウィンドウ関数 PERCENT_RANK、 DENSE_RANK、 RANK をスライディングウィンドウで使用する。

    • 非決定性関数なので ANY を使用する。

  • ユーザー定義表関数(UDTF)。

増分リフレッシュの追加制限

ユーザ定義関数(UDF): 増分リフレッシュを使用する動的テーブルで使用中に IMMUTABLE UDF を置き換えると、そのテーブルで予期しない動作が発生する可能性があります。VOLATILE UDFs は増分リフレッシュではサポートされていません。

マスキングと行アクセスポリシー: 動的テーブルでは、マスキングポリシーまたは行アクセスポリシーを持つソースの増分リフレッシュは現在サポートされていません。基礎となるテーブルがポリシーによって保護されている場合、動的テーブルはフルリフレッシュを使用します。

複製: 増分リフレッシュで 複製された動的テーブル は、フェールオーバー後に再初期化してから増分リフレッシュを再開します。

クローニング: 場合によっては、 クローンされた増分動的テーブル は、作成後の最初のリフレッシュ時に再初期化が必要になることがあります。