Partycje
Dotyczy: Databricks SQL 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 DROP
, ADD
lub RENAME
partycji szybko 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
-
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 tabelicolumn_specification
, zostanie zgłoszony błąd. -
Chyba że element
partition_column
odwołuje się do elementucolumn_identifier
w tabelicolumn_specification
,column_type
definiuje typ danych obiektupartition_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
-
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
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');