Partycji
Dotyczy: wyboru SQL usługi Databricks 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, uwzględniają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 w przypadku tabel, które nie używają formatu usługi Delta Lake, do szybkiego drop, ADD lub RENAME partycji przy użyciu instrukcji ALTER TABLE.
PARTYCJONOWANE WEDŁUG
Klauzula PARTITIONED BY
określała listę kolumn, na których jest podzielona nowa tabela.
Składni
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parametry
-
Identyfikator może odwoływać się do elementu
column_identifier
w tabeli. Jeśli określisz więcej niż jedną kolumnę, nie może być żadnych duplikatów. Jeśli odwołasz się do wszystkich kolumn w tabelicolumn_specification
, zostanie zgłoszony błąd. -
Jeśli element
partition_column
nie odwołuje się do elementucolumn_identifier
w tabelicolumn_specification
,column_type
definiuje typ danych .partition_column
Nie wszystkie typy danych obsługiwane przez usługę Databricks SQL są obsługiwane przez wszystkie źródła danych.
Notatki
Jeśli nie zdefiniujesz kolumn partycjonowania tabeli usługi Delta Lake odwołujących się do kolumn w specyfikacji kolumny, zawsze są przenoszone na koniec tabeli.
PARTYCJI
Klauzula służy PARTITION
do identyfikowania partycji do odpytowania lub manipulowania nią.
Partycja jest identyfikowana przez nadanie wszystkim kolumnom nazwy i kojarzenie każdej z nich z wartością. Nie musisz określać ich 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 do podzestawu kolumn.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parametry
-
Kolumna o nazwie jako kolumna partycji tabeli. Możesz nie podać tej samej kolumny dwa razy.
= 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 funkcji ALTER SHARE ADD TABLE.
Dopasuje reprezentację ciągu do
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');