Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
Databricks Runtime
Poznámka:
Ve spravovaných tabulkách Apache Iceberg podporuje Unity Catalog pouze tekuté shlukování a interpretuje oddíly zadané v PARTITION BY klauzuli jako klíče pro tekuté shlukování.
Databricks doporučuje clustering kapalin pro všechny nové tabulky Delta a spravované tabulky Iceberg. Podívejte se na tabulky spravované službou Unity Catalog v Azure Databricks pro Delta Lake a Apache Iceberg a pro tabulky používejte clustering liquid.
Oddíl se skládá z podmnožiny řádků v tabulce, které sdílejí stejnou hodnotu pro předdefinovanou podmnožinu sloupců označovaných jako rozdělovací 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 také k dispozici pro tabulky, které nepoužívají formát Delta Lake, aby oddíly DROP, ADD nebo RENAME rychle pomocí ALTER TABLE příkazu."
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_identifierv tabulce. Pokud zadáte více než jeden sloupec, nesmí existovat žádné duplicity. Pokud odkazujete na všechny sloupce v tabulcecolumn_specification, dojde k chybě. -
Není-li
partition_columnodkazem nacolumn_identifiervecolumn_specificationtabulky,column_typedefinuje datový typpartition_column.Ne všechny datové typy podporované službou Databricks SQL jsou podporovány všemi zdroji dat.
Poznámky
Pokud nedefinujete sloupce pro dělení tabulky Delta Lake, sloupce, které odkazují na specifikaci sloupců, budou vždy přesunuty na konec tabulky.
PARTITION
Klauzule PARTITION slouží k identifikaci oddílu, se kterým 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 nepřidáváte nový oddíl, můžete vynechat sloupce nebo hodnoty, takže operace se vztahuje na všechny oddíly, které odpovídají podmnožině sloupců.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Parametry
-
Sloupec označený jako oddílový sloupec tabulky. Nemůžete zadat stejný sloupec dvakrát.
= partition_valueLiterál datového typu, který odpovídá typu sloupce oddílu. Pokud vynecháte hodnotu partition, specifikace bude odpovídat všem hodnotám pro tento sloupec partition.
LIKE patternTento formulář je povolen pouze v ALTER SHARE ADD TABLE.
Odpovídá řetězcové reprezentaci znaku
partition_columnpattern.patternmusí být řetězcový literál, jak 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');