Partities
Van toepassing op: Databricks SQL Databricks Runtime
Een partitie bestaat uit een subset rijen in een tabel die dezelfde waarde delen voor een vooraf gedefinieerde subset van kolommen met de naam partitioneringskolommen. Het gebruik van partities kan zowel de query's voor de tabel als de gegevensmanipulatie versnellen.
Wanneer u partities wilt gebruiken, definieert u de set partitioneringskolommen wanneer u een tabel maakt door de clausule PARTITIONED BY op te nemen.
Wanneer u rijen in een tabel invoegt of bewerkt, verzendt Azure Databricks automatisch rijen naar de juiste partities.
U kunt de partitie ook rechtstreeks opgeven met behulp van een PARTITION-component.
Deze syntaxis is ook beschikbaar voor tabellen die geen Delta Lake-indeling gebruiken, om snel partities naar DROP
, ADD
of RENAME
te verplaatsen met behulp van de ALTER TABLE-instructie.
GEPARTITIONEERD DOOR
De PARTITIONED BY
component heeft een lijst met kolommen opgegeven waarmee de nieuwe tabel wordt gepartitioneerd.
Syntaxis
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parameters
-
Een id kan verwijzen naar een
column_identifier
in de tabel. Als u meer dan één kolom opgeeft, mogen er geen duplicaten zijn. Als u naar alle kolommen in de tabelcolumn_specification
verwijst, treedt er een fout op. -
Tenzij de
partition_column
verwijst naar eencolumn_identifier
in decolumn_specification
van de tabel, definieertcolumn_type
het gegevenstype van departition_column
.Niet alle gegevenstypen die worden ondersteund door Databricks SQL, worden ondersteund door alle gegevensbronnen.
Opmerkingen
Tenzij u een Delta Lake-tabel definieert met partitioneringskolommen die verwijzen naar de kolommen in de kolomspecificatie, worden deze kolommen altijd naar het einde van de tabel verplaatst.
PARTITION
U gebruikt de PARTITION
component om een partitie te identificeren die moet worden opgevraagd of gemanipuleerd.
Een partitie wordt geïdentificeerd door alle kolommen te benoemen en elk te koppelen aan een waarde. U hoeft ze niet in een specifieke volgorde op te geven.
Tenzij u een nieuwe partitie aan een bestaande tabel toevoegt, kunt u kolommen of waarden weglaten om aan te geven dat de bewerking van toepassing is op alle overeenkomende partities die overeenkomen met de subset van kolommen.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parameters
-
Een kolom die is aangeduid als een partitiekolom van de tabel. U mag niet twee keer dezelfde kolom opgeven.
= partition_value
Een letterlijke tekst van een gegevenstype dat overeenkomt met het type partitiekolom. Als u een partitiewaarde weglaat, komt de specificatie overeen met alle waarden voor deze partitiekolom.
LIKE pattern
Dit formulier is alleen toegestaan in ALTER SHARE ADD TABLE.
Komt overeen met de tekenreeksweergave van
partition_column
totpattern
.pattern
moet een letterlijke tekenreeks zijn zoals wordt gebruikt in LIKE.
Voorbeelden
-- 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');