다음을 통해 공유


테이블 속성 및 테이블 옵션

적용 대상: 예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

테이블 및 보기에 대해 사용자 정의 태그를 정의합니다.

  • 테이블 속성

    테이블 속성은 CREATE TABLE 또는 CREATE VIEW를 수행할 때 초기화할 수 있는 키-값 쌍입니다. ALTER TABLE 또는 ALTER VIEW를 사용하여 기존 항목을 설정 해제하거나 새 또는 기존 테이블 속성을 설정할 수 있습니다.

    테이블 속성을 사용하여 SQL에서 추적되지 않는 정보로 테이블에 태그를 지정할 수 있습니다.

  • 테이블 옵션

    테이블 옵션의 목적은 스토리지 속성을 기본 스토리지(예: SERDE 속성)를 Hive에 전달하는 것입니다.

    테이블 속성은 CREATE TABLE을 수행할 때 초기화할 수 있는 키-값 쌍입니다. SET 또는 UNSET 테이블 옵션을 사용할 수 없습니다.

TBLPROPERTIES

새 테이블 또는 뷰에서 하나 이상의 테이블 속성을 설정합니다.

테이블 속성을 사용하여 SQL에서 추적되지 않는 정보로 테이블에 태그를 지정할 수 있습니다.

구문

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

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

매개 변수

  • property_key

    속성 키입니다. 키는 점 또는 문자열 리터럴로 구분된 하나 이상의 식별자로 구성될 수 있습니다.

    속성 키는 고유해야 하며 대/소문자를 구분해야 합니다.

  • property_val

    속성 값입니다. 값은 , 또는 STRINGINTEGERDECIMAL 리터럴이어야 BOOLEAN합니다.

예제

-- 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;
key              value
---------------- -----
...
this.is.my.key      14
this.is.my.key2  false
...

SET TBLPROPERTIES

기존 테이블 또는 뷰에서 하나 이상의 테이블 속성을 설정합니다.

구문

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

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

매개 변수

  • property_key

    속성 키입니다. 키는 점 또는 문자열 리터럴로 구분된 하나 이상의 식별자로 구성될 수 있습니다.

    속성 키는 고유해야 하며 대/소문자를 구분해야 합니다.

  • property_val

    속성의 새 값입니다. 값은 , 또는 STRINGINTEGERDECIMAL 리터럴이어야 BOOLEAN합니다.

예제

-- 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;
key              value
---------------- -----
...
this.is.my.key      14
this.is.my.key2  false
...

UNSET TBLPROPERTIES

테이블 또는 뷰에서 하나 이상의 테이블 속성을 제거합니다.

구문

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

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

매개 변수

  • IF EXISTS

    속성 키가 없는 경우 Databricks SQL이 오류를 발생시키지 않도록 지시하는 선택적 절입니다.

  • property_key

    제거할 속성 키입니다. 키는 점 또는 문자열 리터럴로 구분된 하나 이상의 식별자로 구성될 수 있습니다.

    속성은 대/소문자를 구분합니다. IF EXISTS이(가) 지정되지 않은 경우 property_key이(가) 존재하지 않으면 오류가 발생합니다.

예제

-- Remove a table's table properties.
>  ALTER TABLE T UNSET TBLPROPERTIES(this.is.my.key, 'this.is.my.key2');
> SHOW TBLPROPERTIES T;
key                              value
-------------------------------- -----
... keys other that key and key2 ...

OPTIONS

새 테이블에서 하나 이상의 테이블 옵션을 설정합니다.

테이블 옵션의 목적은 스토리지 속성을 기본 스토리지(예: SERDE 속성)를 Hive에 전달하는 것입니다.

Delta Lake 테이블에 대한 테이블 옵션을 지정하면 이러한 옵션도 테이블 속성으로 에코됩니다.

구문

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

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

매개 변수

  • property_key

    속성 키입니다. 키는 점 또는 문자열 리터럴로 구분된 하나 이상의 식별자로 구성될 수 있습니다.

    속성 키는 고유해야 하며 대/소문자를 구분해야 합니다.

  • property_val

    속성 값입니다. 값은 , 또는 STRINGINTEGERDECIMAL 리터럴이어야 BOOLEAN합니다.

    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;
key              value
---------------- -----
...
option.this.is.my.key bluegreen
...

예약 테이블 속성 키

Azure Databricks는 자체 사용을 위해 일부 속성 키를 예약하고 사용하려고 하면 오류가 발생합니다.

  • external

    CREATE EXTERNAL TABLE을 사용하여 외부 테이블을 만듭니다.

  • location

    ALTER TABLECREATE TABLELOCATION 절을 사용하여 테이블 위치를 설정합니다.

  • owner

    ALTER TABLEALTER 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'와(과) 같은 간격으로 설정합니다.