Partitioner

Gäller för:check markerad ja Databricks SQL-kontroll markerad som ja Databricks Runtime

En partition består av en delmängd rader i en tabell som delar samma värde för en fördefinierad delmängd av kolumner som kallas partitioneringskolumner. Att använda partitioner kan påskynda frågor mot tabellen samt datamanipulering.

Om du vill använda partitioner definierar du uppsättningen partitioneringskolumn när du skapar en tabell genom att inkludera satsen PARTITIONED BY .

När du infogar eller manipulerar rader i en tabell skickar Azure Databricks automatiskt rader till lämpliga partitioner.

Du kan också ange partitionen direkt med hjälp av en PARTITION-sats .

Den här syntaxen är också tillgänglig för tabeller som inte använder Delta Lake-format, till DROP-, ADD- eller RENAME-partitioner snabbt med hjälp av ALTER TABLE-instruktionen.

PARTITIONERAD AV

Satsen PARTITIONED BY angav en lista över kolumner längs vilka den nya tabellen är partitionerad.

Syntax

PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )

Parametrar

  • partition_column

    En identifierare kan referera till en column_identifier i tabellen. Om du anger fler än en kolumn får det inte finnas några dubbletter. Om du refererar till alla kolumner i tabellen column_specification utlöses ett fel.

  • column_type

    partition_column Såvida inte refererar till en column_identifier i tabellens column_specification, column_type definierar datatypen för partition_column.

    Alla datatyper som stöds av Databricks SQL stöds inte av alla datakällor.

Anteckningar

Såvida du inte definierar en Delta Lake-tabell som partitionerar kolumner som refererar till kolumnerna i kolumnspecifikationen flyttas alltid till slutet av tabellen.

PARTITION

Du använder PARTITION -satsen för att identifiera en partition som ska frågas eller manipuleras.

En partition identifieras genom att namnge alla dess kolumner och associera var och en med ett värde. Du behöver inte ange dem i en viss ordning.

Om du inte lägger till en ny partition i en befintlig tabell kan du utelämna kolumner eller värden för att ange att åtgärden gäller för alla matchande partitioner som matchar delmängden av kolumnerna.

PARTITION ( { partition_column  [ = partition_value | LIKE pattern ] } [ , ... ] )

Parametrar

  • partition_column

    En kolumn med namnet som en partitionskolumn i tabellen. Du kanske inte anger samma kolumn två gånger.

  • = partition_value

    En literal av en datatyp som matchar typen av partitionskolumn. Om du utelämnar ett partitionsvärde matchar specifikationen alla värden för den här partitionskolumnen.

  • LIKE pattern

    Det här formuläret tillåts endast i ALTER SHARE ADD TABLE.

    Matchar strängrepresentationen för partition_column till pattern. pattern måste vara en strängliteral som används i LIKE.

Exempel

-- 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');