Formátovač Hive
Formátujte Apache Hive HiveQL pomocí pravidel Hive pro identifikátory v obrácených apostrofech, řetězce v jednoduchých a dvojitých uvozovkách se zpětnými lomítky pro escapování a proměnné ${hivevar:name}. CLUSTER BY, DISTRIBUTE BY a SORT BY zůstávají klauzulemi, LATERAL VIEW a LEFT SEMI JOIN začínají na nových řádcích a sloupce i podmínky se odsazují. Neuzavřené řetězce a závorky se datovým inženýrům pracujícím s Hadoop ohlásí včetně čísla řádku a sloupce.
Často kladené otázky
Jaké syntaxi HiveQL rozumí?
Rozpoznají se identifikátory v obrácených apostrofech a řetězce v jednoduchých a dvojitých uvozovkách se zpětnými lomítky pro escapování. Indexy Map['key'] a array[0] i náhrady proměnných, například ${hivevar:date} a ${hiveconf:x}, zůstávají nedotčené.
Které klauzule Hive dostanou vlastní řádek?
S CLUSTER BY, DISTRIBUTE BY a SORT BY se zachází jako s ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER a LEFT SEMI JOIN začínají na nových řádcích stejně jako spojení.
Zachovávají se náhrady proměnných?
Ano. Zástupné symboly ${hivevar:...} a ${hiveconf:...} se zachovají přesně v původním znění. Dvojtečka uvnitř se nikdy neoddělí mezerou.
Může formátovat příkazy INSERT OVERWRITE?
Ano. INSERT OVERWRITE TABLE ... PARTITION (...) zůstává pohromadě a příkaz SELECT, který do něj dodává data, se formátuje pod ním.
Podporuje MERGE?
Ano. Větve WHEN MATCHED a WHEN NOT MATCHED příkazů ACID MERGE začínají na nových řádcích.
Zachovávají se komentáře?
Ano. Jednořádkové komentáře -- a blokové komentáře /* */ zůstávají na místě. Víceřádkové blokové komentáře se znovu odsadí podle nového rozvržení.
Mění se velikost písmen klíčových slov?
Ne. Klíčová slova a názvy si zachovávají velikost písmen, kterou jste použili. Mění se pouze mezery a zalomení řádků.
Které chyby se zjišťují?
Neuzavřené řetězce, identifikátory v obrácených apostrofech, indexy a blokové komentáře a nevyvážené závorky, vždy s číslem řádku a sloupce. Na vašem clusteru se nic nespouští.
Jak velký může být vstup?
Až 1 MB na požadavek a 128 KB na příkaz. Skripty s mnoha příkazy se formátují po jednom příkazu.
Mohu zvolit odsazení a ukládá se můj SQL?
Použijte 2 nebo 4 mezery, případně tabulátory. SQL se formátuje pouze v paměti a nikdy se neukládá.