versnelling van query's in Azure Data Lake Storage

Door gebruik te maken van queryversnelling kunnen applicaties en analyseframeworks de gegevensverwerking optimaliseren. Ze halen alleen de gegevens op die ze nodig hebben om een bepaalde operatie uit te voeren. Deze aanpak vermindert de tijd en verwerkingskracht die nodig is om inzichten te verkrijgen in opgeslagen data.

Overzicht

Queryversnelling ondersteunt filterpredicaten en kolomprojecties. Door gebruik te maken van deze predicaten en projecties kunnen applicaties rijen en kolommen filteren bij het lezen van gegevens van de schijf. Alleen de gegevens die voldoen aan de voorwaarden van een predicaat worden via het netwerk naar de applicatie overgedragen. Deze aanpak vermindert de netwerklatentie en rekenkosten.

Gebruik SQL om de rijfilterpredicaten en kolomprojecties te specificeren in een queryversnellingsverzoek. Houd rekening met de volgende beperkingen:

  • Een aanvraag verwerkt slechts één bestand.
  • Queryversnelling ondersteunt geen geavanceerde relationele functies van SQL, zoals joins en groeperen op aggregaten.
  • Queryversnelling ondersteunt csv- en JSON-geformatteerde gegevens als invoer voor elke aanvraag.

De functie queryversnelling is niet beperkt tot Data Lake Storage (opslagaccounts met een ingeschakelde hiërarchische naamruimte). Queryversnelling is compatibel met de blobs in opslagaccounts waarvoor geen hiërarchische naamruimte is ingeschakeld. Deze compatibiliteit betekent dat je dezelfde vermindering van netwerklatentie en rekenkosten kunt bereiken wanneer je data verwerkt die je al als blobs in opslagaccounts hebt opgeslagen.

Zie Gegevens filteren met behulp van Azure Data Lake Storage-queryversnelling voor een voorbeeld van het gebruik van queryversnelling in een clienttoepassing.

Gegevensstroom

In het volgende diagram ziet u hoe een typische toepassing queryversnelling gebruikt om gegevens te verwerken.

Diagram dat laat zien hoe een applicatie queryversnelling gebruikt om data te filteren en te verwerken.

  1. De clienttoepassing vraagt bestandsgegevens aan door predicaten en kolomprojecties op te geven.

  2. Queryversnelling parseert de opgegeven SQL-query en distribueert werk om gegevens te parseren en te filteren.

  3. Processors lezen de gegevens van de schijf, analyseren de gegevens met het juiste formaat en filteren vervolgens de data door de opgegeven predicaten en kolomprojecties toe te passen.

  4. Queryversnelling combineert de responsfragmenten om terug te streamen naar de clientapplicatie.

  5. De clienttoepassing ontvangt en parseert het gestreamde antwoord. De toepassing hoeft geen andere gegevens te filteren en kan de gewenste berekening of transformatie rechtstreeks toepassen.

Betere prestaties tegen lagere kosten

Queryversnelling optimaliseert de prestaties door de hoeveelheid gegevens die je applicatie overdraagt en verwerkt te verkleinen.

Voor het berekenen van een geaggregeerde waarde halen toepassingen meestal alle gegevens op uit een bestand en verwerken en filteren ze vervolgens lokaal. Een analyse van de input- en outputpatronen (I/O) voor analytics-workloads laat zien dat applicaties doorgaans slechts 20% van de data die ze lezen nodig hebben om een bepaalde berekening uit te voeren. Deze statistiek is waar, zelfs na het toepassen van technieken zoals partition pruning. Dit resultaat betekent dat applicaties onnodig 80% van de data overdragen, parsen en filteren. Dit patroon, ontworpen om overbodige gegevens te verwijderen, kost aanzienlijke rekenkosten.

Hoewel Azure beschikt over een high-performance netwerk, is het onnodig overzetten van data over dat netwerk op zowel het gebied van doorvoer als latentie kostbaar voor de applicatieprestaties. Door de ongewenste gegevens tijdens de opslagaanvraag te filteren, elimineert queryversnelling deze kosten.

Daarnaast vereist de CPU-belasting die nodig is om onnodige data te parsen en te filteren dat je applicatie meer en grotere VM's inricht om zijn werk te doen. Door deze rekenbelasting over te dragen aan queryversnelling, kunnen toepassingen aanzienlijke kostenbesparingen realiseren.

Toepassingen die kunnen profiteren van versnelling van query's

Versnelling van query's is ontworpen voor gedistribueerde frameworks voor analyses en toepassingen voor gegevensverwerking:

  • Gedistribueerde analyseframeworks zoals Apache Spark en Apache Hive bevatten een opslagabstractielaag binnen het framework. Deze engines omvatten ook queryoptimalisaties die kennis kunnen opnemen van de mogelijkheden van de onderliggende I/O-service bij het bepalen van een optimaal queryplan voor gebruikersquery's. Deze frameworks integreren queryversnellingstechnologie. Als gevolg hiervan zien gebruikers van deze frameworks verbeterde querylatentie en lagere totale eigendomskosten zonder dat ze wijzigingen hoeven aan te brengen in de query's.

  • Dataverwerkingsapplicaties voeren doorgaans grootschalige datatransformaties uit die niet direct tot analyse-inzichten leiden, dus ze maken niet altijd gebruik van gevestigde gedistribueerde analysekaders. Deze applicaties hebben vaak een directere relatie met de onderliggende opslagdienst, waardoor ze direct kunnen profiteren van functies zoals queryversnelling.

Zie Gegevens filteren met behulp van Azure Data Lake Storage-queryversnelling voor een voorbeeld van hoe een toepassing queryversnelling kan integreren.

Prijzen

Door de verhoogde rekenbelasting binnen de Azure Data Lake Storage-dienst verschilt het prijsmodel voor queryversnelling van het normale Azure Data Lake Storage-transactiemodel. Queryversnelling brengt kosten in rekening voor de hoeveelheid gescande gegevens en voor de hoeveelheid gegevens die aan de aanroeper worden geretourneerd. Zie prijzen voor Azure Data Lake Storage voor meer informatie.

Ondanks de wijziging van het factureringsmodel is het prijsmodel voor queryversnelling ontworpen om de totale eigendomskosten voor een workload te verlagen, doordat de veel duurdere VM-kosten afnemen.

Volgende stappen