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.
Isolatieniveaus en schrijfconflictgedrag bepalen wat er gebeurt wanneer gelijktijdige operaties dezelfde Delta Lake-tabel lezen en schrijven op Azure Databricks.
Wanneer meerdere taken of gebruikers tegelijkertijd naar dezelfde tabel schrijven, kunnen sommige van die schrijfopdrachten falen met een conflictuitzondering. Gebruik de pagina's in deze sectie wanneer je moet:
- Los of verminder fouten door gelijktijdige schrijfopdrachten, zoals
ConcurrentAppendException. Zie Conflict-uitzonderingen. - Bepaal of een tabel sterkere isolatie nodig heeft dan de standaard. Zie Isolatieniveaus (WriteSerializable en Serializable).
Delta Lake garandeert ACID-transacties tussen reads en writes:
- Schrijvers: Meerdere schrijvers in meerdere clusters kunnen tegelijkertijd een tabelpartitie wijzigen. Schrijvers zien een consistente momentopnameweergave van de tabel en schrijfbewerkingen vinden plaats in een seriële volgorde.
- Lezers: Lezers blijven een consistente momentopnameweergave zien van de tabel waarmee de Azure Databricks-taak is gestart, zelfs wanneer een tabel tijdens een taak wordt gewijzigd.
Bekijk wat zijn ACID-garanties in Azure Databricks?
Opmerking
Azure Databricks maakt standaard gebruik van Delta Lake voor alle tabellen.
Isolatieonderwerpen
| Onderwerp | Beschrijving |
|---|---|
| Isolatieniveaus (WriteSerializable en Serializable) | Hoe de twee isolatieniveaus van invloed zijn op gelijktijdige bewerkingen en hoe u ze configureert. |
| Rijniveau-concurrentie | Hoe conflictdetectie op rijniveau schrijfconflicten vermindert voor gelijktijdige bewerkingen op dezelfde gegevensbestanden. |
Zie Transactieisolatie voor informatie over transactieisolatie, gedrag van momentopnamen en conflictafhandeling.
Conflicten bij wijzigingen in metagegevens
Metadatawijzigingen kunnen ervoor zorgen dat alle gelijktijdige schrijfbewerkingen mislukken. Deze bewerkingen omvatten wijzigingen in het tabelprotocol, tabeleigenschappen of gegevensschema.
Streaming-leesbewerkingen mislukken wanneer ze een doorvoer tegenkomen die metagegevens van de tabel wijzigt. Als u wilt dat de stream doorgaat, moet u deze opnieuw starten. Zie voor aanbevolen methoden Productieoverwegingen voor Gestructureerde Streaming.
Voorbeelden van queries die metadata wijzigen zijn:
-- Set a table property
ALTER TABLE table_name SET TBLPROPERTIES ('delta.isolationLevel' = 'Serializable')
-- Enable a feature using a table property and update the table protocol
ALTER TABLE table_name SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
-- Drop a table feature
ALTER TABLE table_name DROP FEATURE deletionVectors;
-- Upgrade to UniForm
REORG TABLE table_name APPLY (UPGRADE UNIFORM(ICEBERG_COMPAT_VERSION=2));
-- Update the table schema
ALTER TABLE table_name ADD COLUMNS (col_name STRING);