Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Databricks SQL
Databricks Runtime
Eine Partition besteht aus einer Teilmenge von Zeilen in einer Tabelle, die denselben Wert für eine vordefinierte Teilmenge von Spalten, den sogenannten Partitionierungsspalten, aufweisen. Die Verwendung von Partitionen kann Abfragen für die Tabelle sowie die Datenbearbeitung beschleunigen.
Um Partitionen zu verwenden, definieren Sie den Satz der Partitionsspalten beim Erstellen einer Tabelle, indem Sie die Klausel PARTITIONED BY einfügen.
Beim Einfügen oder Bearbeiten von Zeilen in einer Tabelle weist Azure Databricks Zeilen automatisch den geeigneten Partitionen zu.
Sie können die Partition auch direkt mithilfe einer PARTITION Klausel angeben.
Diese Syntax steht auch für Tabellen zur Verfügung, die nicht das Delta Lake-Format verwenden, um DROP
, ADD
oder RENAME
Partitionen schnell mithilfe der ALTER TABLE Anweisung zu bearbeiten.
PARTITIONIERT NACH
Die PARTITIONED BY
-Klausel gibt eine Liste von Spalten an, mit denen die neue Tabelle partitioniert wird.
Syntax
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parameter
-
Ein Bezeichner kann auf einen
column_identifier
in der Tabelle verweisen. Wenn Sie mehrere Spalten angeben, dürfen keine Duplikate vorhanden sein. Wenn Sie auf alle Spalten in der Tabellecolumn_specification
verweisen, wird ein Fehler ausgelöst. -
Sofern sich der
partition_column
nicht auf einecolumn_identifier
in dercolumn_specification
-Tabelle bezieht, definiertcolumn_type
den Datentyp despartition_column
.Nicht alle von Databricks SQL unterstützten Datentypen werden von allen Datenquellen unterstützt.
Notizen
Wenn Sie keine Delta Lake-Tabelle definieren, werden Partitionierungsspalten, die auf die Spalten in der Spaltenspezifikation verweisen, immer an das Ende der Tabelle verschoben.
PARTITION
Sie verwenden die PARTITION
-Klausel, um eine Partition anzugeben, die abgefragt oder bearbeitet werden soll.
Eine Partition wird angegeben, indem alle zugehörigen Spalten benannt werden und ihnen jeweils ein Wert zugeordnet wird. Sie müssen sie nicht in einer bestimmten Reihenfolge angeben.
Sofern Sie einer vorhandenen Tabelle keine neue Partition hinzufügen, können Sie Spalten oder Werte weglassen, um anzugeben, dass der Vorgang für alle Partitionen gilt, die der Teilmenge der Spalten entsprechen.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parameter
-
Eine Spalte, die als Partitionsspalte der Tabelle angegeben wird. Sie dürfen dieselbe Spalte nicht zweimal angeben.
= partition_value
Ein Literal eines Datentyps, der mit dem Typ der Partitionsspalte übereinstimmt. Wenn Sie einen Partitionswert weglassen, gleicht die Spezifikation alle Werte für diese Partitionsspalte ab.
LIKE pattern
Dieses Formular ist nur in ALTER SHARE ADD TABLEzulässig.
Gleicht die Zeichenfolgendarstellung von
partition_column
mitpattern
ab.pattern
muss ein Zeichenfolgenliteral sein, das wie in LIKE verwendet wird.
Beispiele
-- 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');