Megosztás a következőn keresztül:


Partíciók

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet 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

  • partíció_oszlop

    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ábla column_specification összes oszlopára hivatkozik, hiba jelenik meg.

  • oszlop_típus

    Hacsak a partition_column nem egy column_identifier-ra hivatkozik a tábla column_specification-jében, a column_type határozza meg a(z) partition_column adattí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

  • partíció_oszlop

    A tábla partícióoszlopaként elnevezett oszlop. Nem adhatja meg ugyanazt az oszlopot kétszer.

  • = partition_value

    A 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 pattern

    Ez az űrlap csak a ALTER SHARE ADD TABLEesetében engedélyezett.

    Megegyezik a partition_column karakterlánc reprezentációja a pattern karakterlánccal. pattern Olyan 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');