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


Mik azok a törlési vektorok?

A törlési vektorok a Delta Lake-táblákon engedélyezhető tárolási optimalizálási funkció. Alapértelmezés szerint egy adatfájl egyetlen sorának törlésekor a rekordot tartalmazó teljes Parquet-fájlt újra kell írni. Ha a tábla törlési vektorai engedélyezve vannak, DELETEUPDATEMERGE és a műveletek törlési vektorokkal jelölik meg a meglévő sorokat eltávolítottként vagy módosítva, a Parquet-fájl újraírása nélkül. A táblázat későbbi olvasásai úgy oldják fel a táblázat aktuális állapotát, hogy a törlési vektorok által jelzett törléseket a legújabb táblaverzióra alkalmazzák.

A Databricks azt javasolja, hogy a Databricks Runtime 14.3 LTS és újabb verziók használatával írjon táblákat törlési vektorokkal az összes optimalizálás használatához. A Databricks Runtime 12.2 LTS és újabb verziókban engedélyezett törlési vektorokkal rendelkező táblákat olvashatja.

A Databricks Runtime 14.2-es és újabb verziókban a törlési vektorokkal rendelkező táblák támogatják a sorszintű egyidejűséget. Lásd: Írási ütközések sorszintű egyidejűséggel.

Feljegyzés

A Photon a törlési vektorokat használja a prediktív I/O-frissítésekhez, a gyorsításhoz DELETEMERGEés UPDATE a műveletekhez. A törlési vektorok olvasását támogató összes ügyfél képes olvasni a törlési vektorokat eredményező frissítéseket, függetlenül attól, hogy a prediktív I/O hozta-e létre ezeket a frissítéseket. Lásd: Prediktív I/O használata a frissítések felgyorsításához.

Törlési vektorok engedélyezése

Fontos

A munkaterület-rendszergazdai beállítás azt szabályozza, hogy a törlési vektorok automatikusan engedélyezve legyenek-e az új Delta-táblákhoz. Lásd: Törlési vektorok automatikus engedélyezése.

Ha a törlési vektorok automatikus engedélyezésének vezérlésére szolgáló munkaterület-beállítás van használatban, akkor a táblatípusokhoz kiválasztott beállítás alapján a törlési vektorok alapértelmezés szerint engedélyezve lesznek, amikor új táblát hoz létre egy SQL Warehouse vagy a Databricks Runtime 14.1 vagy újabb verziójával. A törlési vektorok alapértelmezés szerint nem engedélyezettek materializált nézetek vagy streamtáblák létrehozásakor, és manuálisan kell engedélyezni a materializált nézet vagy a streamelési tábla létrehozásakor.

Ha manuálisan szeretné engedélyezni a törlési vektorok támogatását egy táblában vagy nézetben, használja a delta.enableDeletionVectors táblatulajdonságot. A tábla létrehozásakor vagy módosításakor manuálisan engedélyezheti a törlési vektorokat a deltatáblákon. A törlési vektorokat csak a materializált nézet vagy a Stream tábla létrehozásakor engedélyezheti manuálisan. Nem használhat utasítást ALTER a törlési vektorok engedélyezésére materializált nézetben vagy streamelési táblában.

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Figyelmeztetés

Ha engedélyezi a törlési vektorokat, a táblaprotokoll frissül. A frissítés után a tábla nem lesz olvasható a törlési vektorokat nem támogató Delta Lake-ügyfelek számára. Lásd: Hogyan kezeli az Azure Databricks a Delta Lake funkció kompatibilitását?.

A Databricks Runtime 14.1-es és újabb verziókban elvetheti a törlési vektorok táblafunkcióját, hogy kompatibilis legyen más Delta-ügyfelekkel. Lásd Delta táblázat törlési funkciók.

Módosítások alkalmazása Parquet-adatfájlokra

A törlési vektorok olyan helyreállítható törlésként jelzik a sorok módosítását, amelyek logikailag módosítják a Meglévő Parquet-adatfájlokat a Delta Lake-táblában. Ezeket a módosításokat fizikailag alkalmazza a rendszer, ha az alábbi események egyike miatt az adatfájlok újra lesznek írva:

  • A rendszer futtat egy OPTIMIZE parancsot a táblában.
  • Az automatikus tömörítés aktiválja egy adatfájl újraírását egy törlési vektorral.
  • REORG TABLE ... APPLY (PURGE) a rendszer futtatja a táblát.

A fájltömörítéssel kapcsolatos események nem rendelkeznek szigorú garanciákkal a törlési vektorokban rögzített változások feloldására, és előfordulhat, hogy a törlési vektorokban rögzített egyes módosítások nem alkalmazhatók, ha a céladatfájlok egyébként nem lennének a fájltömörítés jelöltjei. REORG TABLE ... APPLY (PURGE) a törlési vektorokkal rögzített módosításokkal rendelkező rekordokat tartalmazó összes adatfájlt újraírja. Lásd REORG TABLE.

Feljegyzés

A módosított adatok továbbra is létezhetnek a régi fájlokban. A régi fájlok fizikai törléséhez futtathat VACUUM. REORG TABLE ... APPLY (PURGE) a tábla egy új verzióját hozza létre, amikor befejeződik. Ez a befejezési idő az az időbélyeg, amelyet figyelembe kell vennie ahhoz, hogy a művelet teljes mértékben eltávolítsa a VACUUM törölt fájlokat. Lásd: Nem használt adatfájlok eltávolítása a VACUUM parancs segítségével.

Kompatibilitás Delta-ügyfelekkel

Az Azure Databricks törlési vektorokkal használja a prediktív I/O-t a Photon-kompatibilis számítási frissítésekhez. Lásd: Prediktív I/O használata a frissítések felgyorsításához.

Az olvasási és írási műveletek törlési vektorainak használata ügyfélenként eltérő.

Az alábbi táblázat a Delta-táblák olvasásához és írásához szükséges ügyfélverziókat jelöli, amelyeken engedélyezve van a törlési vektor, és meghatározza, hogy mely írási műveletek használnak törlési vektorokat:

Ügyfél Törlési vektorok írása Törlési vektorok olvasása
Databricks Runtime és Photon Támogatja MERGEa UPDATEDELETE Databricks Runtime 12.2 LTS és újabb verzióját. A Databricks Runtime 12.2 LTS-t vagy újabb verziót igényel.
Databricks Runtime Photon nélkül Támogatja DELETE a Databricks Runtime 12.2 LTS és újabb verzióját. Támogatja UPDATE a Databricks Runtime 14.1 és újabb verzióját. Támogatja MERGE a Databricks Runtime 14.3 LTS és újabb verzióját. A Databricks Runtime 12.2 LTS-t vagy újabb verziót igényel.
OSS Apache Spark és OSS Delta Lake Támogatja DELETE az OSS Delta 2.4.0-s vagy újabb verzióját. Támogatja UPDATE az OSS Delta 3.0.0 vagy újabb verzióját. Az OSS Delta 2.3.0-s vagy újabb verziójára van szükség.
Delta Sharing-címzettek Az írások nem támogatottak a Delta-megosztási táblákban Databricks: DBR 14.1 vagy újabb verziót igényel. Nyílt forráskódú Apache Spark: 3.1-et vagy újabb verziót igényel delta-sharing-spark .

Feljegyzés

A többi Delta-ügyféllel kapcsolatos támogatásért tekintse meg az OSS Delta Lake-integrációs dokumentációját.

Korlátozások

  • Az UniForm nem támogatja a törlési vektorokat.
  • Nem használhat GENERATE utasítást jegyzékfájl létrehozásához egy olyan táblához, amely törlési vektorokat használó fájlokat tartalmaz. Jegyzék létrehozásához először futtasson egy REORG TABLE ... AZ APPLY (PURGE) utasítás, majd futtassa a GENERATE utasítást. Győződjön meg arról, hogy az utasítás elküldésekor nem futnak egyidejű írási REORG műveletek.
  • Nem hozhat létre növekményes jegyzékfájlokat olyan táblákhoz, amelyeken engedélyezve van a törlési vektor (például a táblatulajdonság delta.compatibility.symlinkFormatManifest.enabled=truebeállításával).
  • Ha engedélyezi a törlési vektorokat egy materializált nézetben vagy streamelési táblában, majd letiltja a törlési vektorokat, a jövőbeli írások a nézetbe vagy táblába nem használhatók törlési vektorok, de a meglévő törlési vektorok nem lesznek eltávolítva.
  • A törlési vektorok materializált nézeten vagy streamelési táblán való engedélyezése után nem lehet visszaminősíteni a táblaprotokollt. Az engedélyezés után a törlési vektorok táblafunkciója nem távolítható el, még akkor sem, ha később letiltja a törlési vektorokat a nézetben vagy a táblában.