Blog - Deltameer 2.0, Z-Order

Verhoog uw prestaties met Delta Lake 2.0

Wat is Deltameer?

Delta Lake is in april 2019 uitgebracht door Databricks. Delta Lake is een laag bovenop een data lake, die ACID-mogelijkheden biedt, waardoor datakwaliteit, -betrouwbaarheid en -consistentie gewaarborgd zijn.

Tijdens een proces worden de transacties opgeslagen in een logbestand; dit helpt u uw gegevens te herstellen in geval van een probleem.

Wat zijn de nieuwe kenmerken van Delta Lake 2.0?

Tijdens de 2022 Summit onthulde Databricks verschillende nieuwe functies.

- Change Data Feed: hiermee kunt u wijzigingen in rijen tussen versies van een deltatabel volgen.

- Kolommen verwijderen: U kunt een kolom verwijderen met de opdracht "DROP COLUMN".

- Multi-cluster writes (S3): schrijven naar een tabel vanuit meerdere clusters tegelijk beschadigt de tabel niet; deze functie bestaat al in Azure.

- Z-volgorde: hiermee kunt u de organisatie van bestanden in een Deltatabel optimaliseren; u zult deze functie later in dit artikel in detail zien.

open-sourcing van heel delta

Andere verbeteringen zijn aangebracht aan bestaande functies, met name voor het overslaan van gegevens met behulp van kolomstatistieken: het overslaan van gegevens verhoogt de prestaties bij leesbewerkingen. Bij het schrijven van bestanden slaat het delta-logboek de maximum- en minimumwaarde van elke kolom in het bestand op. Dit versnelt de leesrespons door onnodige bestanden te negeren. Dit werkt heel goed als u in elk bestand een kleine reeks waarden hebt. En hier komt de Z-order om de hoek kijken!

Z-order

Databricks heeft "Optimaliseer Z-order" geïntroduceerd. De kolominformatie wordt in dezelfde reeks bestanden geplaatst. Deze bestanden worden gesorteerd en gegroepeerd volgens de opgegeven kolom. Wanneer een zoekopdracht wordt uitgevoerd, worden alleen de bestanden met de zoekwaarden geanalyseerd.

Hieronder is de serviceTbl tabel ongeordend. Een query zoals "Select * from serviceTbl = 'IoT hub'", kan alle bestanden scannen. De Z-order implementatie zal de tabel vragen de scan te optimaliseren voor onze query.

Wanneer de tabel geordend is, gaat het zoeken naar gegevens sneller.

de serviceTbl tabel

Het gedrag van Z-order lijkt sterk op dat van de SQL Server clusterindex: er kunnen meerdere kolommen worden opgegeven. U kunt de Z-volgorde kolommen kiezen volgens de zoekpatronen. Z-order zal dan het aantal bestanden verminderen om de leesprestaties van de query te verbeteren. Laten we dit in de praktijk zien.

Wij gebruiken een delta-verkoop-tabel met 2 miljard rijen.

Laten we de eerste query uitvoeren o

verzoek 1

Het resultaat wordt verkregen in 33 seconden. Afhankelijk van het query model kunt u de bestandsstructuur aanpassen met Z-order.

De deltatabel wordt gereconstrueerd op basis van de Z-volgorde BY-clausule. U krijgt 121 bestanden in plaats van 342, dus minder te lezen bestanden. De rij waarden in elk bestand is kleiner. Deze structurele veranderingen hebben een aanzienlijk effect en verbeteren de prestaties van onze query.

Het resultaat van de query wordt na 15 seconden teruggegeven. Je bespaart 18 seconden op dezelfde query!

Waarom is het sneller?

Zoals we hebben gezien, registreert Delta Lake de maximum- en minimumwaarden voor elke kolom in elk bestand in het Delta-logboek, waardoor het lezen van zoekopdrachten sneller gaat. Door Z-volgorde toe te voegen aan het predikaat ("waar"-clausule) groepeert u uw gegevens en maakt u het overslaan van gegevens efficiënter. U moet een Z-order maken op een kolom met hoge kardinaliteit.

Wat je moet onthouden bij het implementeren van Z-order :

- Op kolommen met hoge kardinaliteit
- Gebruik Z-volgorde op predikaatkolommen
- Meerdere kolommen kunnen worden gespecificeerd
- Als het querymodel verandert, moet de Z-volgorde worden bijgewerkt.
- Het commando Vacuüm is nodig om het delta-logboek van de vorige bestandsstructuur op te schonen.

Conclusie

Delta Lake wordt voortdurend verbeterd door het beste van traditionele datawarehouses te combineren met het beste van data lakes. Met Z-order heeft u gezien hoe snel u de prestaties kunt verbeteren. Met Change Data Feed (CDF) kan Delta Lake wijzigingen op rijniveau volgen, wat de prestaties verbetert.  

Laat het ons weten als u meer informatie wilt over CDF!    

"Databricks vs Snowflake' | Journal du Net

"Databricks vs Snowflake' | Journal du Net

Thomas Dallemagne beantwoordt al je vragen over Databricks vs Snowflake in...
AWS Public Sector Summit 2024: Een diepe duik in innovatie en duurzaamheid

AWS Public Sector Summit 2024: Een diepe duik in de...

Ontdek de nieuwste innovaties en toezeggingen op het gebied van ...
Blog - Real-time analyse met Microsoft Fabric en Azure Event Hubs

Blog - Real-time analyse met...

Ontdek hoe je je Microsoft Fabric KQL-database (Kusto Qu...
Laten we samen innoveren
Gepassioneerd door data?

Contacteer ons