メインコンテンツまでスキップ

シュレッダーによる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 テーブルプロパティを設定します。

SQL
ALTER TABLE my_table SET TBLPROPERTIES ('delta.enableVariantShredding' = 'false');

既存のテーブルのシュレッダーを削除する

既存のテーブルのシュレッダーを削除するには、 ALTER TABLE コマンドでフィーチャーをドロップします。また、この操作では、シュレッダーされた VARIANT データをシュレッドされていない VARIANT 形式に書き換え、 enableVariantShredding テーブルプロパティをfalseに設定します。

SQL
ALTER TABLE my_table DROP FEATURE "variantShredding-preview";

制限

  • データをシュレッダーすると、書き込みにオーバーヘッドが発生します。
  • シュレッダーを有効にしても、テーブル内の既存の VARIANT データは自動的に変換されません。これは、機能が有効になった後に書き込まれたデータにのみ適用されます。既存の VARIANT データを書き換えるには、 REORG TABLE my_table APPLY (SHRED VARIANT)を使用します。
  • シュレッダーは、構造体の最上位の VARIANT 列または VARIANT フィールドに適用され、配列またはマップ内に格納されている VARIANT データは除外されます。