Ventanas en hiveql

El concepto de ventanas, introducido en el SQL: 2003, permite al programador SQL para crear un marco partir de los datos contra la que se agregan y otras funciones de la ventana pueden operar. HiveQL ahora es compatible con ventanas por el estándar SQL. Los ejemplos son muy útiles cuando se explica de ventanas y funciones de agregado.

demoras en las salidas vienen con el territorio al volar es su modo elegido del viaje. No es de extrañar, entonces, que los datos de vuelo compilado-RITA incluye esta información. &ldquo-¿Cuál es exactamente el retraso del vuelo promedio por día&rdquo-? La consulta en el siguiente listado produce el retraso medio de salida por día en 2008.

(UN) colmena (FlightData) gt; CREATE VIEW avgdepdelay ASGT; DayOfWeek SELECT, AVG (DepDelay) a partir de FlightInfo2008 GROUP BY DayOfWeek-OKTime toma: 0.121 segundos(SEGUNDO) colmena (FlightData) gt; * SELECT avgdepdelay -... OK1 10.2699902444594732 8.976897120687353 8.2897610536587284 9.7728971778367025 12,1580363878696566 8,6456809049036147 11.568973392595312Time tomada: 18.6 segundos, fue a buscar: 7 fila (s)

TGIF o &ldquo-Gracias a Dios&rsquo-s viernes&rdquo- doesn&rsquo-t se aplica a todo el mundo. No debe ser ninguna sorpresa que el viernes - Día 5 bajo los resultados de la etapa (B) - tuvo el mayor número de retrasos.

De todos modos, sobre esa consulta en el paso (A): Colmena&rsquo-s lenguaje de definición de datos (DDL) también incluye el CREATE VIEW declaración, que puede ser muy útil. En la colmena, vistas permiten una consulta para ser salvo pero los datos no se almacenan como con la Tabla Cree instrucción Select (CTAS).

Cuando se hace referencia una vista en HiveQL, colmena ejecuta la consulta y entonces utiliza los resultados, que podrían ser parte de una consulta más grande. Esto puede ser muy útil para simplificar las consultas complejas y descomponerlos en componentes lógicos. Además, tenga en cuenta la cláusula GROUP BY, que reúne todos los días a la semana y permite que el AVG función de agregado para proporcionar una respuesta consolidada por día.

Esta información es útil, por supuesto, pero lo que si quieren ver algunos números individuales por día? Consolidar los datos con AGRUPAR POR, y usted tiene la respuesta que&rsquo-re buscando, aunque&rsquo-VE perdió información también. La solución de este problema de la pérdida de información es donde ventanas se hace muy práctico.

aquí&rsquo-s otra pregunta acerca de los datos de vuelo RITA 2008 que Apache Hive puede responder: &ldquo-¿Cuál es el primer vuelo entre el aeropuerto de X e Y&rdquo-? Supongamos que, además de esta información, usted quiere saber acerca de los vuelos posteriores, en caso de que&rsquo-re no es una &ldquo persona de la mañana.&rdquo- Pues bien, este es un trabajo para de ventanas en HiveQL! El siguiente listado le proporciona una consulta que responde a estas preguntas.

(UN) colmena (FlightData) gt; f08.Month SELECT, f08.DayOfMonth, cr.description, f08.Origin, f08.Dest, f08.FlightNum, f08.DepTime, MIN (f08.DepTime) OVER (PARTITION BY f08.DayOfMonth ORDER BY f08.DepTime) a partir de flightinfo2008 f08 JOIN portadores cr ONf08.UniqueCarrier = cr.codeWHERE f08.Origin = `JFK` Y f08.Dest = `ORD` ANDf08.Month = 1 y f08.DepTime! = 0 -... OK1 1 JetBlue Airways JFK ORD 903 641 6411 1 de American Airlines Inc. JFK ORD 1323 833 6411 1 JetBlue Airways JFK ORD 907 929 6411 1 Comair Inc. JFK ORD 5083 945 6411 1 Comair Inc. JFK ORD 5634 1215 6411 1 JetBlue Airways JFK ORD 915 1352 6411 1 de American Airlines Inc. JFK ORD 1323 833 6411 1 JetBlue Airways JFK ORD 907 929 6411 1 Comair Inc. JFK ORD 5083 945 6411 1 Comair Inc. JFK ORD 5634 1215 6411 1 JetBlue Airways JFK ORD 915 1352 6411 1 de American Airlines Inc. JFK ORD 1815 1610 6411 1 JetBlue Airways JFK ORD 917 1735 6411 1 de Comair Inc. JFK ORD 5469 1749 6411 1 de Comair Inc. JFK ORD 5492 2000 6411 1 JetBlue Airways JFK ORD 919 2102 6411 31 JFK JetBlue Airways 919 ORD 48 481 31 JetBlue Airways JFK ORD 903 635 481 31 Comair Inc. JFK ORD 5447 650 481 31 American Airlines Inc. JFK ORD 1323 840 481 31 JetBlue Airways JFK ORD 907 921 481 31 JetBlue Airways JFK ORD 917 1859 48

En el paso (A), la AGRUPAR POR cláusula fue sustituido por el ENCIMA cláusula donde se especifica la DIVIDIR o ventana sobre la que desea que el MIN función de agregado para operar. También se incluye la ORDER BY cláusula de manera que se puede ver esos vuelos posteriores después de la primera.

Como se puede ver en el perfil, el 31 de enero, JetBlue tiene un buen vuelo, temprano en 12:48a.m. -OPT para una posterior, en cuestiones madrugador 6:35 am a un lado, tenga en cuenta que usted ha retenido la información en la salida de la consulta que se habrían perdido si se hubiera optado por utilizar una AGRUPAR POR cláusula de nuevo.

Esta capacidad hace solo una potente característica de ventanas, y hay&rsquo-s más. Junto con ventanas en el comunicado de la colmena 0,11, la comunidad proporciona algunas funciones de análisis que se pueden utilizar en conjunción con ventanas. También a su disposición son las siguientes funciones: RANGO, NUMERO DE FILA, DENSE_RANK, CUME_DIST, PERCENT_RANK, y NTILE.

Por último, don&rsquo-t pierda el uso de UNIRSE: Eso&rsquo s-a-la vida real, ejemplo práctico de una combinación interna en la que se inscribe en el FlightInfo2008 mesa con el Los transportistas tabla para obtener el nombre de la aerolínea - en lugar del código críptico encuentra en el FlightInfo2008 mesa.

Artículos Relacionados