シュレッディングによるVARIANTデータのパフォーマンスの最適化
ベータ版
この機能は ベータ版です。
このページでは、シュレッディングを使用して、 VARIANT
列に半構造化データを含むテーブルのクエリパフォーマンスを最適化する方法について説明します。
「 VARIANT
タイプ」、「 Delta Lake でのバリアントのサポート」、および 「バリアント データのクエリ」を参照してください。
シュレッディングとは何ですか?
シュレッディングは、一般的に発生するフィールドを Parquet ファイルに個別の列として保存することで、 VARIANT
データのクエリ パフォーマンスを向上させます。このプロセスにより、フィールドの読み取りに必要な I/O が削減され、バイナリ BLOB ではなく列形式を使用して圧縮が向上します。
必要条件
シュレッドされた VARIANT テーブルの読み取りと書き込みには、Databricks Runtime 17.2 以降が必要です。
シュレッディングを有効にする
プレビューポータルを使用して、ワークスペース全体のシュレッディングを有効にします。シュレッディングを使用して VARIANT
データの読み取りまたは書き込みにコードを変更する必要はありません。
ワークスペースでこの機能を有効にすると、次のシナリオでシュレッディングが自動的に有効になります。
CREATE TABLE
1 つ以上のVARIANT
列で指定します。CREATE AND REPLACE TABLE
1 つ以上のVARIANT
列で指定します。ALTER TABLE
1 つ以上のVARIANT
列を追加する場合。
特定のテーブルの今後の書き込みでのシュレッディングのオプトアウト
ワークスペースのシュレッディングベータ版を有効にし、特定のテーブルを除外する場合は、 enableVariantShredding
テーブルプロパティを設定します。
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');
既存のテーブルのシュレッディングを削除する
既存のテーブルのシュレッディングを削除するには、 ALTER TABLE
コマンドでフィーチャーをドロップします。また、この操作では、シュレッディングされた VARIANT
データをシュレッドされていない VARIANT
形式に書き換え、 enableVariantShredding
テーブルプロパティをfalseに設定します。
ALTER TABLE my_table DROP FEATURE "variantShredding-preview";
制限
- データをシュレッディングすると、書き込みにオーバーヘッドが発生します。
- シュレッディングを有効にしても、テーブル内の既存の
VARIANT
データは自動的に変換されません。これは、機能が有効になった後に書き込まれたデータにのみ適用されます。既存のVARIANT
データを書き換えるには、REORG TABLE my_table APPLY (SHRED VARIANT)
を使用します。 - シュレッディングは、構造体の最上位の
VARIANT
列またはVARIANT
フィールドに適用され、配列またはマップ内に格納されているVARIANT
データは除外されます。