Hem Personliga finanser Fönstret i HiveQL-dummies

Fönstret i HiveQL-dummies

Video: Gustafsson 3 tr - S01e02 - Fönstret mot gården 2024

Video: Gustafsson 3 tr - S01e02 - Fönstret mot gården 2024
Anonim

Begreppet windowing, som introduceras i SQL: 2003-standarden gör det möjligt för SQL-programmeraren att skapa en ram från data mot vilken aggregat och andra fönsterfunktioner kan fungera. HiveQL stöder nu fönsterrutan per SQL-standarden. Exempel är ganska användbara när man förklarar fönster och aggregatfunktioner.

Avgångsförseningar kommer med territoriet när flygningen är ditt valda resealternativ. Det är ingen överraskning att RITA-sammanställda flygdata inkluderar denna information. & Ldquo; Vad exakt är den genomsnittliga flygförseningen per dag & rdquo; ? Frågan i följande lista ger den genomsnittliga avgångsfördröjningen per dag under 2008.

(A) hive (flightdata)> CREATE VIEW avgdepdelay AS> SELECT DayOfWeek, AVG (DepDelay) FRÅN FlightInfo2008 GROUP BY DayOfWeek; OK Tidsupptagen: 0. 121 sekunder (B) hive (flightdata)> SELECT * FRÅN avgdepdelay; … OK 1 10. 269990244459473 2 8. 97689712068735 3 8. 289761053658728 4 9. 772897177836702 5 12. 158036387869656 6 8. 645680904903614 7 11. 568973392595312 Tidsåtgång: 18. 6 sekunder, Fetched: 7 rad (er)

TGIF, eller & ldquo; Tack Gud Det är fredag, & rdquo; gäller inte alla. Det skulle inte vara någon överraskning att fredagen - dag 5 under resultaten i steg (B) - hade det högsta antalet förseningar.

Hur som helst, om den frågan i steg (A): Hives Data Definition Language (DDL) innehåller också CREATE VIEW-satsen, vilket kan vara ganska användbart. I Hive tillåter visningar en fråga att sparas, men data lagras inte som med uppställningen Skapa tabell som Select (CTAS).

När en vy hänvisas till i HiveQL exekverar Hive frågan och använder sedan resultaten, som kan ingå i en större fråga. Detta kan vara mycket användbart för att förenkla komplexa frågor och bryta ner dem i logiska komponenter. Lägg märke till GROUP BY-klausulen som samlar alla dagar i veckan och gör att AVG-aggregatfunktionen kan ge ett konsoliderat svar per dag.

Denna information är naturligtvis användbar, men vad händer om du vill se några enskilda nummer per dag? Konsolidera data med GROUP BY, och du har svaret du letar efter, även om du har förlorat information också. Att lösa detta problem med informationsförlust är hur fönstret blir ganska användbart.

Här är en annan fråga om RITA 2008 flygdata som Apache Hive kan svara: & ldquo; Vad är den första flygningen mellan flygplatsen X och Y & rdquo; ? Anta att förutom denna information vill du veta om efterföljande flyg, bara om du inte är en & ldquo; morgon människa.& Rdquo; Jo, det här är ett jobb för att fönstera i HiveQL! Följande notering ger dig en fråga som svarar på dessa frågor.

(A) hive (flightdata)> SELECT f08. Månad, f08. DayOfMonth, cr. beskrivning, f08. Ursprung, f08. Dest, f08. FlightNum, f08. DepTime, MIN (f08. DepTime) ÖVER (PARTITION BY f08. DayOfMonth ORDER BY f08. DepTime) FRÅN flightinfo2008 f08 HJÄLPAR BOLAGAR KRAFTF08. UniqueCarrier = cr. kod VAR f08. Ursprung = 'JFK' OCH F08. Dest = 'ORD' OCH F08. Månad = 1 OCH f08. DepTime! = 0; … OK 1 1 JetBlue Airways JFK ORD 903 641 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1323 833 641 1 1 JetBlue Airways JFK ORD 907 929 641 1 1 Comair Inc. JFK ORD 5083 945 641 1 1 Comair Inc. JFK ORD 5634 1215 641 1 1 JetBlue Airways JFK ORD 915 1352 641 1 1 American Airlines Inc. JFK ORD 1815 1610 641 1 1 JetBlue Airways JFK ORD 917 1735 641 1 1 Comair Inc. JFK ORD 5469 1749 641 1 1 Comair Inc. JFK ORD 5492 2000 641 1 1 JetBlue Airways JFK ORD 919 2102 641 1 31 JetBlue Airways JFK ORD 919 48 48 1 31 JetBlue Airways JFK ORD 903 635 48 1 31 Comair Inc. JFK ORD 5447 650 48 1 31 American Airlines Inc. JFK ORD 1323 840 48 1 31 JetBlue Airways JFK ORD 907 921 48 1 31 JetBlue Airways JFK ORD 917 1859 48

I steg (A) ersattes GROUP BY-klausulen med OVER-klausulen där du anger PARTITION eller fönster där du vill att MIN aggregatfunktionen ska fungera. Dessutom ingår ordningen ORDER BY så att du kan se de efterföljande flygningarna efter den första.

Som du kan se från noteringen, den 31 januari, har JetBlue ett bra tidigt flyg vid 12: 48 a. m. -för en senare, klockan 6:35 a. m. Tidigare utgåvor avviker, notera att du har behållit informationen i sökutgången som skulle ha gått vilse om du hade valt att använda en GROUP BY-klausul igen.

Den här funktionen gör att Windowing är en kraftfull funktion, och det finns mer. Tillsammans med windowing i Hive 0. 11 release, gav samhället vissa analysfunktioner som du kan använda i samband med fönsterrutan. Du har även följande funktioner: RANK, ROW_NUMBER, DENSE_RANK, CUME_DIST, PERCENT_RANK och NTILE.

Slutligen missa inte användningen av JOIN: Det är ett verkligt, praktiskt exempel på ett inre sammanfogning där du går med i FlightInfo2008-bordet med bärbordet för att få namnet på flygbolaget - snarare än den kryptiska koden som finns i tabellen FlightInfo2008.

Fönstret i HiveQL-dummies

Redaktörens val

Hur man lägger till text i en sätter () Funktion i C Programmering

Hur man lägger till text i en sätter () Funktion i C Programmering

När du behöver visa en annan textrad, använd C-programmeringsfärdigheterna för att skapa en annan puts () -funktion i källkoden, som visas i Visa två textlinjer. VISA TILL TEXTFINER # inkludera int main () {sätter ("Hickory, Dickory, Dock,"); sätter ("musen sprang klockan."); returnera (0);} Den andra ...

Förklarar variabler i C-dummies

Förklarar variabler i C-dummies

Variabler är det som gör dina program zooma. Programmering kan bara inte bli gjort utan dem. Så om du inte har introducerats till variabler än, här går du. Valerie Variable är en numerisk variabel. Hon älskar att hålla nummer - vilket nummer som helst; det spelar ingen roll. När hon ser ett lika tecken tar hon ett värde och ...

Redaktörens val

Gör rädsla för din vän - dummies

Gör rädsla för din vän - dummies

Rädsla är lika verklig som mod. Även om värdet av rädsla inte är lika uppenbart som modets värde, har det dess fördelar. Rädsla är din instinkt som säger att du är obehaglig - även om situationen inte kommer att skada dig. Alla har haft den känslan när man hellre drar locket ...

Hur man ökar din självmedvetenhet - dummies

Hur man ökar din självmedvetenhet - dummies

Du kommer att vara med dig själv under en livstid. Ingenting kommer att förändra det faktum. Att lära känna, som att lyssna på och uppskatta själv är avgörande för din sanity. Kanske kommer du till att älska, acceptera och omfamna alla du är, är svår för dig att föreställa dig just nu, men du kan göra ...

Hur man ökar din mentala flexibilitet - dummies

Hur man ökar din mentala flexibilitet - dummies

ÄR flexibel i arbete och relationer är ett tecken på en högpresterande. Medan perfektionister är styva och obehagliga i sitt arbete och hur de interagerar med andra, är högpresterande mer öppna och tillmötesgående. Att vara mer flexibel på jobbet gav Ralph aldrig förslag under brainstorming vid gruppmöten. Han kände att hans lag ...

Redaktörens val

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Nätverksadministration: Linux-installation och virtuella konsoler - dummies

Linux är i sig ett kommandoradsorienterat operativsystem. Grafiska användargränssnitt - inklusive installationsprogrammets GUI - tillhandahålls av en valfri komponent som heter X Window System. Men medan du arbetar med det grafiska användargränssnittet för installationsprogrammet, håller Linux flera ytterligare kommandorads-konsoler öppna. Normalt behöver du inte ...

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Nätverksadministration: Linux-loggning, logg och systemavstängning - dummies

Alla användare som åtkomst ett Linux-system, lokalt eller över ett nätverk, måste verifieras av ett giltigt användarkonto på systemet. I det följande får du veta hur du loggar in och ut på ett Linux-system och hur du stänger av systemet. Logga in När Linux startar upp visas det ...

Nätverksadministration: Licensserver - Dummies

Nätverksadministration: Licensserver - Dummies

I vissa program kan du köpa nätverkslicenser som gör att du kan installera programvaran på många datorer som du vill, men reglera antalet personer som kan använda programvaran vid en viss tidpunkt. För att styra hur många som använder programvaran, är en särskild licensserver inrättad. När en användare börjar ...