Форматиране на Redshift
Форматирайте Amazon Redshift SQL с правилата на Redshift за низове с екраниране с обратна наклонена черта, идентификатори в двойни кавички, временни таблици #temp, преобразувания с :: и тела на функции с $$. QUALIFY и MINUS се запазват като клаузи, клоновете на MERGE започват на нови редове, а дългите списъци с колони се подреждат по една на ред. Незатворените низове и скоби се отбелязват с ред и колона, което помага на анализаторите и инженерите по данни да преглеждат кода за хранилища на данни.
Често задавани въпроси
Какъв синтаксис на Redshift се разпознава?
Разпознават се низове в единични кавички с екраниране с обратна наклонена черта и удвоени кавички, идентификатори в двойни кавички, имена на таблици #temp и преобразувания с ::. Операторите за регулярни изрази ~ и ~* с отрицателните им форми, както и телата на функции в кавички с $$, се запазват непокътнати.
По какво се различава от форматирането на PostgreSQL?
Redshift е създаден на базата на PostgreSQL, но се различава: обратните наклонени черти екранират символи в низовете му, # започва име на временна таблица вместо да е оператор, а QUALIFY и MINUS са налични. Това форматиране следва тези правила.
Какво става с телата на UDF?
Телата на дефинирани от потребителя функции на Python или SQL, записани между маркерите $$, се запазват точно както са написани. Форматира се само операторът около тях.
Кои клаузи получават отделен ред?
SELECT, FROM, WHERE, GROUP BY, HAVING, QUALIFY, ORDER BY, LIMIT и OFFSET започват на собствени редове. MINUS, UNION, INTERSECT и EXCEPT разделят заявките, които комбинират.
Поддържа ли MERGE?
Да. Клоновете WHEN MATCHED и WHEN NOT MATCHED започват на нови редове.
Запазват ли се коментарите?
Да. Коментарите с -- и /* */ остават на мястото си. Многоредовите блокови коментари се пренареждат с отстъпи според новото оформление.
Променя ли се регистърът на ключовите думи?
Не. Ключовите думи и имената запазват регистъра, който сте задали. Променят се само интервалите и новите редове.
Какви грешки се откриват?
Незатворени низове, идентификатори в кавички, тела с $$ и блокови коментари, както и небалансирани скоби, всеки с ред и колона. SQL не се изпраща към вашия клъстер.
Какъв е максималният размер на входните данни?
До 1 MB на заявка и 128 KB на оператор. По-дългите ETL скриптове се форматират по един оператор наведнъж.
Мога ли да избера отстъпа и съхранява ли се моят SQL?
Използвайте 2 или 4 интервала или табулации. SQL се форматира само в паметта и никога не се записва.