Formateador de Hive
Formatee Hive HiveQL Apache con reglas de Hive para identificadores entre comillas invertidas, cadenas entre comillas simples y dobles con escapes de barra invertida y variables ${hivevar:name}. CLUSTER BY, DISTRIBUTE BY y SORT BY se mantienen como cláusulas, LATERAL VIEW y LEFT SEMI JOIN empiezan en líneas nuevas, y las columnas y condiciones llevan sangría. Las cadenas y los paréntesis sin cerrar se señalan con línea y columna para ingenieros de datos que trabajan con Hadoop.
Preguntas frecuentes
¿Qué sintaxis de HiveQL se reconoce?
Se reconocen los identificadores entre comillas invertidas y las cadenas entre comillas simples y dobles con escapes de barra invertida. Los subíndices Map['key'] y array[0] y las sustituciones de variables como ${hivevar:date} y ${hiveconf:x} se mantienen intactos.
¿Qué cláusulas de Hive aparecen en líneas propias?
CLUSTER BY, DISTRIBUTE BY y SORT BY se manejan como ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER y LEFT SEMI JOIN empiezan en líneas nuevas, como las uniones.
¿Se mantienen las sustituciones de variables?
Sí. Los marcadores ${hivevar:...} y ${hiveconf:...} se mantienen exactamente como están escritos. Nunca se añaden espacios alrededor de los dos puntos.
¿Puede formatear instrucciones INSERT OVERWRITE?
Sí. INSERT OVERWRITE TABLE ... PARTITION (...) se mantiene unido y el SELECT que lo alimenta se formatea debajo.
¿Es compatible con MERGE?
Sí. Las ramas WHEN MATCHED y WHEN NOT MATCHED de las instrucciones ACID MERGE empiezan en líneas nuevas.
¿Se conservan los comentarios?
Sí. Los comentarios de línea -- y los comentarios de bloque /* block comments */ se mantienen en su sitio. Los comentarios de bloque de varias líneas se vuelven a sangrar según el nuevo formato.
¿Cambia el uso de mayúsculas y minúsculas en las palabras clave?
No. Las palabras clave y los nombres conservan las mayúsculas y minúsculas originales. Solo cambian los espacios en blanco y los saltos de línea.
¿Qué errores se detectan?
Cadenas sin cerrar, identificadores entre comillas invertidas, subíndices y comentarios de bloque, y paréntesis sin equilibrar, cada uno con línea y columna. No se ejecuta nada en su clúster.
¿Qué tamaño puede tener la entrada?
Hasta 1 MB por solicitud y 128 KB por sentencia. Los scripts con muchas sentencias se formatean de una en una.
¿Puedo elegir la sangría y se guarda mi SQL?
Use 2 o 4 espacios, o tabuladores. SQL solo se formatea en memoria y nunca se guarda.