Delen via


Partities

Van toepassing op: vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Een partitie bestaat uit een subset rijen in een tabel die dezelfde waarde delen voor een vooraf gedefinieerde subset van kolommen die de partitioneringskolommen worden genoemd. Met behulp van partities kunnen query's voor de tabel worden versneld, evenals gegevensmanipulatie.

Als u partities wilt gebruiken, definieert u de set partitioneringskolommen wanneer u een tabel maakt door de component 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 DROP, ADD of RENAME te verwijderen met behulp van de instructie ALTER TABLE.

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

  • partition_column

    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 tabel column_specification verwijst, wordt er een fout gegenereerd.

  • column_type

    Tenzij de partition_column verwijzing naar een column_identifier in de tabel column_specificationverwijst, column_type definieert u het gegevenstype van het partition_column.

    Niet alle gegevenstypen die worden ondersteund door Databricks SQL, worden ondersteund door alle gegevensbronnen.

Opmerkingen

Tenzij u een Delta Lake-tabel met partitioneringskolommen definieert die verwijzen naar de kolommen in de kolomspecificatie, worden 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

  • partition_column

    Een kolom met de naam 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 tot pattern. 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');