Azure Data Lake Storage-frågeacceleration

Genom att använda frågeacceleration kan applikationer och analysramverk optimera databehandlingen. De hämtar endast den data de behöver för att utföra en given operation. Denna metod minskar tiden och processorkraften som krävs för att få insikter i lagrad data.

Översikt

Frågeacceleration accepterar filtreringspredikat och kolumnprojektioner. Genom att använda dessa predikat och projektioner kan applikationer filtrera rader och kolumner när de läser data från disken. Endast de data som uppfyller villkoren för ett predikat överförs över nätverket till applikationen. Denna metod minskar nätverkslatens och beräkningskostnader.

Använd SQL för att specificera radfilterpredikaten och kolumnprojektionerna i en förfrågan om acceleration av frågor. Tänk på följande begränsningar:

  • En begäran bearbetar endast en fil.
  • Frågeaccelerering stöder inte avancerade relationella funktioner i SQL, såsom join-operationer och GROUP BY-aggregeringar.
  • Frågeacceleration stöder CSV- och JSON-formaterade data som indata till varje begäran.

Funktionen för frågeacceleration är inte begränsad till Data Lake Storage (lagringskonton som har det hierarkiska namnområdet aktiverat på dem). Frågeacceleration är kompatibelt med blobar i lagringskonton som inte har ett hierarkiskt namnområde aktiverat på dem. Denna kompatibilitet innebär att du kan uppnå samma minskning av nätverkslatens och beräkningskostnader när du bearbetar data som du redan har lagrad som blobs i lagringskonton.

Ett exempel på hur du använder frågeacceleration i ett klientprogram finns i Filtrera data med hjälp av Azure Data Lake Storage-frågeacceleration.

Dataflöde

Följande diagram visar hur ett typiskt program använder frågeacceleration för att bearbeta data.

Diagram som visar hur en applikation använder frågeacceleration för att filtrera och bearbeta data.

  1. Klientprogrammet begär fildata genom att ange predikater och kolumnprojektioner.

  2. Frågeacceleration parsar den angivna SQL-frågan och distribuerar arbete för att parsa och filtrera data.

  3. Processorer läser data från disken, tolkar data med lämpligt format och filtrerar sedan data genom att tillämpa de angivna predikaten och kolumnprojektionerna.

  4. Frågeacceleration kombinerar svarsfragmenten för att strömma tillbaka till klientapplikationen.

  5. Klientprogrammet tar emot och parsar det strömmade svaret. Programmet behöver inte filtrera andra data och kan tillämpa den önskade beräkningen eller omvandlingen direkt.

Bättre prestanda till en lägre kostnad

Frågeacceleration optimerar prestandan genom att minska mängden data som din applikation överför och behandlar.

För att beräkna ett aggregerat värde hämtar program ofta alla data från en fil och bearbetar och filtrerar sedan data lokalt. En analys av in- och utmatningsmönster (I/O) för analysarbetsbelastningar visar att applikationer vanligtvis bara kräver 20% av den data de läser för att utföra en given beräkning. Den här statistiken gäller även efter att du har tillämpat tekniker som partitionsrensning. Detta innebär att applikationer i onödan överför, analyserar och filtrerar 80% av datan. Det här mönstret, som är utformat för att ta bort onödiga data, medför en betydande beräkningskostnad.

Även om Azure har ett högpresterande nätverk, både vad gäller genomströmning och latens, är det fortfarande kostsamt för applikationsprestandan att överföra data onödigt över det nätverket. Genom att filtrera bort oönskade data under lagringsbegäran eliminerar frågeacceleration den här kostnaden.

Dessutom kräver CPU-belastningen som krävs för att analysera och filtrera onödig data att din applikation konfigurerar fler och större VM:ar för att utföra sitt arbete. Genom att överföra den här beräkningsbelastningen till frågeacceleration kan program göra betydande kostnadsbesparingar.

Applikationer som kan dra nytta av frågeacceleration

Frågeacceleration är utformad för distribuerade analysramverk och databehandlingsapplikationer:

  • Distribuerade analysramverk som Apache Spark och Apache Hive inkluderar ett lagringsabstraktionslager inom ramverket. Dessa motorer innehåller även frågeoptimerare som kan ta med kunskap om den underliggande I/O-tjänstens funktioner när du fastställer en optimal frågeplan för användarfrågor. Dessa ramverk integrerar accelerering av frågor. Därför ser användare av dessa ramverk förbättrad frågesvarstid och en lägre total ägandekostnad utan att behöva göra några ändringar i frågorna.

  • Databehandlingsapplikationer utför vanligtvis storskaliga datatransformationer som kanske inte direkt leder till analysinsikter, så de använder inte alltid etablerade distribuerade analysramverk. Dessa applikationer har ofta en mer direkt relation till den underliggande lagringstjänsten, så de kan dra direkt nytta av funktioner som frågeacceleration.

Ett exempel på hur ett program kan integrera frågeacceleration finns i Filtrera data med hjälp av Azure Data Lake Storage-frågeacceleration.

Prissättning

På grund av den ökade beräkningsbelastningen inom Azure Data Lake Storage-tjänsten skiljer sig prismodellen för frågeacceleration från den normala Azure Data Lake Storage-transaktionsmodellen. Frågeacceleration debiterar en kostnad för mängden data som genomsöks samt en kostnad för mängden data som returneras till anroparen. Mer information finns i Priser för Azure Data Lake Storage.

Trots förändringen av faktureringsmodellen är frågeaccelerationens prissättningsmodell utformad för att sänka den totala ägandekostnaden för en arbetsbelastning, med tanke på minskningen av de mycket dyrare VM-kostnaderna.

Nästa steg