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 eseguire rapidamente la partizione in DROP
, ADD
o RENAME
utilizzando l'istruzione ALTER TABLE.
PARTIZIONATO PER
La clausola PARTITIONED BY
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
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 il
partition_column
non faccia riferimento a uncolumn_identifier
nellacolumn_specification
della tabella ,column_type
definisce il tipo di dati delpartition_column
.Non tutti i tipi di dati supportati da Databricks SQL sono supportati da tutte le origini dati.
Note
A meno che non si definisca un partizionamento delle tabelle Delta Lake, le colonne che fanno riferimento a quelle nella specifica di colonna vengono sempre spostate alla fine della tabella.
PARTITION
Usare la clausola PARTITION
per identificare una partizione da interrogare o manipolare.
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');