Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
Databricks SQL
Databricks Runtime
Uwaga / Notatka
W zarządzanych tabelach Apache Iceberg, Unity Catalog obsługuje tylko klastrowanie płynne i interpretuje partycje określone w klauzuli PARTITION BY jako klucze klastrowania dla klastrowania płynnego.
Databricks zaleca wykorzystanie liquid clustering dla wszystkich nowych tabel Delta oraz zarządzanych tabel Iceberg. Zobacz Tabele zarządzane przez katalog Unity w usłudze Azure Databricks dla Delta Lake i Apache Iceberg oraz Użyj klastrowania płynnego dla tabel.
Partycja składa się z podzbioru wierszy w tabeli, które mają taką samą wartość dla wstępnie zdefiniowanego podzbioru kolumn określanych jako kolumny 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 dla tabel, które nie używają formatu Delta Lake, aby szybko DROP, ADD lub RENAME partycjonować 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_identifierw 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_columnodwołuje się do elementucolumn_identifierw tabelicolumn_specification,column_typedefiniuje 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 Delta Lake, kolumny określone w specyfikacji kolumny, które się do nich odnoszą, zawsze są przenoszone na koniec tabeli.
PARTITION
Klauzula PARTITION służy do identyfikowania partycji, którą należy odpytać lub nią manipulować.
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 określona jako kolumna partycji tabeli. Nie można dwukrotnie określić tej samej kolumny.
= partition_valueLiterał 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 patternTen formularz jest dozwolony tylko w ALTER SHARE ADD TABLE.
Dopasowuje reprezentację ciągu
partition_columndopattern.patternmusi być literałem ciągu, jak w 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');