Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Beschikbaar in Databricks Runtime 14.1 en hoger kent rijtracking aan elke rij stabiele rij-id's en rijcommitversies toe, waarmee afstamming op rijniveau mogelijk wordt. Voor sommige incrementele updates voor gerealiseerde weergaven is deze functie vereist.
Alle Apache Iceberg v3-tabellen bevatten rijtracering. Zie Apache Iceberg v3-functies gebruiken. Voor Delta Lake-tabellen moet u het bijhouden van rijen expliciet inschakelen.
Note
Als u het bijhouden van rijen inschakelt, wordt het writer-protocol van de tabel bijgewerkt en kan dit gevolgen hebben voor de compatibiliteit met externe Delta Lake-clients. Bekijk de compatibiliteit en protocollen van Delta Lake-functies.
Het bijhouden van rijen inschakelen voor Delta Lake-tabellen
Als u rijtracering wilt inschakelen voor een Delta Lake-tabel, stelt u de tabeleigenschap delta.enableRowTracking = true in bij het aanmaken van de tabel.
CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;
Als u rijtracking wilt inschakelen voor een bestaande Delta Lake-tabel, gebruikt u het volgende voorbeeld:
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);
Important
Als u rijtracking voor bestaande tabellen inschakelt, worden rij-ID's en rijcommitversies automatisch toegewezen aan alle bestaande rijen in de tabel. Dit proces kan ertoe leiden dat er meerdere nieuwe versies van de tabel worden gemaakt en dat het veel tijd kost om deze te voltooien.
Wanneer je een tabel kloont, wordt er een aparte geschiedenis gemaakt, waardoor de rij-ID's en rijcommitmentversies op gekloonde tabellen niet overeenkomen met die in de oorspronkelijke tabel.
Metagegevensvelden
Rijtracering voegt twee verborgen metagegevensvelden toe aan de tabel. U kunt deze velden expliciet toevoegen aan uw query om de waarden te retourneren.
| Kolomnaam | Type | Values | Explanation |
|---|---|---|---|
_metadata.row_id |
Long | De unieke identificatiecode van de rij. | Een rij behoudt dezelfde ID wanneer deze wordt gewijzigd met behulp van een MERGE- of UPDATE-instructie. |
_metadata.row_commit_version |
Long | Het Delta-logboek of de tabelversie waarop de rij voor het laatst is ingevoegd of bijgewerkt. | Aan een rij wordt een nieuwe versie toegewezen wanneer deze wordt gewijzigd met behulp van een MERGE of een UPDATE instructie. |
Sommige bewerkingen slaan deze metagegevensvelden op met behulp van het transactielogboek. Als u een tabel uitvoert OPTIMIZE of REORG bewerkingen uitvoert waarvoor het bijhouden van rijen is ingeschakeld, worden gegevensbestanden opnieuw geschreven om deze velden op te slaan.
Rijtracering uitschakelen voor Delta Lake-tabellen
Als u het bijhouden van rijen in een Delta Lake-tabel wilt uitschakelen, stelt u de tabeleigenschap in op false.
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = false);
Important
Als u het bijhouden van rijen uitschakelt, wordt de bijbehorende tabelfunctie niet verwijderd en wordt de versie van het tabelprotocol niet gedegradeerd. De metagegevensvelden worden ook niet uit de doeltabel verwijderd. Als u de tabelfunctie volledig wilt verwijderen en het protocol wilt downgraden, gebruikt u DROP FEATURE. Zie Een Delta Lake-tabelfunctie verwijderen en het tabelprotocol degraderen.
Nadat u het bijhouden van rijen hebt uitgeschakeld, zijn de gegenereerde rij-id's niet langer betrouwbaar voor het bijhouden van unieke rijen.
Limitations
De metagegevensvelden voor rij-id's en rijcommitversies kunnen niet worden geopend tijdens het lezen van de wijzigingsgegevensfeed. Zie Wijzigingenfeed gebruiken voor Azure Databricks.