# Hiveフォーマッター

Hiveのルールに従ってApache Hive HiveQLを整形します。バッククォートで囲まれた識別子、バックスラッシュエスケープを含むシングルクォートおよびダブルクォートの文字列、${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 に対応していますか？

はい。ACID MERGEステートメントのWHEN MATCHEDおよびWHEN NOT MATCHEDの分岐は、新しい行から始まります。

### コメントは保持されますか？

はい。--の行コメントと/*ブロックコメント*/はそのまま保持されます。複数行のブロックコメントは、新しいレイアウトに合わせて再インデントされます。

### キーワードの大文字と小文字は変わりますか？

いいえ。キーワードや名前の大文字・小文字は入力したとおりに保たれます。変更されるのは空白と改行だけです。

### どのようなエラーが検出されますか？

閉じていない文字列、バッククォート識別子、添字、ブロックコメント、および対応していない括弧を、それぞれ行番号と列番号とともに報告します。クラスター上で実行されることはありません。

### 入力の最大サイズはどれくらいですか？

1リクエストあたり最大1 MB、1ステートメントあたり最大128 KBです。ステートメントが多いスクリプトは、1つずつフォーマットされます。

### インデントを選べますか？また、SQLは保存されますか？

スペース2個または4個、あるいはタブを使用できます。SQLはメモリ上でのみフォーマットされ、保存されません。

ここに広告を掲載しませんか？

[メールでお問い合わせ](mailto:hi@dennn.is?subject=OneClick%20Pro%E3%81%A7%E3%81%AE%E5%BA%83%E5%91%8A%E6%8E%B2%E8%BC%89)

[広告 WordPress向けのエージェント対応プラグインスイート。](https://sleekwp.com/?ref=oneclickpro)
