Formátovač Redshift
Formátujte Amazon Redshift SQL podle pravidel Redshift pro řetězce s escapováním zpětným lomítkem, identifikátory v dvojitých uvozovkách, dočasné tabulky #temp, přetypování :: a těla funkcí $$. QUALIFY a MINUS zůstávají klauzulemi, větve MERGE začínají na nových řádcích a dlouhé seznamy sloupců se rozdělují po jednom na řádek. Neuzavřené řetězce a závorky se hlásí spolu s číslem řádku a sloupce, což analytikům a datovým inženýrům usnadňuje kontrolu kódu pro datové sklady.
Často kladené otázky
Která syntaxe Redshift je podporována?
Rozpoznávají se řetězce v jednoduchých uvozovkách s escapováním zpětným lomítkem a zdvojenými uvozovkami, identifikátory v dvojitých uvozovkách, názvy tabulek #temp a přetypování ::. Operátory regulárních výrazů ~ a ~* včetně jejich negovaných forem a těla funkcí v dolarových uvozovkách $$ zůstávají nedotčené.
Čím se liší od formátovače PostgreSQL?
Redshift vychází z PostgreSQL, ale liší se: zpětná lomítka v jeho řetězcích escapují znaky, # označuje název dočasné tabulky místo operátoru a jsou dostupné QUALIFY a MINUS. Tento formátovač tato pravidla dodržuje.
Co se stane s těly UDF?
Těla uživatelsky definovaných funkcí v jazyce Python nebo SQL zapsaná mezi značkami $$ zůstávají přesně tak, jak byla napsána. Formátuje se pouze okolní příkaz.
Které klauzule dostanou vlastní řádek?
SELECT, FROM, WHERE, GROUP BY, HAVING, QUALIFY, ORDER BY, LIMIT a OFFSET začínají na vlastních řádcích. MINUS, UNION, INTERSECT a EXCEPT oddělují dotazy, které kombinují.
Podporuje MERGE?
Ano. Větve WHEN MATCHED a WHEN NOT MATCHED začínají na nových řádcích.
Zachovávají se komentáře?
Ano. Komentáře -- a /* */ zůstávají na místě. Víceřádkové blokové komentáře se znovu odsadí podle nového rozlož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 uvozovkách, těla $$ a blokové komentáře i nevyvážené závorky, vždy s číslem řádku a sloupce. SQL se do vašeho clusteru neodesílá.
Jak velký může být vstup?
Až 1 MB na požadavek a 128 KB na příkaz. Delší ETL skripty 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á.