Secuencia de ejecución de sentencias SQL de Hive
Desde..donde..unirse..en..seleccionar..agrupar por..seleccionar..tener..obvio..a.. .Sort..Limit..Union/Union All
Analicemos a través de una declaración SQL:
La declaración SQL anterior se puede ejecutar con éxito. Echemos un vistazo en MR:
Fase de mapa:
Fase de reducción:
Si la secuencia de ejecución anterior es correcta, puede verlo explicando plano de ejecución. Hay demasiado contenido, veámoslo por etapas.
Vemos que la Etapa-5 es la raíz, es decir, la Etapa-5 se ejecuta primero, la Etapa-2 depende de la Etapa-5 y la Etapa-0 depende de la Etapa-2.
El lugar marcado ① en la imagen es la operación del banco de trabajo de escaneo. Tenga en cuenta que primero se escanea la tabla B, que es la tabla después de la combinación izquierda, y luego se filtra (marcada con ② en la figura). En nuestra declaración SQL, la tabla A se filtra, pero Hive filtrará automáticamente la tabla B de la misma manera, lo que puede reducir la cantidad de datos asociados.
Primero escanee la tabla A (marcada con ① en la figura); luego, filtre la operación idno > 112233' (marcada con ② en la figura); luego realice una unión izquierda y la clave asociada es idno (marcada con ②); ③ en la figura)); después de realizar la operación de asociación, se realizará la operación de salida, y la salida son tres campos, incluidos dos campos de selección y un campo de grupo por (marcado como ④ en la figura); se realiza y el método de agrupación es hash (marcado en la figura ⑤); luego realice la operación de clasificación y realice la clasificación directa según el idno (marcado 6 en la figura).
Primero, agrupar por acción. Tenga en cuenta que el método de agrupación en este momento es fusionar agrupación parcial (marcada con ① en la figura), luego seleccione. En este momento, solo hay dos campos de salida y el número de líneas de salida es 30304 (marcadas con ② en la figura). A continuación, realice la operación de filtrado que debe filtrar count_user> para el campo de 1, el número de filas de salida es 10101 (marcado con ③ en la figura) y luego limite el número de filas de salida (marcado con ④ en la figura); ; marcado con ⑤ en la figura Lugar indica si se comprime el archivo, falso indica que no se comprime.
Limita el número de filas a 10.
A través del análisis anterior del plan de ejecución de SQL, se resumen los siguientes puntos: