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


Sorkövetés használata Delta-táblákhoz

A Delta Lake-sorkövetés lehetővé teszi, hogy az Azure Databricks nyomon kövesse a sorszintű sorszintű leválasztásokat egy Delta-táblában. Ez a funkció a materializált nézetek néhány növekményes frissítéséhez szükséges.

Fontos

A Delta Lake-sorkövetés a Databricks Runtime 14.1-ben és újabb verziókban érhető el.

A sorkövetés egy táblafunkció, és magasabb táblaíró protokollt használ, mint néhány Delta Lake-ügyfél. A táblaprotokoll-verziók nem vonhatók vissza, és a sorkövetést engedélyező táblák nem írhatók olyan Delta Lake-ügyfelek számára, amelyek nem támogatják az összes engedélyezett Delta-író protokoll táblafunkcióját. Lásd: Hogyan kezeli az Azure Databricks a Delta Lake funkció kompatibilitását?.

Sorkövetés engedélyezése

A táblatulajdonság delta.enableRowTracking = truebeállításával explicit módon engedélyeznie kell a sorkövetést.

Ezt a táblázat létrehozása során teheti meg, ahogyan az alábbi példában is látható:

CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;

A sorkövetés engedélyezéséhez módosíthat egy meglévő táblát, ahogyan az alábbi példában is látható:

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);

Fontos

A meglévő táblák sorkövetésének engedélyezése automatikusan sorazonosítókat és sor véglegesítési verziókat rendel a tábla összes meglévő sorához. Ez a folyamat a tábla több új verziójának létrehozását eredményezheti, és jelentős időt vehet igénybe.

A Delta-táblák klónozása külön előzményt hoz létre, így a klónozott táblák sorazonosítói és sor véglegesítési verziói nem egyeznek meg az eredeti táblában lévőkkel.

Mi a sorkövetési metaadatmezők sémája?

A sorkövetés két rejtett metaadatmezőt ad hozzá a táblához. Ezeket a mezőket explicit módon is hozzáadhatja a lekérdezéshez az értékek visszaadásához.

Oszlop neve Típus Értékek Magyarázat
_metadata.row_id Hosszú A sor egyedi azonosítója. A sorok ugyanazt az azonosítót őrzik meg, amikor egy vagy MERGE több UPDATE utasítással módosítják.
_metadata.row_commit_version Hosszú A Delta-napló vagy a táblázat azon verziója, amelyben a sort legutóbb beszúrták vagy frissítették. A sor új verzióhoz lesz rendelve, amikor egy vagy MERGE több UPDATE utasítással módosítják.

Egyes műveletek ezeket a metaadatmezőket a tranzakciónapló használatával tárolják. A sorkövetést engedélyező táblák futtatása OPTIMIZE vagy REORG műveletei újraírják az adatfájlokat a mezők tárolásához.

Sorkövetés letiltása

A sorkövetés letiltható a táblatulajdonság falsebeállításával.

ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);

Fontos

A sorkövetés letiltása nem távolítja el a megfelelő táblafunkciót, és nem váltja le a táblaprotokoll verzióját. Emellett nem távolítja el a metaadatmezőket a céltáblából.

Ha a sorkövetés le van tiltva, a létrehozott sorazonosítók már nem megbízhatók az egyedi sorok nyomon követéséhez.

Korlátozások

A sorazonosítók és a sor véglegesítési verzióinak metaadatmezői nem érhetők el a változásadatcsatorna olvasása közben. Lásd: Delta Lake change data feed használata az Azure Databricksben.