Форматувальник Hive
Форматуйте Apache Hive HiveQL за правилами Hive для ідентифікаторів у зворотних лапках, рядків в одинарних і подвійних лапках з екрануванням зворотною скісною рискою та змінних ${hivevar:name}. CLUSTER BY, DISTRIBUTE BY і SORT BY залишаються клаузами, LATERAL VIEW і LEFT SEMI JOIN починаються з нового рядка, а стовпці й умови отримують відступи. Для інженерів даних, які працюють із Hadoop, незакриті рядки та дужки позначаються із зазначенням рядка й стовпця.
Поширені запитання
Який синтаксис HiveQL розпізнається?
Розпізнаються ідентифікатори у зворотних лапках і рядки в одинарних та подвійних лапках з екрануванням зворотною скісною рискою. Індекси Map['key'] і array[0], а також підстановки змінних, як-от ${hivevar:date} і ${hiveconf:x}, залишаються без змін.
Які клаузи Hive отримують окремий рядок?
CLUSTER BY, DISTRIBUTE BY і SORT BY обробляються так само, як ORDER BY. LATERAL VIEW, LATERAL VIEW OUTER і LEFT SEMI JOIN починаються з нового рядка, як і JOIN.
Чи зберігаються підстановки змінних?
Так. Заповнювачі ${hivevar:...} і ${hiveconf:...} зберігаються точно в тому вигляді, у якому їх написано. Двокрапка всередині них ніколи не відокремлюється пробілом.
Чи можна форматувати інструкції INSERT OVERWRITE?
Так. INSERT OVERWRITE TABLE ... PARTITION (...) залишається разом, а інструкція SELECT, яка передає йому дані, форматується під ним.
Чи підтримується MERGE?
Так. Гілки WHEN MATCHED і WHEN NOT MATCHED інструкцій ACID MERGE починаються з нового рядка.
Чи зберігаються коментарі?
Так. Коментарі рядка -- і блочні коментарі /* block comments */ залишаються на місці. Відступи в багаторядкових блочних коментарях коригуються відповідно до нового макета.
Чи змінюється регістр ключових слів?
Ні. Ключові слова й імена зберігають регістр, у якому ви їх написали. Змінюються лише пробіли та розриви рядків.
Які помилки виявляються?
Незакриті рядки, ідентифікатори у зворотних лапках, індекси та блочні коментарі, а також незбалансовані дужки — для кожного вказуються рядок і стовпець. На вашому кластері нічого не запускається.
Який максимальний розмір вхідних даних?
До 1 MB на запит і 128 KB на оператор. Скрипти з багатьма операторами форматуються по одному оператору за раз.
Чи можна вибрати відступи та чи зберігається мій SQL?
Використовуйте 2 або 4 пробіли чи табуляцію. SQL форматується лише в пам’яті й ніколи не зберігається.