Oddíly
Platí pro: Databricks SQL Databricks Runtime
Oddíl se skládá z podmnožina řádků v tabulce, která sdílí stejnou hodnotu pro předdefinovanou podmnožinu sloupců označovaných jako sloupce dělení. 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, k rychlému vložení, přidání nebo přejmenování oddílů pomocí příkazu ALTER TABLE.
DĚLENÉ PODLE
Klauzule PARTITIONED BY
určila seznam sloupců, ve kterých je nová tabulka rozdělená na oddíly.
Syntaxe
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Parametry
-
Identifikátor může odkazovat na
column_identifier
tabulku. Pokud zadáte více než jeden sloupec, nesmí existovat žádné duplicity. Pokud odkazujete na všechny sloupce v tabulcecolumn_specification
, dojde k chybě. -
partition_column
Pokud odkazuje na datovýcolumn_identifier
typ v tabulcecolumn_specification
,column_type
definuje datový typpartition_column
.Ne všechny datové typy podporované službou Databricks SQL jsou podporovány všemi zdroji dat.
Notes
Pokud nedefinujete sloupce tabulky Delta Lake odkazující na sloupce ve specifikaci sloupce, vždy se přesunou na konec tabulky.
ODDÍL
Klauzuli PARTITION
použijete k identifikaci oddílu, který se má dotazovat nebo manipulovat.
Oddíl je identifikován pojmenováním všech sloupců a přidružením každého 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, které indikují, že operace se vztahuje na všechny odpovídající oddíly odpovídající podmnožině sloupců.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parametry
-
Sloupec pojmenovaný jako sloupec oddílu tabulky. Stejný sloupec nemusíte zadávat 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 ALTER SHARE ADD TABLE.
Odpovídá řetězcové reprezentaci znaku
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
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');