Udostępnij za pośrednictwem


Partycje

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Partycja składa się z podzbioru wierszy w tabeli, które mają taką samą wartość dla wstępnie zdefiniowanego podzestawu kolumn nazywanych kolumnami partycjonowania. Użycie partycji może przyspieszyć wykonywanie zapytań względem tabeli, a także manipulowanie danymi.

Aby użyć partycji, należy zdefiniować zestaw kolumn partycjonowania podczas tworzenia tabeli, dołączając klauzulę PARTITIONED BY .

Podczas wstawiania lub manipulowania wierszami w tabeli usługa Azure Databricks automatycznie wysyła wiersze do odpowiednich partycji.

Możesz również określić partycję bezpośrednio przy użyciu klauzuli PARTITION .

Ta składnia jest również dostępna dla tabel, które nie używają formatu usługi Delta Lake, do szybkiego upuszczania, dodawania lub zmieniania nazwy partycji przy użyciu instrukcji ALTER TABLE.

PARTYCJONOWANE PRZEZ

Klauzula PARTITIONED BY określiła listę kolumn, w których jest partycjonowana nowa tabela.

Składnia

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

Parametry

  • partition_column

    Identyfikator może odwoływać się do column_identifier elementu w tabeli. Jeśli określisz więcej niż jedną kolumnę, nie może istnieć duplikaty. Jeśli odwołujesz się do wszystkich kolumn w tabeli column_specification , zostanie zgłoszony błąd.

  • column_type

    Chyba że element partition_column odwołuje się do elementu column_identifier w tabeli column_specification, column_type definiuje typ danych obiektu partition_column.

    Nie wszystkie typy danych obsługiwane przez usługę Databricks SQL są obsługiwane przez wszystkie źródła danych.

Uwagi

Jeśli nie zdefiniujesz kolumn partycjonowania tabeli usługi Delta Lake odwołujące się do kolumn w specyfikacji kolumny, zawsze są przenoszone na końcu tabeli.

PARTYCJA

Klauzula służy PARTITION do identyfikowania partycji do odpytowania lub manipulowania nią.

Partycja jest identyfikowana przez nazewnictwo wszystkich kolumn i kojarzenie każdej z nich z wartością. Nie trzeba ich określać w określonej kolejności.

Jeśli nie dodasz nowej partycji do istniejącej tabeli, możesz pominąć kolumny lub wartości, aby wskazać, że operacja ma zastosowanie do wszystkich pasujących partycji pasujących pasujących do podzestawu kolumn.

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

Parametry

  • partition_column

    Kolumna o nazwie jako kolumna partycji tabeli. Nie można dwukrotnie określić tej samej kolumny.

  • = partition_value

    Literał typu danych pasujący do typu kolumny partycji. Jeśli pominięto wartość partycji, specyfikacja będzie zgodna ze wszystkimi wartościami dla tej kolumny partycji.

  • LIKE pattern

    Ten formularz jest dozwolony tylko w ALTER SHARE ADD TABLE.

    Pasuje do reprezentacji ciągu na partition_column pattern. pattern musi być literałem ciągu używanym w funkcji LIKE.

Przykłady

-- 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');