파티션을

적용 대상:검사 예 Databricks SQL 검사 예 Databricks Runtime으로 표시됨

파티션은 분할 열이라는 미리 정의된 열 하위 집합에 대해 동일한 값을 공유하는 테이블의 행 하위 집합으로 구성됩니다. 파티션을 사용하면 데이터 조작뿐만 아니라 테이블에 대한 쿼리의 속도를 높일 수 있습니다.

파티션을 사용하려면 PARTITIONED BY 절을 포함하여 테이블을 만들 때 분할 열 집합을 정의합니다.

테이블에 행을 삽입하거나 조작할 때 Azure Databricks는 자동으로 행을 적절한 파티션으로 디스패치합니다.

PARTITION 절을 사용하여 파티션을 직접 지정할 수도 있습니다.

이 구문은 Delta Lake 형식을 사용하지 않는 테이블에도 사용할 수 있으며 ALTER TABLE 문을 사용하여 파티션을 빠르게 DROP, ADD 또는 RENAME할 수 있습니다.

분할 기준

절은 PARTITIONED BY 새 테이블이 분할되는 열 목록을 지정했습니다.

구문

PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )

매개 변수

  • partition_column

    식별자는 테이블의 를 column_identifier 참조할 수 있습니다. 둘 이상의 열을 지정하는 경우 중복이 없어야 합니다. 테이블의 column_specification 모든 열을 참조하는 경우 오류가 발생합니다.

  • column_type

    가 테이블의 에서 를 참조 column_identifier 하지 않는 한 partition_columncolumn_specificationcolumn_type 데이터 형식을 partition_column정의합니다.

    Databricks SQL에서 지원하는 모든 데이터 형식 이 모든 데이터 원본에서 지원되는 것은 아닙니다.

메모

열 사양에서 열을 참조하는 Delta Lake 테이블 분할 열을 정의하지 않는 한 항상 테이블의 끝으로 이동됩니다.

파티션

절을 PARTITION 사용하여 쿼리하거나 조작할 파티션을 식별합니다.

파티션은 모든 열의 이름을 지정하고 각각을 값과 연결하여 식별됩니다. 특정 순서로 지정할 필요는 없습니다.

기존 테이블에 새 파티션을 추가하지 않는 한 열 또는 값을 생략하여 작업이 열의 하위 집합과 일치하는 모든 일치하는 파티션에 적용된다는 것을 나타낼 수 있습니다.

PARTITION ( { partition_column  [ = partition_value | LIKE pattern ] } [ , ... ] )

매개 변수

  • partition_column

    테이블의 파티션 열로 명명된 열입니다. 동일한 열을 두 번 지정할 수 없습니다.

  • = partition_value

    파티션 열의 형식과 일치하는 데이터 형식의 리터럴입니다. 파티션 값을 생략하면 사양이 이 파티션 열의 모든 값과 일치합니다.

  • LIKE pattern

    이 양식은 ALTER SHARE ADD TABLE에서만 허용됩니다.

    의 문자열 표현 partition_column 을 에 찾습니다 pattern. pattern는 LIKE에서 사용되는 문자열 리터럴이어야 합니다.

-- Use the PARTTIONED BY clause in a table definition
> CREATE TABLE student(university STRING,
                       major      STRING,
                       name       STRING)
         PARTITIONED BY(university, major)

> CREATE TABLE professor(name STRING)
         PARTITIONED BY(university STRING,
                        department STRING);

-- Use the PARTITION specification to INSERT into a table
> INSERT INTO student
         PARTITION(university= 'TU Kaiserslautern') (major, name)
         SELECT major, name FROM freshmen;

-- Use the partition specification to add and drop a partition
> CREATE TABLE log(date DATE, id INT, event STRING)
     USING CSV LOCATION 'dbfs:/log'
     PARTITIONED BY (date);

> ALTER TABLE log ADD PARTITION(date = DATE'2021-09-10');

> ALTER TABLE log DROP PARTITION(date = DATE'2021-09-10');

-- Drop all partitions from the named university, independent of the major.
> ALTER TABLE student DROP PARTITION(university = 'TU Kaiserslautern');