ハイブリッド・テーブルの制限とサポートされていない機能

制限 および サポートされていない機能 に関する以下のガイダンスは、ハイブリッド・テーブルに適用され、変更される場合があります。

両セクションを必ずお読みください。

注釈

ご不明な点がございましたら、アカウントチームまでお問い合わせください。

制限事項

クラウドとリージョン

ハイブリッドテーブルは、すべてのAmazon Web Services(AWS)と Microsoft Azure リージョン で一般提供されています。

以下の制限にご注意ください。

  • ハイブリッドテーブルは Google Cloud では使用できません。

  • ハイブリッドテーブルは 米国SnowGov リージョン では使用できません。

  • ハイブリッドテーブルはトライアルアカウントではサポートされていません。

  • Virtual Private Snowflake(VPS)をご利用の場合は、 Snowflake サポート に連絡して、アカウントのハイブリッドテーブルの有効化についてお問い合わせください。

照合

ハイブリッドテーブルでは、照合はインデックスが作成されていない文字列型の列でのみサポートされます。PRIMARY KEY 列やその他のインデックス付き列では、COLLATE 句は使用できません。アカウント、データベース、またはスキーマのハイブリッドテーブルに DEFAULT_DDL_COLLATION パラメーターが設定されている場合、パラメーターはインデックス付き列では無視されます。

詳細については、 ハイブリッドテーブル列の照合順序 および 照合順序の制御 をご参照ください。

一貫性

デフォルトでは、ハイブリッドテーブルはセッションベースの一貫性モデルを使用し、セッション内の読み取り操作が同じセッション内の書き込み操作からの最新データを返します。セッション外で行われた変更については、一部の停滞(100ミリ秒未満)が発生する可能性があります。停滞を回避するためには、ステートメントレベルまたはセッションレベルで READ_LATEST_WRITES = true を設定します。これにより、数ミリ秒の遅延オーバーヘッドが発生する可能性があることに注意してください。

制約

PRIMARY、 KEY、 UNIQUE、および FOREIGN KEY 制約がハイブリッドテーブルに強制されますが、いくつかの制限が適用されます。詳細については、 ハイブリッドテーブルの制約 をご参照ください。

COPY

COPY INTO コマンドでハイブリッドテーブルをロードする場合、 ABORT_STATEMENTON_ERROR に対してサポートされている唯一のオプションです。ON_ERROR=SKIP_FILE を設定するとエラーが返されます。詳細については、 データのロード をご参照ください。

データサイズ

2つのSnowflakeデータベースにつきハイブリッドテーブルに格納できるデータは1 TB に制限されています。詳細については、 クォータとスロットリング をご参照ください。

インデックスでサポートされていないデータ型

地理空間データ型 (GEOGRAPHY および GEOMETRY)、 半構造化データ型 (ARRAY、 OBJECT、 VARIANT)、および ベクトルデータ型 (VECTOR)を持つ列は、 PRIMARY KEY 列(自動的にインデックス付けされる)としても、明示的にインデックス付けされた列としてもサポートされません。(ハイブリッドテーブルの列は、列にインデックスが付けられていない限り、これらのデータ型をサポートします。)

:doc:`UUID </sql-reference/data-types-uuid>`データ型は、ハイブリッドテーブルのどの列でもサポートされていません。

TIMESTAMP_TZ データ型(または TIMESTAMP_TZ に解決される TIMESTAMP データ型)は、 UNIQUE、 PRIMARY KEY、 FOREIGN KEY 制約を使用してインデックス付けされている列ではサポートされていません。しかし、 TIMESTAMP_TZ はセカンダリインデックスでサポートされています。

セカンダリインデックス もご参照ください。

DML コマンド

DML コマンドを使用して少数の行を変更する場合は、 MERGE の代わりに INSERT、 UPDATE、 DELETE ステートメントを使用して、パフォーマンスを最適化します。

高次関数

ハイブリッドテーブルに対するクエリでは、 FILTERREDUCETRANSFORM 高次関数はサポートされていません。

ネイティブアプリケーション

Snowflake Native Appにハイブリッドテーブルを含めることができます。ただし、プロバイダーからコンシューマーにハイブリッドテーブルを共有することはできません。Native Appは、コンシューマーアカウントにハイブリッドテーブルを作成でき、それらのハイブリッドテーブルに対して読み書きを実行できます。ハイブリッドテーブルをアプリケーションロールに公開して、コンシューマーユーザ-が直接クエリできるようにすることもできます。

プロバイダーアカウントにハイブリッドテーブルを作成することはできません。また、Native Appを通じて共有されるビューにハイブリッドテーブルを含めることもできません。

最適化された一括ロード

ハイブリッドテーブルが空の場合、 CTAS、 COPY、 INSERT INTO ... SELECT はすべて最適化された一括ロードを使用します。ハイブリッドテーブルが空でない場合、最適化された一括ロードは使用されません。詳細については、 データのロード をご参照ください。

永続的なクエリ結果

ハイブリッドテーブルに対するクエリは、 USE_CACHED_RESULT パラメーター で定義された結果キャッシュを使用しません。保存済みのクエリ結果の使用 をご参照ください。

クォータとスロットリング

共有リソースの公平な可用性を確保し、一貫したサービス品質を保証し、使用量の急増を抑えるために、ハイブリッドテーブルの使用はクォータによって制限されます。

クォータ

デフォルト

注意

ハイブリッドストレージ

Snowflakeデータベースあたり2 TB

このクォータは、ハイブリッドテーブルに保存できるデータ量を制御します。この制限は、行ストア内のアクティブなハイブリッドテーブルデータにのみ適用され、オブジェクトストレージには適用されません。ストレージクォータを超過した場合、ハイブリッドストレージの使用量をテーブルまたはデータを削除してクォータ以下に戻すまで、ハイブリッドテーブルにデータを追加する書き込み操作は一時的にブロックされます。

不要なハイブリッド・テーブルを 削除する か、 切り捨てる ことで、数秒でスペースを取り戻すことができます。しかし、データをテーブルから 削除する と、(バックグラウンドでのコンパクションが必要なため)容量回復に数時間かかります。

ハイブリッドテーブルリクエスト

Approximately 16,000 operations per second, per Snowflake database

This quota controls the rate at which you can read from and write to hybrid tables. You should be able to achieve up to 16,000 operations per second against hybrid tables for a balanced workload consisting of 80% point reads and 20% point writes. To monitor throttling, see the example in AGGREGATE_QUERY_HISTORY ビュー.

ハイブリッドテーブルを含むデータベース

1つのSnowflakeアカウントにつき合計200件、1時間以内に追加されるデータベースは100件まで

このクォータは、Snowflakeアカウント内でハイブリッドテーブルを含むことができるデータベースの数を制御します。このクォータを超えると、既存のデータベースからすべてのハイブリッドテーブルをドロップしないと、新しいデータベースにハイブリッドテーブルを作成できなくなります。必要に応じて、 Snowflakeサポート にリクエストして、クォータを増やすことができます。

スロットリングは、ハイブリッドテーブルストレージプロバイダーに送信される読み取りと書き込みのリクエストが多すぎるという複合的な要因によって引き起こされる可能性があります。

  • 最適化が不十分なクエリや、クエリの同時実行性が非常に高く、大規模で攻撃的なワークロードが原因で、多くの読み取りリクエストが発生する可能性があります。

  • 書き込みリクエストが多すぎるのは、テーブルのロード時にバルクロードパスが選択されなかったか、ワークロードがあまりにも多くの同時書き込み操作で構成されているためです。

クォータ制限のためにエラーが発生したり、スロットリングが発生した場合は、システム管理者または DBA に連絡して、Unistoreの全体的なワークロードを調べてください。クォータを超えないように変更できる可能性があります。DBAs は、 Snowflakeサポート に問い合わせて、クエリのパフォーマンスとクォータの使用状況を評価することができます。ワークロードによっては、サポートチームにリクエストしてクォータの増加を開始する必要があるかもしれません。

セカンダリインデックス

以下のセカンダリインデックス機能はサポートされて いません

  • 既存のインデックスに列を追加します。

  • 既存のハイブリッド・テーブルのインデックスを変更します。

変更は、インデックスを削除して再作成することで適用できます。

ハイブリッドテーブルでセカンダリインデックスを使用するには、テーブルに SELECT 権限を付与されたロールを使用する必要があります。ハイブリッドテーブル自体以外のオブジェクトにしかアクセスできない場合、セカンダリインデックスは使用できません。

TIMESTAMP_NTZはセカンダリインデックスでサポートされている列型ですが、TIMESTAMP_TZはサポートされていません。:ref:`label-datatypes_datetime`はTIMESTAMP_NTZのエイリアスであるためサポートされています。:ref:`label-datatypes_timestamp`は、TIMESTAMP_NTZのエイリアスとして構成されている場合にサポートされます。

セカンダリインデックスについての詳細は、 セカンダリインデックスを追加する を参照してください。

スループット

You can execute up to approximately 16,000 operations per second against hybrid tables in each database in your account for a balanced 80%/20% read/write workload. If you exceed this limit, Snowflake might reduce your throughput. See クォータとスロットリング for more information.

Time Travelとクローニング

ハイブリッド・テーブルから選択する Time Travel クエリは、以下の制限付きでサポートされています。

  • AT 句では、 TIMESTAMP パラメーターのみがサポートされます。

    • TIMESTAMP パラメーターの値は、同じデータベースに属するすべてのテーブルで同じでなければなりません。

    • テーブルが異なるデータベースに属している場合は、 TIMESTAMP の値を使い分けることができます。

  • OFFSET、 STATEMENT、 STREAM パラメーターはサポートされません。

  • BEFORE 句はサポートされません。

  • Time Travelに依存する UNDROP TABLE コマンドはサポートされていません。

ハイブリッド・テーブルのクローニング・サポートに関する情報は、 ハイブリッドテーブルを含むクローンデータベース を参照してください。

トランザクション

ハイブリッドテーブルの場合、トランザクションスコープはハイブリッドテーブルが存在するデータベースです。トランザクションで参照されているすべてのハイブリッドテーブルは同じデータベースに存在する必要があります。同じトランザクション内の標準的なSnowflakeテーブルはこの制限の影響を受けず、異なるデータベースに存在してもかまいません。

一時スキーマとデータベース

仮または一時的な ハイブリッド・テーブルは作成できません。また、一時スキーマやデータベース内にハイブリッド・テーブルを作成することはできません。

Tri-Secret Secure

専用ストレージモードを有効にすると、 TSS 有効アカウントでハイブリッドテーブルを使用できます。詳細については、 TSS向けハイブリッドテーブル専用ストレージモード をご参照ください。

サポートされていない機能

現時点では、ハイブリッド・テーブルはサポートしていません。