Partizioni
Si applica a: Databricks SQL Databricks Runtime
Una partizione è costituita da un subset di righe in una tabella che condividono lo stesso valore per un subset predefinito di colonne denominate colonne di partizionamento. L'uso di partizioni consente di velocizzare le query sulla tabella e la manipolazione dei dati.
Per usare le partizioni, definire il set di colonne di partizionamento quando si crea una tabella includendo la clausola PARTITIONED BY .
Quando si inseriscono o si modificano righe in una tabella, Azure Databricks invia automaticamente le righe nelle partizioni appropriate.
È anche possibile specificare la partizione direttamente usando una clausola PARTITION .
Questa sintassi è disponibile anche per le tabelle che non usano il formato Delta Lake, per eliminare, aggiungere o rinominare rapidamente le partizioni usando l'istruzione ALTER TABLE.
PARTIZIONATO DA
La PARTITIONED BY
clausola ha specificato un elenco di colonne lungo cui è partizionata la nuova tabella.
Sintassi
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parametri
-
Un identificatore può fare riferimento a un oggetto
column_identifier
nella tabella. Se si specificano più colonne non devono essere presenti duplicati. Se si fa riferimento a tutte le colonne della tabellacolumn_specification
viene generato un errore. -
A meno che non
partition_column
faccia riferimento a uncolumn_identifier
oggetto nella tabellacolumn_specification
,column_type
definisce il tipo di dati dell'oggettopartition_column
.Non tutti i tipi di dati supportati da Databricks SQL sono supportati da tutte le origini dati.
Note
A meno che non si definisci un partizionamento di tabelle Delta Lake che fanno riferimento alle colonne nella specifica di colonna, vengono sempre spostate alla fine della tabella.
PARTITION
Usare la PARTITION
clausola per identificare una partizione su cui eseguire query o modificare.
Una partizione viene identificata assegnando un nome a tutte le colonne e associandole a un valore. Non è necessario specificarli in un ordine specifico.
A meno che non si stia aggiungendo una nuova partizione a una tabella esistente, è possibile omettere colonne o valori per indicare che l'operazione si applica a tutte le partizioni corrispondenti corrispondenti al subset di colonne.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parametri
-
Colonna denominata come colonna di partizione della tabella. Non è possibile specificare due volte la stessa colonna.
= partition_value
Valore letterale di un tipo di dati corrispondente al tipo della colonna di partizione. Se si omette un valore di partizione, la specifica corrisponderà a tutti i valori per questa colonna di partizione.
LIKE pattern
Questo modulo è consentito solo in ALTER SHARE ADD TABLE.
Trova la corrispondenza con la rappresentazione di stringa di
partition_column
apattern
.pattern
deve essere un valore letterale stringa usato in LIKE.
Esempi
-- 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');