Partitioner
Gäller för: Databricks SQL
Databricks Runtime
En partition består av en delmängd rader i en tabell som delar samma värde för en fördefinierad delmängd av kolumner som kallas partitioneringskolumner. Att använda partitioner kan påskynda frågor mot tabellen samt datamanipulering.
Om du vill använda partitioner definierar du uppsättningen partitioneringskolumn när du skapar en tabell genom att inkludera satsen PARTITIONED BY.
När du infogar eller manipulerar rader i en tabell skickar Azure Databricks automatiskt rader till lämpliga partitioner.
Du kan också ange partitionen direkt med hjälp av en PARTITION-sats.
Den här syntaxen är också tillgänglig för tabeller som inte använder Delta Lake-format för att snabbt åtgärda DROP
, ADD
eller RENAME
partitioner med hjälp av kommandot ALTER TABLE.
PARTITIONERAD AV
Satsen PARTITIONED BY
angav en lista över kolumner längs vilka den nya tabellen partitioneras.
Syntax
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parametrar
-
En identifierare kan referera till en
column_identifier
i tabellen. Om du anger fler än en kolumn får det inte finnas några dubbletter. Om du refererar till alla kolumner i tabellenscolumn_specification
utlöses ett fel. -
Om inte
partition_column
refererar till encolumn_identifier
i tabellenscolumn_specification
definierarcolumn_type
datatypen förpartition_column
.Alla datatyper som stöds av Databricks SQL stöds inte av alla datakällor.
Kommentar
Om du inte definierar en partitioneringskolumn för en Delta Lake-tabell, flyttas de kolumner som refererar till kolumnerna i kolumnspecifikationen alltid till slutet av tabellen.
PARTITION
Du använder satsen PARTITION
för att identifiera en partition som ska frågas eller manipuleras.
En partition identifieras genom att namnge alla dess kolumner och associera var och en med ett värde. Du behöver inte ange dem i en viss ordning.
Om du inte lägger till en ny partition i en befintlig tabell kan du utelämna kolumner eller värden för att indikera att åtgärden gäller för alla matchande partitioner som matchar delmängden av kolumner.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parametrar
-
En kolumn som utsetts till partitionskolumn i tabellen. Du kanske inte anger samma kolumn två gånger.
= partition_value
En liternal av en datatyp som motsvarar typen på partitionskolumnen. Om du utelämnar ett partitionsvärde matchar specifikationen alla värden för den här partitionskolumnen.
LIKE pattern
Det här formuläret tillåts endast i ALTER SHARE LÄGG till TABLE.
Matchar strängrepresentationen av
partition_column
tillpattern
.pattern
måste vara en strängliteral som används i LIKE.
Exempel
-- 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');