Gegevensstandaardisatie
Gegevens komen binnen in Data Lake-accounts in verschillende indelingen. Deze indelingen zijn onder andere leesbare indelingen, zoals JSON, . CSV- of XML-bestanden en gecomprimeerde binaire indelingen, zoals .tar of .gz. Binnenkomende gegevens zijn ook in veel grootten beschikbaar, van een paar bewerkte bestanden tot een export van een hele SQL-tabel. Gegevens kunnen ook worden geleverd als een groot aantal kleine bestanden die een paar kbs per stuk zijn, zoals realtime gebeurtenissen van een IoT-oplossing.
Hoewel Azure Data Lake Storage Gen2 opslag voor allerlei soorten gegevens zonder beperkingen ondersteunt, moet u zorgvuldig rekening houden met uw gegevensindelingen om de efficiëntie van de pijplijn te verwerken en de kosten te optimaliseren.
Veel organisaties standaardiseren nu hun opname-indeling en scheiden de rekenkracht van de opslag. Daarom is de Delta Lake-indeling de voorkeursstandaard geworden voor gegevensopname naar de verrijkingslaag. Vanuit de verrijkingslaag kan uw gegevenstoepassingsteam gegevens verwerken in een indeling die de gebruiksscenario's weerspiegelt.
Notitie
Gebruik Delta Lake ter ondersteuning van zowel batch- als streaminggebruiksscenario's voor initiële gegevensopname tot verrijkingslaag.
Dit artikel bevat een overzicht van Delta Lake, de prestaties en hoe u hiermee nalevingsondersteuning kunt bereiken en hoe u uw gegevens kunt standaardiseren terwijl deze van bron naar verrijkingslaag stromen.
Delta Lake
Delta Lake is een opensource-opslaglaag die ACID-transacties (atomiciteit, consistentie, isolatie en duurzaamheid) naar big data-workloads en Apache Spark brengt. Zowel Azure Synapse Analytics als Azure Databricks zijn compatibel met Linux Foundation Delta Lake.
Belangrijkste functies van Delta Lake
Functie | Beschrijving |
---|---|
ACID-transacties | Data lakes worden doorgaans gevuld via meerdere processen en pijplijnen, waarvan sommige gegevens gelijktijdig met leesbewerkingen schrijven. Data engineers hebben een handmatig, foutgevoelig proces doorlopen om ervoor te zorgen dat gegevensintegriteit wordt gegarandeerd voordat Delta Lake en transacties in gebruik zijn. Delta Lake brengt bekende ACID-transacties naar data lakes. Het biedt het sterkste isolatieniveau, serialiseerbaarheid. Zie Duiken in Delta Lake: Het transactielogboek uitpakken voor meer informatie. |
Schaalbare verwerking van metagegevens | In big data kunnen zelfs metagegevens 'big data' zijn. Delta Lake behandelt metagegevens op dezelfde wijze als andere gegevens. Er wordt gebruikgemaakt van de gedistribueerde verwerkingskracht van Spark om alle metagegevens te verwerken. Daarom kan Delta Lake eenvoudig tabellen op petabyte-schaal verwerken met miljarden partities en bestanden. |
Time Travel (gegevensversiebeheer) | De mogelijkheid om een wijziging ongedaan te maken of terug te gaan naar een eerdere versie is een belangrijke functie van transacties. Delta Lake biedt momentopnamen van gegevens waarmee u kunt terugkeren naar eerdere versies van gegevens voor controles, terugdraaiacties of om experimenten te reproduceren. Meer informatie vindt u in Introductie van Delta Lake Time Travel voor grootschalige Data Lakes. |
Indeling openen | Met Apache Parquet, de basislijnindeling voor Delta Lake, kunt u efficiënte compressie- en coderingsschema's toepassen. |
Geïntegreerde batch- en streamingbron en sink | Een tabel in Delta Lake is tegelijkertijd een batchtabel en een streamingbron en sink. Gegevensopname van streaming, batch historische backfill en interactieve query's werken allemaal uit de doos. |
Schema afdwingen | Met schemaafdwinging kunt u ervoor zorgen dat u de juiste gegevenstypen en vereiste kolommen hebt, waardoor gegevensconsistentie van slechte gegevens wordt voorkomen. Zie Duiken in Delta Lake: Schema-afdwinging en evolutie voor meer informatie |
Ontwikkeling van schema's | Met Delta Lake kunt u automatisch toegepaste wijzigingen aanbrengen in een tabelschema, zonder dat u migratie-DDL hoeft te schrijven. Zie Duiken in Delta Lake: Schema-afdwinging en evolutie voor meer informatie |
Controlegeschiedenis | In het Delta Lake-transactielogboek worden gegevens vastgelegd over elke wijziging die in uw gegevens is aangebracht. Deze records bieden een volledig audittrail van alle wijzigingen. |
Updates en verwijderingen | Delta Lake biedt ondersteuning voor Scala-, Java-, Python- en SQL-API's voor verschillende functies. Ondersteuning voor bewerkingen voor samenvoegen, bijwerken en verwijderen helpt u te voldoen aan de nalevingsvereisten. Zie Announcing the Delta Lake 0.6.1 Release, Announcing the Delta Lake 0.7 Release, and Simple, Reliable Upserts and Deletes on Delta Lake Tables using Python API's (inclusief codefragmenten voor samenvoegen, bijwerken en verwijderen van DML-opdrachten) voor meer informatie. |
100% compatibel met Apache Spark-API | Uw ontwikkelaars kunnen Delta Lake gebruiken met minimale wijzigingen in hun bestaande gegevenspijplijnen, omdat deze volledig compatibel is met bestaande Spark-implementaties. |
Zie Delta Lake-project voor meer informatie.
Ga naar de documentatiepagina van Delta Lake voor volledige documentatie
Prestaties
Het gebruik van veel kleine bestanden resulteert vaak in suboptimale prestaties en hogere kosten van verhoogde lees-/lijstbewerkingen. Azure Data Lake Storage Gen2 is geoptimaliseerd voor grotere bestanden waarmee uw analysetaken sneller en met lagere kosten kunnen worden uitgevoerd.
Delta Lake bevat veel functies waarmee u de prestaties kunt optimaliseren met bestandsbeheer.
Voorbeelden zijn:
- Het transactielogboek minimaliseert dure LIST-bewerkingen.
- Z-Ordering (multidimensionale clustering) maakt geoptimaliseerde predicaatpushdown mogelijk voor uw queryfilters.
- Systeemeigen caching- en queryoptimalisaties verminderen de hoeveelheid opslagscans die u nodig hebt. Zie Prestaties optimaliseren met caching voor meer informatie.
- MET OPTIMIZE worden kleine bestanden samengevoegd tot grotere bestanden.
Maak deze optimalisaties onderdeel van uw gegevenslaadproces om de versheid en prestaties van gegevens te behouden.
Data Lake-partitionering
Gegevenspartitionering omvat het organiseren van gegevens in uw gegevensarchief, zodat u grootschalige gegevens kunt beheren en de toegang tot gegevens kunt beheren. Partitioneren kan de schaalbaarheid verbeteren, conflicten verminderen en de prestaties optimaliseren.
Zorg er bij het partitioneren van uw Data Lake voor dat u het volgende instelt:
- De beveiliging wordt niet aangetast
- Heeft duidelijke isolatie en is afgestemd op uw gegevensautorisatiemodel
- Past goed bij uw gegevensopnameproces
- Heeft een goed gedefinieerd pad voor optimale gegevenstoegang
- Ondersteunt beheer- en onderhoudstaken
Algemene procedures
De algemene procedures voor het ontwerpen van gegevenspartitionering zijn:
- Richt u vroeg op uw beveiligingsimplicatie en ontwerp uw gegevenspartities samen met autorisatie.
- Mogelijk wilt u gegevensredundantie toestaan in ruil voor beveiliging.- Definieer een naamconventie en volg deze.
- U kunt meerdere mappen nesten, maar ze altijd consistent houden.
- Neem een tijdelement op in de mapstructuren en bestandsnamen.
- Start de mapstructuur niet met datumpartities. Het is beter om datums op het niveau van de lagere map te bewaren.
- Combineer geen gemengde bestandsindelingen of verschillende gegevensproducten in één mapstructuur.
Tip
Uw mapstructuren moeten partitioneringsstrategieën hebben waarmee toegangspatronen en de juiste bestandsgrootten kunnen worden geoptimaliseerd. Plan in de gecureerde zones de structuur op basis van optimaal ophalen, wees voorzichtig met het kiezen van een partitiesleutel met hoge kardinaliteit, wat leidt tot over partitionering, wat op zijn beurt leidt tot suboptimale bestandsgrootten.
Zie Data Lake-zones en -containers voor meer informatie over data lake-zones
Nalevingsondersteuning
Delta Lake voegt een transactionele laag toe om gestructureerd gegevensbeheer boven op uw data lake te bieden. Deze toevoeging kan uw mogelijkheid om persoonlijke gegevens (ook wel 'persoonlijke gegevens' genoemd) op verzoek van de consument aanzienlijk te vereenvoudigen en te verwijderen. De transactionele laag ondersteunt bewerkingen zoals DELETE, UPDATE en MERGE. Zie Best practices voor meer informatie: AVG-naleving met Behulp van Delta Lake.
Samenvatting
Pas de in dit artikel vermelde gegevensstandaarden toe op uw platform. Begin met de Delta Lake-indeling en begin vervolgens met het toevoegen van processen voor optimalisatie en naleving. U kunt besluiten om een service te maken die een aantal optimalisatieroutes volgens een planning uitvoert of een nalevingsservice maakt waarmee persoonlijke gegevens worden verwijderd.