다음을 통해 공유


테이블 속성 및 테이블 옵션

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

테이블 및 뷰에 대한 사용자 정의 태그를 정의합니다.

  • 테이블 속성

    테이블 속성은 CREATE TABLE 또는 CREATE VIEW수행할 때 초기화할 수 있는 키-값 쌍입니다. 또는 사용하여 UNSET 기존 또는 기존 테이블 속성을 수 있습니다.

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

  • 테이블 옵션

    테이블 옵션의 목적은 SERDE 속성과 같은 스토리지 속성을 기본 스토리지 시스템에 전달하여 Hive에 제공합니다.

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

TBLPROPERTIES

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

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

구문

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

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

매개 변수

  • property_key

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

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

  • 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;
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

    속성의 새 값입니다. 값은 , 또는 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;
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

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

    속성은 대/소문자를 구분합니다. 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;
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

    속성 값입니다. 값은 , 또는 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;
key              value
---------------- -----
...
option.this.is.my.key bluegreen
...

예약된 테이블 속성 키

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

  • external

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

  • location

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

  • owner

    [SET] OWNER TO 절을 사용하여 ALTER TABLEALTER VIEW의 테이블 또는 뷰 소유권을 이전합니다. SET Databricks SQL에서 선택적 키워드로 허용됩니다.

  • provider

    테이블의 데이터 소스를 설정하려면 USING 절을 CREATE TABLE에서 사용하세요.

option 식별자로 시작하는 속성 키를 사용해서는 안 됩니다. 이 접두사 식별자는 SHOW TBLPROPERTIES에서 제거됩니다. 접두사는테이블 옵션을 표시하는 데도 사용됩니다.

일반적인 TBLPROPERTIES 및 OPTIONS 키

다음 설정은 일반적으로 Delta Lake에서 사용됩니다.

  • delta.appendOnly: UPDATEDELETE 작업을 사용하지 않도록 설정하려면 true 설정합니다.
  • delta.dataSkippingNumIndexedCols: 통계를 수집하고 고려할 선행 열의 수로 설정합니다.
  • delta.deletedFileRetentionDuration: VACUUM 파일을 삭제할 수 있는 시기를 제어할 'interval 7 days' 같은 간격으로 설정합니다.
  • delta.logRetentionDuration: 'interval 60 days' 같은 간격으로 설정하여 시간 이동 쿼리에 대한 기록 유지 기간을 제어합니다.