Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime
Megjegyzés:
Felügyelt Apache Iceberg-táblákon a Unity Catalog csak a folyékony fürtözést támogatja, és a PARTITION BY záradékban megadott partíciókat fürtözési kulcsként értelmezi a folyékony fürtözéshez.
A Databricks az összes új Delta-táblához és kezelt Iceberg-táblához a folyékony fürtözést javasolja. Lásd: Unity Catalog által felügyelt táblákat az Azure Databricksben Delta Lake és Apache Iceberg esetén. Továbbá folyékony klaszterezés használata táblákhoz.
A partíciók egy tábla sorainak egy részhalmazából állnak, amelyek ugyanazt az értéket használják a particionáló oszlopoknevű előre definiált oszlophalmazhoz. A partíciók használata felgyorsíthatja a lekérdezéseket a táblán, valamint az adatmanipulációt is.
Partíciók használatához meg kell határoznia a particionálási oszlopkészletet a tábla létrehozásakor a PARTITIONED BY záradékkal.
Sorok táblázatba való beszúrásakor vagy módosításakor az Azure Databricks automatikusan sorokat küld a megfelelő partíciókba.
A partíciót közvetlenül is megadhatja egy PARTITION záradék használatával.
Ez a szintaxis olyan táblák esetében is elérhető, amelyek nem Delta Lake-formátumot használnak, lehetővé téve a DROP, ADD vagy RENAME partíciók gyors ALTER TABLE utasítással történő kezelését.
PARTÍCIÓ RENDELKEZÉSRE ÁLLVA
A PARTITIONED BY záradék azoknak az oszlopoknak a listáját adta meg, amelyek mentén az új tábla particionálása történik.
Szintaxis
PARTITIONED BY ( { partition_column [ column_type ] } [, ...] )
Paraméterek
-
Egy azonosító hivatkozhat a
column_identifier-ra a táblában. Ha egynél több oszlopot ad meg, nem lehetnek ismétlődések. Ha a táblacolumn_specificationösszes oszlopára hivatkozik, hiba jelenik meg. -
Hacsak a
partition_columnnem egycolumn_identifier-ra hivatkozik a táblacolumn_specification-jében, acolumn_typehatározza meg a(z)partition_columnadattípusát.A Databricks SQL által támogatott adattípusokat nem minden adatforrás támogatja.
Jegyzetek
Ha nem határoz meg delta lake-tábla particionálási oszlopokat, amelyek az oszlopspecifikáció oszlopaira hivatkoznak, a rendszer mindig a tábla végére helyezi át az oszlopokat.
PARTITION
A PARTITION záradék használatával azonosíthatja a lekérdezni vagy manipulálni kívánt partíciókat.
A partíciók az összes oszlop elnevezésével és egy értékkel való társításával azonosíthatók. Ezeket nem kell megadott sorrendben megadnia.
Ha nem ad hozzá új partíciót egy meglévő táblához, kihagyhat oszlopokat vagy értékeket, amelyek jelzik, hogy a művelet az oszlopok részhalmazának megfelelő összes egyező partícióra vonatkozik.
PARTITION ( { partition_column [ = partition_value | LIKE pattern ] } [ , ... ] )
Paraméterek
-
A tábla partícióoszlopaként elnevezett oszlop. Nem adhatja meg ugyanazt az oszlopot kétszer.
= partition_valueA partícióoszlop típusának megfelelő adattípus literálja. Ha kihagy egy partícióértéket, a specifikáció megegyezik a partícióoszlop összes értékével.
LIKE patternEz az űrlap csak a ALTER SHARE ADD TABLEesetében engedélyezett.
Megegyezik a
partition_columnkarakterlánc reprezentációja apatternkarakterlánccal.patternOlyan sztringkonstansnak kell lennie, mint amilyet a LIKE használ.
Példák
-- 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');