Oddíly

Platí pro:zaškrtnutá možnost Ano , kontrola Databricks SQL označená ano Databricks Runtime

Oddíl se skládá z podmnožina řádků v tabulce, které sdílejí stejnou hodnotu pro předdefinovanou podmnožinu sloupců označovanou jako dělicí sloupce. Použití oddílů může urychlit dotazy na tabulku i manipulaci s daty.

Pokud chcete použít oddíly, definujete sadu sloupců dělení při vytváření tabulky zahrnutím klauzule PARTITIONED BY .

Při vkládání nebo manipulaci s řádky v tabulce Azure Databricks automaticky odesílá řádky do příslušných oddílů.

Oddíl můžete také zadat přímo pomocí klauzule PARTITION .

Tato syntaxe je dostupná také pro tabulky, které nepoužívají formát Delta Lake. Oddíly můžete rychle drop, ADD nebo RENAME použít příkaz ALTER TABLE.

DĚLENÍ PODLE

Klauzule PARTITIONED BY určila seznam sloupců, podle kterých je nová tabulka rozdělená na oddíly.

Syntaxe

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

Parametry

  • partition_column

    Identifikátor může odkazovat na v column_identifier tabulce . Pokud zadáte více než jeden sloupec, nesmí existovat žádné duplicity. Pokud odkazujete na všechny sloupce v tabulce column_specification , dojde k chybě.

  • column_type

    Pokud argument partition_column odkazuje na v column_identifier tabulce column_specification, column_type definuje datový typ partition_column.

    Ne všechny datové typy podporované Službou Databricks SQL jsou podporované všemi zdroji dat.

Poznámky

Pokud nedefinujete tabulku Delta Lake, která rozděluje sloupce odkazující na sloupce ve specifikaci sloupce, se vždy přesunou na konec tabulky.

ODDÍL

Klauzuli PARTITION použijete k identifikaci oddílu, který se má dotazovat nebo s nimi manipulovat.

Oddíl se identifikuje pojmenováním všech sloupců a jejich přidružením k hodnotě. Nemusíte je zadávat v určitém pořadí.

Pokud do existující tabulky přidáváte nový oddíl, můžete vynechat sloupce nebo hodnoty, což znamená, že se operace použije pro všechny odpovídající oddíly odpovídající podmnožině sloupců.

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

Parametry

  • partition_column

    Sloupec s názvem jako sloupec oddílu tabulky. Nesmíte zadat stejný sloupec dvakrát.

  • = partition_value

    Literál datového typu, který odpovídá typu sloupce oddílu. Pokud vynecháte hodnotu oddílu, specifikace bude odpovídat všem hodnotám pro tento sloupec oddílu.

  • LIKE pattern

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

    Odpovídá řetězcové reprezentaci pro partition_column .pattern pattern musí 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 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');