Sdílet prostřednictvím


Oddíly

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

partition se skládá z podmnožiny řádků v table, které sdílejí stejnou hodnotu v rámci předdefinované podmnožiny columns, označované jako dělení columns. Použití oddílů může urychlit dotazy v systému table i manipulaci s daty.

Pokud chcete použít oddíly, definujete set rozdělení column při vytváření table tím, že zahrnete klauzuli PARTITIONED BY.

Při vkládání nebo úpravě řádků v table Azure Databricks automaticky odesílá řádky do příslušných oddílů.

Můžete také zadat partition přímo pomocí klauzule PARTITION.

Tato syntaxe je dostupná také pro tables, které nepoužívají formát Delta Lake, pro rychlé zpracování DROP, ADD nebo RENAME oddílů pomocí příkazu ALTER TABLE.

DĚLENÉ PODLE

Klauzule PARTITIONED BY specifikovala listcolumns, podél které je nový table rozdělen.

Syntaxe

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

Parameters

  • partition_column

    identifier může odkazovat na column_identifier v table. Pokud zadáte více column nesmí existovat žádné duplicity. Pokud odkazujete na všechny columns v column_specification objektu table, dojde k chybě.

  • column_type

    Pokud partition_column neodkazuje na column_identifier v tablecolumn_specification, column_type definuje datový typ partition_column.

    Ne všechny datové typy podporované službou Databricks SQL jsou podporovány všemi zdroji dat.

Notes

Pokud nedefinujete rozdílové table dělení columns odkazující na columns ve specifikaci column se vždy přesunou na konec table.

PARTITION

Klauzule PARTITION slouží k identifikaci partition, které má být dotazováno nebo manipulováno.

partition je identifikován pojmenováním všech svých columns a přiřazením hodnoty každé z nich. Nemusíte je zadávat v určitém pořadí.

Pokud přidáváte nový partition ke stávajícímu table, můžete vynechat columns nebo values, aby bylo jasné, že se operace vztahuje na všechny odpovídající oddíly v podmnožině columns.

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

Parameters

  • partition_column

    column je pojmenován jako partitioncolumn té table. Stejnou column nemusíte zadávat dvakrát.

  • = partition_value

    Literál datového typu odpovídající typu partitioncolumn. Pokud vynecháte hodnotu partition, specifikace bude odpovídat všem values pro tento partitioncolumn.

  • LIKE pattern

    Tento formulář je povolen pouze v ALTER SHARE ADD TABLE.

    Odpovídá řetězcové reprezentaci znaku partition_columnpattern. patternmusí být řetězcový literál, který se používá v like.

Příklady

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