Video: Sistem de filtrare al mirosurilor în băile fără fereastră, modulul DuoFresh Geberit 2024
Conceptul de ferestre, introdus în standardul SQL: 2003 permite programatorului SQL să creeze un cadru din datele pe care agregate și alte funcții ale ferestrei pot funcționa. HiveQL acceptă acum ferestre după standardul SQL. Exemplele sunt destul de utile atunci când explicăm funcțiile de ferestre și agregate. Întârzierile de plecare vin cu teritoriul când zborul este modul dvs. de călătorie ales. Prin urmare, nu este surprinzător faptul că datele de zbor compilate de RITA includ aceste informații. & Ldquo; Care este exact întârzierea zilnică zilnică pe zi & rdquo; ? Interogarea din următoarea listă produce o întârziere medie de plecare pe zi în 2008.
(A)stup (flightdata)> CREATE VIEW avgdepdelay AS> SELECT DayOfWeek, AVG (DepDelay) FROM FlightInfo2008 GROUP BY DayOfWeek; OK Timp realizat: 0. 121 secunde (B) stup (flightdata)> SELECT * FROM avgdepdelay; … OK 1 10. 269990244459473 2 8. 97689712068735 3 8. 289761053658728 4 9. 772897177836702 5 12. 158036387869656 6 8. 645680904903614 7 11. 568973392595312 Timp realizat: 18. 6 secunde, Preluat: 7 rang (e) TGIF, sau & ldquo; Mulțumesc lui Dumnezeu este vineri, & rdquo; nu se aplică tuturor. Nu trebuie să fie o surpriză faptul că vineri - Ziua 5 sub rezultatele din Etapa (B) - a avut cel mai mare număr de întârzieri.
Atunci când o vizualizare este menționată în HiveQL, Hive execută interogarea și apoi utilizează rezultatele, care ar putea face parte dintr-o interogare mai mare. Acest lucru poate fi foarte util pentru a simplifica interogările complexe și a le distruge în componente logice. În plus, rețineți clauza GROUP BY, care adună toate zilele pe săptămână și permite funcției agregate AVG să furnizeze un răspuns consolidat pe zi.
Aceste informații sunt, bineînțeles, utile, dar ce se întâmplă dacă doriți să vedeți câteva numere individuale pe zi? Consolidați datele cu GROUP BY și aveți răspunsul pe care îl căutați, deși și dvs. ați pierdut informații. Rezolvarea acestei probleme de pierdere a informațiilor este în cazul în care fereastra devine destul de la îndemână.
Iată o altă întrebare despre datele de zbor ale RITA 2008 pe care Apache Hive le poate răspunde: & nbsp; Care este primul zbor între Aeroportul X și Y? ? Să presupunem că, în plus față de aceste informații, doriți să știți despre zborurile ulterioare, doar în cazul în care nu sunteți " persoana matinala.& Rdquo; Ei bine, aceasta este o lucrare pentru ferestre în HiveQL! Următoarea listă vă oferă o interogare care răspunde la aceste întrebări.
(A)
stup (flightdata)> SELECT f08. Lună, f08. DayOfMonth, cr. descriere, f08. Origine, f08. Dest, f08. FlightNum, f08. DepTime, MIN (f08. DepTime) OVER (PĂRȚIRE DE F08, ZIOMOFMONT ORDER BY f08. DepTime) FROM flightinfo2008 f08 JOIN Carriers cr ON f08. Caracteristica unică = cr. cod WHERE f08. Origine = 'JFK' ȘI f08. Dest = 'ORD' ȘI f08. Luna = 1 AND f08. DepTime! = 0; … OK 1 1 JetBlue Airways JFK ORD 903 641 641 1 1 American Airways 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 Jair Airways 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 Comer Inc. JFK ORD 5447 650 48 1 31 American Airlines Inc. JFK ORD 1323 840 48 1 31 JetBlue În etapa (A), clauza GROUP BY a fost înlocuită cu clauza OVER în care specificați PARTIȚIE sau fereastră peste care doriți să funcționeze funcția agregat MIN. De asemenea, este inclusă clauza ORDER BY astfel încât să puteți vedea zborurile ulterioare după prima.După cum puteți vedea din listă, pe 31 ianuarie, JetBlue are un zbor frumos, timpuriu la 12: 48 a. m. - opt pentru una ulterioară, la 6:35 a. m. Întrebările de la începători, luați aminte că ați păstrat informațiile din ieșirea interogării care s-ar fi pierdut dacă ați fi ales din nou să utilizați o clauză GROUP BY.
Numai această capacitate face ferestrele o caracteristică puternică, și mai sunt multe. Odată cu lansarea în versiunea Hive 0. 11, comunitatea a furnizat câteva funcții de analiză pe care le puteți utiliza împreună cu ferestrele. De asemenea, aveți la dispoziție următoarele funcții: RANK, ROW_NUMBER, DENSE_RANK, CUME_DIST, PERCENT_RANK și NTILE.
În cele din urmă, nu ratați folosirea JOIN: este un exemplu realist și practic de îmbinare interioară în care vă alăturați tabelului FlightInfo2008 cu tabelul Carriers pentru a obține numele companiei - mai degrabă decât codul criptic găsit în tabelul FlightInfo2008.