ハイブリッド・テーブルの制限とサポートされていない機能¶
制限 および サポートされていない機能 に関する以下のガイダンスは、ハイブリッド・テーブルに適用され、変更される場合があります。
両セクションを必ずお読みください。
注釈
ご不明な点がございましたら、アカウントチームまでお問い合わせください。
制限事項¶
- クラウドとリージョン
Hybrid tables are generally available in all commercial Amazon Web Services (AWS) and Microsoft Azure regions.
以下の制限にご注意ください。
ハイブリッドテーブルは 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_STATEMENTはON_ERRORに対してサポートされている唯一のオプションです。ON_ERROR=SKIP_FILEを設定するとエラーが返されます。詳細については、 データのロード をご参照ください。
- データサイズ
2つのSnowflakeデータベースにつきハイブリッドテーブルに格納できるデータは1 TB に制限されています。詳細については、 クォータとスロットリング をご参照ください。
- インデックスでサポートされていないデータ型
地理空間データ型 (GEOGRAPHY および GEOMETRY)、 半構造化データ型 (ARRAY、 OBJECT、 VARIANT)、および ベクトルデータ型 (VECTOR)を持つ列は、 PRIMARY KEY 列(自動的にインデックス付けされる)としても、明示的にインデックス付けされた列としてもサポートされません。(ハイブリッドテーブルの列は、列にインデックスが付けられていない限り、これらのデータ型をサポートします。)
TIMESTAMP_TZ データ型(または TIMESTAMP_TZ に解決される TIMESTAMP データ型)は、 UNIQUE、 PRIMARY KEY、 FOREIGN KEY 制約を使用してインデックス付けされている列ではサポートされていません。しかし、 TIMESTAMP_TZ はセカンダリインデックスでサポートされています。
セカンダリインデックス もご参照ください。
- DML コマンド
DML コマンドを使用して少数の行を変更する場合は、 MERGE の代わりに INSERT、 UPDATE、 DELETE ステートメントを使用して、パフォーマンスを最適化します。
- ネイティブアプリケーション
Snowflake Native Appにハイブリッドテーブルを含めることができます。ただし、プロバイダーからコンシューマーにハイブリッドテーブルを共有することはできません。Native Appは、コンシューマーアカウントにハイブリッドテーブルを作成でき、それらのハイブリッドテーブルに対して読み書きを実行できます。ハイブリッドテーブルをアプリケーションロールに公開して、コンシューマーユーザ-が直接クエリできるようにすることもできます。
プロバイダーアカウントにハイブリッドテーブルを作成することはできません。また、Native Appを通じて共有されるビューにハイブリッドテーブルを含めることもできません。
- 最適化された一括ロード
ハイブリッドテーブルが空の場合、 CTAS、 COPY、 INSERT INTO ... SELECT はすべて最適化された一括ロードを使用します。ハイブリッドテーブルが空でない場合、最適化された一括ロードは使用されません。詳細については、 データのロード をご参照ください。
- 永続的なクエリ結果
ハイブリッドテーブルに対するクエリは、 USE_CACHED_RESULT パラメーター で定義された結果キャッシュを使用しません。保存済みのクエリ結果の使用 をご参照ください。
- クォータとスロットリング
共有リソースの公平な可用性を確保し、一貫したサービス品質を保証し、使用量の急増を抑えるために、ハイブリッドテーブルの使用はクォータによって制限されます。
クォータ
デフォルト
注意
ハイブリッドストレージ
Snowflakeデータベースあたり2 TB
このクォータは、ハイブリッドテーブルに保存できるデータ量を制御します。この制限は、行ストア内のアクティブなハイブリッドテーブルデータにのみ適用され、オブジェクトストレージには適用されません。ストレージクォータを超過した場合、ハイブリッドストレージの使用量をテーブルまたはデータを削除してクォータ以下に戻すまで、ハイブリッドテーブルにデータを追加する書き込み操作は一時的にブロックされます。
不要なハイブリッド・テーブルを 削除する か、 切り捨てる ことで、数秒でスペースを取り戻すことができます。しかし、データをテーブルから 削除する と、(バックグラウンドでのコンパクションが必要なため)容量回復に数時間かかります。
ハイブリッドテーブルリクエスト
Snowflakeデータベースあたり、毎秒約8,000回の操作
このクォータは、ハイブリッドテーブルからの読み取りとハイブリッドテーブルへの書き込みの速度を制御します。80%のポイント読み取りと20%のポイント書き込みで構成されるバランスの取れたワークロードで、ハイブリッドテーブルに対して最高8,000回の操作/秒を達成できるはずです。スロットリングをモニターするには、 AGGREGATE_QUERY_HISTORY ビュー の例をご参照ください。
ハイブリッドテーブルを含むデータベース
200 total per Snowflake account, and no more than 100 databases added within a one-hour window
このクォータは、Snowflakeアカウント内でハイブリッドテーブルを含むことができるデータベースの数を制御します。このクォータを超えると、既存のデータベースからすべてのハイブリッドテーブルをドロップしないと、新しいデータベースにハイブリッドテーブルを作成できなくなります。必要に応じて、 Snowflakeサポート にリクエストして、クォータを増やすことができます。
スロットリングは、ハイブリッドテーブルストレージプロバイダーに送信される読み取りと書き込みのリクエストが多すぎるという複合的な要因によって引き起こされる可能性があります。
最適化が不十分なクエリや、クエリの同時実行性が非常に高く、大規模で攻撃的なワークロードが原因で、多くの読み取りリクエストが発生する可能性があります。
書き込みリクエストが多すぎるのは、テーブルのロード時にバルクロードパスが選択されなかったか、ワークロードがあまりにも多くの同時書き込み操作で構成されているためです。
クォータ制限のためにエラーが発生したり、スロットリングが発生した場合は、システム管理者または DBA に連絡して、Unistoreの全体的なワークロードを調べてください。クォータを超えないように変更できる可能性があります。DBAs は、 Snowflakeサポート に問い合わせて、クエリのパフォーマンスとクォータの使用状況を評価することができます。ワークロードによっては、サポートチームにリクエストしてクォータの増加を開始する必要があるかもしれません。
- セカンダリインデックス
以下のセカンダリインデックス機能はサポートされて いません。
既存のインデックスに列を追加します。
既存のハイブリッド・テーブルのインデックスを変更します。
変更は、インデックスを削除して再作成することで適用できます。
ハイブリッドテーブルでセカンダリインデックスを使用するには、テーブルに SELECT 権限を付与されたロールを使用する必要があります。ハイブリッドテーブル自体以外のオブジェクトにしかアクセスできない場合、セカンダリインデックスは使用できません。
TIMESTAMP_NTZ はセカンダリインデックスでサポートされている列タイプですが、 は であり、 TIMESTAMP_TZ はサポートされて いません。DATETIME は TIMESTAMP_NTZ のエイリアスであり、サポートされています。TIMESTAMP は TIMESTAMP_NTZ のエイリアスとして構成されている場合にサポートされます。
セカンダリインデックスについての詳細は、 セカンダリインデックスを追加する を参照してください。
- スループット
アカウント内の各データベースのハイブリッドテーブルに対して、80%/20%のバランスの取れた読み取り/書き込みワークロードで、毎秒最大約8,000回の操作を実行できます。この制限を超えると、Snowflakeはスループットを低下させる可能性があります。詳細については、 クォータとスロットリング をご参照ください。
- Time Travelとクローニング
ハイブリッド・テーブルから選択する Time Travel クエリは、以下の制限付きでサポートされています。
AT 句では、 TIMESTAMP パラメーターのみがサポートされます。
TIMESTAMP パラメーターの値は、同じデータベースに属するすべてのテーブルで同じでなければなりません。
テーブルが異なるデータベースに属している場合は、 TIMESTAMP の値を使い分けることができます。
OFFSET、 STATEMENT、 STREAM パラメーターはサポートされません。
BEFORE 句はサポートされません。
Time Travelに依存する UNDROP TABLE コマンドはサポートされていません。
ハイブリッド・テーブルのクローニング・サポートに関する情報は、 ハイブリッドテーブルを含むクローンデータベース を参照してください。
- トランザクション
ハイブリッドテーブルの場合、トランザクションスコープはハイブリッドテーブルが存在するデータベースです。トランザクションで参照されているすべてのハイブリッドテーブルは同じデータベースに存在する必要があります。同じトランザクション内の標準的なSnowflakeテーブルはこの制限の影響を受けず、異なるデータベースに存在してもかまいません。
- 一時スキーマとデータベース
仮または一時的な ハイブリッド・テーブルは作成できません。また、一時スキーマやデータベース内にハイブリッド・テーブルを作成することはできません。
- Tri-Secret Secure
専用ストレージモードを有効にすると、 TSS 有効アカウントでハイブリッドテーブルを使用できます。詳細については、 TSS向けハイブリッドテーブル専用ストレージモード をご参照ください。
サポートされていない機能¶
現時点では、ハイブリッド・テーブルはサポートしていません。
-
ハイブリッド・テーブルのデータはプライマリ・キーによって順序付けられます。
-
UNDROP SCHEMA および UNDROP DATABASE はハイブリッドテーブルを含むエンティティに対しては成功しますが、それらのハイブリッドテーブルと関連する制約とインデックスは復元できません。
TABLES ビュー の DELETED 列には、削除時刻が親エンティティの UNDROP 時刻として表示されます。
ACCESS_HISTORY ビュー には、親エンティティの DROP/UNDROP のエントリがありますが、ハイブリッド・テーブルのエントリはありません。