Azure Data Lake Storage queryversnelling

Met queryversnelling kunnen toepassingen en analyseframeworks de gegevensverwerking aanzienlijk optimaliseren door alleen de gegevens op te halen die ze nodig hebben om een bepaalde bewerking uit te voeren. Dit vermindert de tijd en verwerkingskracht die nodig zijn om essentiële inzichten in opgeslagen gegevens te verkrijgen.

Overzicht

Queryversnelling accepteert filterpredicaten en kolomprojecties, waarmee toepassingen rijen en kolommen kunnen filteren op het moment dat gegevens van de schijf worden gelezen. Alleen de gegevens die voldoen aan de voorwaarden van een predicaat, worden via het netwerk overgebracht naar de toepassing. Dit vermindert de netwerklatentie en de rekenkosten.

U kunt SQL gebruiken om de rijfilterpredicaten en kolomprojecties op te geven in een queryversnellingsaanvraag. Een aanvraag verwerkt slechts één bestand. Daarom worden geavanceerde relationele functies van SQL, zoals joins en groeperen op aggregaties, niet ondersteund. Queryversnelling ondersteunt gegevens in CSV- en JSON-indeling als invoer voor elke aanvraag.

De functie voor queryversnelling is niet beperkt tot Data Lake Storage (opslagaccounts waarvoor de hiërarchische naamruimte is ingeschakeld). Queryversnelling is compatibel met de blobs in opslagaccounts waarvoor geen hiërarchische naamruimte is ingeschakeld. Dit betekent dat u dezelfde vermindering van netwerklatentie en rekenkosten kunt bereiken wanneer u gegevens verwerkt die u 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.

Overzicht van queryversnelling

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

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

  3. Processors lezen de gegevens van de schijf, parseren de gegevens met behulp van de juiste indeling en filteren vervolgens gegevens door de opgegeven predicaten en kolomprojecties toe te passen.

  4. Queryversnelling combineert de antwoordshards om terug te streamen naar de clienttoepassing.

  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 te verminderen die door uw toepassing wordt overgedragen en verwerkt.

Voor het berekenen van een geaggregeerde waarde halen toepassingen meestal alle gegevens op uit een bestand en verwerken en filteren ze vervolgens lokaal. Uit een analyse van de invoer-/uitvoerpatronen voor analyseworkloads blijkt dat toepassingen doorgaans slechts 20% van de gegevens die ze lezen nodig hebben om een bepaalde berekening uit te voeren. Deze statistiek is waar, zelfs na het toepassen van technieken zoals het verwijderen van partities. Dit betekent dat 80% van die gegevens onnodig worden overgedragen via het netwerk, geparseerd en gefilterd door toepassingen. Dit patroon, dat is ontworpen om overbodige gegevens te verwijderen, kost aanzienlijke rekenkosten.

Hoewel Azure beschikt over een toonaangevend netwerk, is het onnodig overdragen van gegevens via dat netwerk qua doorvoer en latentie nog steeds kostbaar voor de prestaties van toepassingen. Door de ongewenste gegevens tijdens de opslagaanvraag te filteren, elimineert queryversnelling deze kosten.

Bovendien vereist de CPU-belasting die is vereist voor het parseren en filteren van overbodige gegevens dat uw toepassing een groter aantal en grotere VM's inricht om het werk te kunnen doen. Door deze rekenbelasting over te dragen naar queryversnelling kunnen toepassingen aanzienlijke kostenbesparingen realiseren.

Toepassingen die kunnen profiteren van queryversnelling

Queryversnelling is ontworpen voor gedistribueerde analyseframeworks en toepassingen voor gegevensverwerking.

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

Queryversnelling is ook ontworpen voor gegevensverwerkingstoepassingen. Deze typen toepassingen voeren doorgaans grootschalige gegevenstransformaties uit die mogelijk niet rechtstreeks leiden tot analyse-inzichten, zodat ze niet altijd gebruikmaken van gevestigde gedistribueerde analyseframeworks. Deze toepassingen hebben vaak een directere relatie met de onderliggende opslagservice, zodat ze rechtstreeks 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

Vanwege de verhoogde rekenbelasting binnen de Azure Data Lake Storage-service, verschilt het prijsmodel voor het gebruik van queryversnelling van het normale Azure Data Lake Storage transactiemodel. Queryversnelling brengt kosten in rekening voor de hoeveelheid gescande gegevens, evenals kosten voor de hoeveelheid gegevens die naar de aanroeper wordt geretourneerd. Zie Azure Data Lake Storage Gen2 prijzen voor meer informatie.

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

Volgende stappen