次の方法で共有


テーブル プロパティとテーブル オプション

適用対象: 「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

テーブルとビューのユーザー定義タグを定義します。

  • テーブル プロパティ

    テーブル プロパティとは、CREATE TABLE または CREATE VIEW を実行するときに初期化できるキーと値のペアです。 ALTER TABLE または ALTER VIEW を使用して、既存のテーブル プロパティを設定解除、あるいは、新規または既存のテーブル プロパティを設定できます。

    テーブル プロパティを使用すると、SQL によって追跡されない情報を使用してテーブルにタグを付けることができます。

  • テーブル オプション

    テーブル オプションの目的は、ストレージ プロパティを基になるストレージに (たとえば SERDE プロパティを Hive に) 渡すことです。

    テーブル オプションとは、CREATE TABLE を実行するときに初期化できるキーと値のペアです。 テーブル オプションを SET または UNSET することはできません。

TBLPROPERTIES

新しいテーブルまたはビューの 1 つ以上のテーブル プロパティを設定します。

テーブル プロパティを使用すると、SQL によって追跡されない情報を使用してテーブルにタグを付けることができます。

構文

TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )

property_key
  { identifier [. ...] | string_literal }

パラメーター

  • property_key

    プロパティ キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは文字列リテラルで構成できます。

    プロパティ キーは一意である必要があり、大文字と小文字が区別されます。

  • property_val

    プロパティの値。 値は BOOLEANSTRINGINTEGER または DECIMAL リテラルである必要があります。

-- Create table with user defined table properties
> CREATE TABLE T(c1 INT) TBLPROPERTIES('this.is.my.key' = 12, this.is.my.key2 = true);
> SHOW TBLPROPERTIES T;
option.serialization.format     1
this.is.my.key  12
this.is.my.key2 true
transient_lastDdlTime   1649783569

SET TBLPROPERTIES

既存のテーブルまたはビューの 1 つ以上のテーブル プロパティを設定します。

構文

SET TBLPROPERTIES ( { property_key [ = ] property_val } [, ...] )

property_key
  { identifier [. ...] | string_literal }

パラメーター

  • property_key

    プロパティ キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは文字列リテラルで構成できます。

    プロパティ キーは一意である必要があり、大文字と小文字が区別されます。

  • property_val

    プロパティの新しい値。 値は BOOLEANSTRINGINTEGER または DECIMAL リテラルである必要があります。

-- Alter the a table's table properties.
>  ALTER TABLE T SET TBLPROPERTIES(this.is.my.key = 14, 'this.is.my.key2' = false);
> SHOW TBLPROPERTIES T;
option.serialization.format     1
this.is.my.key  14
this.is.my.key2 false
transient_lastDdlTime   1649783980

UNSET TBLPROPERTIES

テーブルまたはビューから 1 つ以上のテーブル プロパティを削除します。

構文

UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [, ...] )

property_key
  { identifier [. ...] | string_literal }

パラメーター

  • IF EXISTS

    プロパティ キーのいずれかが存在しない場合にエラーを発生させないように Databricks SQL に指定する省略可能な句。

  • property_key

    削除するプロパティ キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは文字列リテラルで構成できます。

    プロパティ キーは大文字と小文字が区別されます。 property_key が存在しない場合は、IF EXISTS が指定されていない限り、エラーが発生します。

-- Remove a table's table properties.
>  ALTER TABLE T UNSET TBLPROPERTIES(this.is.my.key, 'this.is.my.key2');
> SHOW TBLPROPERTIES T;
option.serialization.format     1
transient_lastDdlTime   1649784415

OPTIONS

新しいテーブルに 1 つ以上のテーブル オプションを設定します。

テーブル オプションの目的は、ストレージ プロパティを基になるストレージに (たとえば SERDE プロパティを Hive に) 渡すことです。

Delta Lake テーブルのテーブル オプションを指定すると、これらのオプションもテーブル プロパティとしてエコーされます。

構文

OPTIONS ( { property_key [ = ] property_val } [, ...] )

property_key
  { identifier [. ...] | string_literal }

パラメーター

  • property_key

    プロパティ キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは文字列リテラルで構成できます。

    プロパティ キーは一意である必要があり、大文字と小文字が区別されます。

  • property_val

    プロパティの値。 値は BOOLEANSTRINGINTEGER または DECIMAL リテラルである必要があります。

    Databricks SQL および Databricks Runtime 13.3 LTS 以降では、property_val を定数式にすることができます。

-- Create table with user defined table option
-- The options appears with an `option.` prefix.
> CREATE TABLE T(c1 INT) OPTIONS(this.is.my.key = 'blue' || 'green');
> SHOW TBLPROPERTIES T;
option.this.is.my.key bluegreen
option.serialization.format     2

予約テーブルのプロパティ キー

Azure Databricks では、一部のプロパティ キーを独自に使用するために予約しているので、使用しようとするとエラーが発生します。

  • external

    CREATE EXTERNAL TABLE を使用して外部テーブルを作成します。

  • location

    ALTER TABLECREATE TABLELOCATION 句を使用して、テーブルの場所を設定します。

  • owner

    ALTER TABLE および ALTER VIEW[SET] OWNER TO 句を使用して、テーブルまたはビューの所有権を転送します。 SET は、Databricks SQL で省略可能なキーワードとして使用できます。

  • provider

    CREATE TABLEUSING 句を使用してテーブルのデータ ソースを設定する

option 識別子で始まるプロパティ キーは使用しないでください。 このプレフィックス識別子は、SHOW TBLPROPERTIES で除外されます。 option プレフィックスは、テーブル オプションの表示にも使用されます。

一般的な TBLPROPERTIES キーと OPTIONS キー

Delta Lake では、次の設定が一般的に使用されます。

  • delta.appendOnly: true に設定し、UPDATEDELETE の操作を無効にします。
  • delta.dataSkippingNumIndexedCols: 統計情報を収集して考慮する、先頭の列の数に設定します。
  • delta.deletedFileRetentionDuration: VACUUM がファイルを削除できるタイミングを制御する間隔 ('interval 7 days' など) に設定します。
  • delta.logRetentionDuration: タイム トラベル クエリの履歴を保持する期間を制御する間隔 ('interval 60 days' など) に設定します。