Partizioni
Si applica a: controllo SQL databricks Databricks Runtime
Una partizione è costituita da un subset di righe in una tabella che condivide lo stesso valore per un subset predefinito di colonne denominate colonne di partizionamento. L'uso di partizioni può 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 modificano righe in una tabella Azure Databricks invia automaticamente 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 DROP, ADD o RENAME le partizioni rapidamente usando l'istruzione ALTER TABLE.
PARTIZIONATO DA
La PARTITIONED BY
clausola ha specificato un elenco di colonne lungo cui viene partizionata la nuova tabella.
Sintassi
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parametri
-
Un identificatore può fare riferimento a un
column_identifier
oggetto nella tabella. Se si specificano più colonne non devono essere duplicati. Se si fa riferimento a tutte le colonne nella tabellacolumn_specification
viene generato un errore. -
A meno che il
partition_column
riferimento a uncolumn_identifier
nella tabella noncolumn_specification
column_type
definisca il tipo di dati dipartition_column
.Non tutti i tipi di dati supportati da Databricks SQL sono supportati da tutte le origini dati.
Note
A meno che non si definiscano colonne di partizionamento di tabelle Delta Lake che fanno riferimento alle colonne nella specifica della colonna vengono sempre spostate alla fine della tabella.
PARTIZIONE
Si usa la PARTITION
clausola per identificare una partizione da eseguire query o modificare.
Una partizione viene identificata mediante la denominazione di tutte le colonne e l'associazione di ognuna con 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 che corrispondono al subset di colonne.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parametri
-
Colonna denominata come colonna di partizione della tabella. Non è possibile specificare la stessa colonna due volte.
= 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.
Corrisponde alla rappresentazione 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 LOCATION 'dbfs:/log'
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');