ハイブリッドテーブルでサポートされていない機能と制限事項¶
サポートされていない機能と制限に関する次のガイダンスは、ハイブリッドテーブルに適用され、変更される可能性があります。
サポートされていない機能¶
ハイブリッドテーブルは次をサポートしません。
制限事項¶
- クローニング
ハイブリッドテーブルのクローニングはサポートされていませんが、 CREATE <オブジェクト> ... CLONE ステートメントで IGNORE HYBRID TABLES パラメーターを使用することで、ハイブリッドテーブルを含むデータベースとスキーマをクローンすることができます。
- クラウドとリージョン
ハイブリッドテーブルは、パブリックプレビューの一部のパブリックAmazon Web Services(AWS)リージョンでのみ使用できます。
クラウドリージョン
クラウドリージョン ID
US 西部(オレゴン)
us-west-2
US 東部(オハイオ)
us-east-2
US 東部(バージニア北部)
us-east-1
カナダ(中部)
ca-central-1
南米(サンパウロ)
sa-east-1
ヨーロッパ(ロンドン)
eu-west-2
EU (アイルランド)
eu-west-1
EU (パリ)
eu-west-3
EU (ストックホルム)
eu-north-1
EU (フランクフルト)
eu-central-1
アジア太平洋(東京)
ap-northeast-1
アジア太平洋(ソウル)
ap-northeast-2
アジア太平洋(大阪)
ap-northeast-3
アジア太平洋(ムンバイ)
ap-south-1
アジア太平洋(シンガポール)
ap-southeast-1
アジア太平洋(シドニー)
ap-southeast-2
AzureまたはGoogle Cloud Platform(GCP)では、ハイブリッドテーブルは使用できません。
SnowGov リージョンでは、ハイブリッドテーブルは使用できません。
トライアルアカウントでは、ハイブリッドテーブルは使用できません。
Virtual Private Snowflake(VPS)をご利用の場合は、 Snowflake サポート に連絡して、アカウントのハイブリッドテーブルの有効化についてお問い合わせください。
- クラスタリングキー
ハイブリッドテーブルでは、クラスタリングキーはサポートされていません。詳細については、 クラスタリングキーとクラスタ化されたテーブル をご参照ください。ハイブリッドテーブルのデータは主キーによって並べられます。
- 一貫性
デフォルトでは、ハイブリッドテーブルはセッションベースの一貫性モデルを使用し、セッション内の読み取り操作が同じセッション内の書き込み操作からの最新データを返します。セッション外で行われた変更については、一部の停滞(100ミリ秒未満)が発生する可能性があります。停滞を回避するためには、ステートメントレベルまたはセッションレベルで
READ_LATEST_WRITES = true
を設定します。これにより、数ミリ秒の遅延オーバーヘッドが発生する可能性があることに注意してください。
- 制約
ハイブリッドテーブルでは、主キー制約、一意制約、外部キー制約が強制され、次の制限が適用されます。
制約はテーブルの作成時にのみ定義できます。
制約は行レベルで強制されます。
制約は、ステートメントまたはトランザクションレベルでは強制されません(つまり、遅延制約)。
列を一意に変更することはできません。
外部キーには、次の追加制限が適用されます。
外部キー制約は、同じデータベースに属するハイブリッドテーブル間でのみサポートされます。
外部キー制約から参照されるテーブルは、外部キー関係が存在する限り切り捨てることはできません。
外部キー制約は部分一致をサポートしていません。
外部キー制約は遅延動作をサポートしていません。
外部キー制約は、 DELETE と UPDATE の操作に対する RESTRICT と NO ACTION の動作のみをサポートします。
- COPY
COPY INTO コマンドでハイブリッドテーブルをロードする場合、
ABORT_STATEMENT
はON_ERROR
に対してサポートされている唯一のオプションです。ON_ERROR=SKIP_FILE
を設定するとエラーが返されます。詳細については、 データのロード をご参照ください。- データサイズ
1つの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 ステートメントを使用して、パフォーマンスを最適化します。
- データのロード
CREATETABLE ... ASSELECTコマンドは、ハイブリッドテーブルにデータを一括ロードする場合にお勧めします。このコマンドはパフォーマンスが最適化されており、数百万の記録をロードする場合、 COPY または INSERT INTO ... SELECT などの他のコマンドと比較して約10倍高速になります。
詳細については、 データのロード をご参照ください。
- ネイティブアプリケーション
Snowflake Native Appにハイブリッドテーブルを含めることができます。ただし、プロバイダーからコンシューマーにハイブリッドテーブルを共有することはできません。Native Appは、コンシューマーアカウントにハイブリッドテーブルを作成でき、それらのハイブリッドテーブルに対して読み書きを実行できます。ハイブリッドテーブルをアプリケーションロールに公開して、コンシューマーユーザ-が直接クエリできるようにすることもできます。
プロバイダーアカウントにハイブリッドテーブルを作成することはできません。また、Native Appを通じて共有されるビューにハイブリッドテーブルを含めることもできません。
- 定期的なキー更新
Snowflakeアカウントで 定期的なキー更新 の使用が有効になっている場合は、 ハイブリッドテーブル は使用できません。アカウントで定期的なキー更新が有効になっており、ハイブリッドテーブルを使用する場合は、 ALTER ACCOUNT コマンドを使用して PERIODIC_DATA_REKEYING パラメーターを
FALSE
に設定する必要があります。- 永続的なクエリ結果
ハイブリッドテーブルに対するクエリは、 USE_CACHED_RESULT パラメーター で定義された結果キャッシュを使用しません。 保存済みのクエリ結果の使用 をご参照ください。
- クォータとスロットリング
共有リソースの公平な可用性を確保し、一貫したサービス品質を保証し、使用量の急増を抑えるために、ハイブリッドテーブルの使用はクォータによって制限されます。
クォータ
デフォルト
メモ
ハイブリッドストレージ
Snowflakeデータベースあたり1 TB
このクォータは、ハイブリッドテーブルに保存できるデータ量を制御します。この制限は、行ストア内のアクティブなハイブリッドテーブルデータにのみ適用され、オブジェクトストレージには適用されません。ストレージクォータを超過した場合、ハイブリッドストレージの使用量をデータ削除によってクォータ以下に戻すまで、ハイブリッドテーブルにデータを追加るす書き込み操作は一時的にブロックされます。
ハイブリッドテーブルリクエスト
Snowflakeデータベースあたり、毎秒約2,000回の操作
このクォータは、ハイブリッドテーブルからの読み取りとハイブリッドテーブルへの書き込みの速度を制御します。80%のポイント読み込みと20%のポイント書き込みで構成されるバランスの取れたワークロードで、ハイブリッドテーブルに対して最高2,000回の操作/秒を達成できるはずです。スロットリングをモニターするには、 AGGREGATE_QUERY_HISTORY ビュー の例をご参照ください。
ハイブリッドテーブルを含むデータベース
1つのSnowflakeアカウントにつき合計100件、1時間以内に追加されるデータベースは10件まで
このクォータは、Snowflakeアカウント内でハイブリッドテーブルを含むことができるデータベースの数を制御します。このクォータを超えると、既存のデータベースからすべてのハイブリッドテーブルを削除するか、クォータを増やさない限り、新しいデータベースにハイブリッドテーブルを作成できなくなります。
スロットリングは、ハイブリッドテーブルストレージプロバイダーに送信される読み取りと書き込みのリクエストが多すぎるという複合的な要因によって引き起こされる可能性があります。
最適化が不十分なクエリや、クエリの同時実行性が非常に高く、大規模で攻撃的なワークロードが原因で、多くの読み取りリクエストが発生する可能性があります。
書き込みリクエストが多すぎるのは、テーブルのロード時にバルクロードパスが選択されなかったか、ワークロードがあまりにも多くの同時書き込み操作で構成されているためです。
クォータ制限のためにエラーが発生したり、スロットリングが発生した場合は、システム管理者または DBA に連絡して、Unistoreの全体的なワークロードを調べてください。クォータを超えないように変更できる可能性があります。DBAs は、 Snowflakeサポート に問い合わせて、クエリのパフォーマンスとクォータの使用状況を評価することができます。ワークロードによっては、クォータを増やす必要があるかもしれません。
- 複製
ハイブリッドテーブルの 複製 は現在サポートされていません。
- セカンダリインデックス
以下のセカンダリインデックス機能はサポートされて いません。
インデックスに列を追加します。
既存のハイブリッドテーブルのインデックスを変更します。
ハイブリッドテーブルでセカンダリインデックスを使用するには、テーブルに SELECT 権限を付与されたロールを使用する必要があります。ハイブリッドテーブル自体以外のオブジェクトにしかアクセスできない場合、セカンダリインデックスは使用できません。
TIMESTAMP 列はサポートされています。ただし、ベーステーブルやインデックスの複合キーの一部である TIMESTAMP 列に対する比較(例: WHERE 述語)は、現在サポートされておらず、エラーを引き起こします。
セカンダリインデックスについての詳細は、 ハイブリッドテーブルにインデックスを追加する を参照してください。
- スループット
アカウント内のハイブリッドテーブルに対して、80%/20%のバランスの取れた読み取り/書き込みワークロードで、毎秒最大約2,000回の操作を実行できます。この制限を超えると、Snowflakeはスループットを低下させる可能性があります。詳細については、 クォータとスロットリング をご参照ください。
- Time Travel
Time Travel クエリは、以下の制限事項付きでハイブリッドテーブルに対してサポートされています。
AT 句では、 TIMESTAMP パラメーターのみがサポートされます。OFFSET、 STATEMENT、 STREAM パラメーターはサポートされません。
TIMESTAMP パラメーターの値は、同じデータベースに属するすべてのテーブルで同じでなければなりません。テーブルが異なるデータベースに属している場合は、 TIMESTAMP の値が異なる場合があります。
クローニングはハイブリッドテーブルでは一般的にサポートされていないため、 CREATE TABLE ... CLONE で AT 句を指定することはできません。
BEFORE 句はサポートされません。
Time Travelに依存する UNDROP TABLE コマンドはサポートされていません。
- トランザクション
ハイブリッドテーブルの場合、トランザクションスコープはハイブリッドテーブルが存在するデータベースです。トランザクションで参照されているすべてのハイブリッドテーブルは同じデータベースに存在する必要があります。同じトランザクション内の標準的なSnowflakeテーブルはこの制限の影響を受けず、異なるデータベースに存在してもかまいません。
- 一時スキーマとデータベース
仮または一時的な ハイブリッド・テーブルは作成できません。また、一時スキーマやデータベース内にハイブリッド・テーブルを作成することはできません。
- Tri-Secret Secure
Snowflakeアカウントで Tri-Secret Secure の使用が有効になっている場合、 ハイブリッドテーブル は使用できません。ハイブリッドテーブルを使用する前に Snowflakeサポート に連絡して、 Tri-Secret Secure に対してSnowflakeアカウントでが有効になっているかどうかを確認してください。
- UNDROP
ハイブリッドテーブルでは、 UNDROP はサポートされていません。その他の情報は次のとおりです。
UNDROP SCHEMA および UNDROP DATABASE はハイブリッドテーブルを含むエンティティに対しては成功しますが、それらのハイブリッドテーブルと関連する制約とインデックスは復元できません。
TABLES ビュー の DELETED 列には、削除時刻が親エンティティの UNDROP 時刻として表示されます。
ACCESS_HISTORY ビュー には、親エンティティの DROP/UNDROP のエントリがありますが、ハイブリッドテーブルのエントリはありません。