DataGripって、便利

はじめまして、最近TVISION INSIGHTSにジョインしたエンジニアの taross-fです。 前職ではソーシャルゲームの会社で主にC#を書いて過ごしていましたが、現在はデータベースからAWSからいろいろ触っていて、必死に楽しく日々を過ごしています。

他メンバーのpostでもありましたが、弊社ではDB接続のクライアントとしてDataGripを使用しています。初めて使ったんですがかなり良さげなので、いいところと便利機能をいくつか紹介したいと思います。

www.jetbrains.com

いいところ

さまざまなDBに対応している

MySQLだったらMySQL WorkBench, SQLServerだったらSQL Server Management Studioなど、それぞれDBごとの専用クライアントがありますが、DataGripはさまざまな種類のDBに対応しています。

弊社ではMySQL、AmazonRedshiftなど複数のDBを同時に触ることがあります。このような場合DataGripだと一つで同時にそれぞれに接続して操作できるので、楽ちんです。さらに同じインターフェースなので、同じショートカットや操作方法で様々なDBを操作できるのもグッドです。過去触ったものだと例えばクエリ実行が ⌘ + Enter だったりAlt + x だったり Ctrl + Enter だったりしました。

もちろんSSHトンネリングもできるので、踏み台経由などのよくあるケースも問題なく接続可能です。

JetBrains流(?)の補完、スニペット、フォーマッタ

たくさんのIDEを作っているJetBrains製なので、コード補完もいい感じですしスニペットもたくさんあります。過去に同じJetBrains製のReSharperを使い込んでいたのもあり、なじむ感じで動いてくれます。

f:id:taro-furuya:20180817165729g:plain

フォーマッタだったりもある程度細かく指定できたり、エクスポートして共有したりもできるので、クエリ規約的に配布するのも良さそうです。 個人的にはSQLキーワードを大文字で書くのがめんどくさいので、小文字でざーっと書いてフォーマッタで一気に変換ってやってます。

f:id:taro-furuya:20180817164938g:plain

他のよくある機能

GUI上でポチポチするだけでDDL発行できたり、Select結果を後からポチポチ並べ替えたりするなど、よくあるクライアントにある機能はもちろんあるので安心してください。 あとは細かいところですが、適当に書き捨てた感じのクエリも意図的に消さない限りファイルとして残るので、前に書いたなーみたいなのは結構遡れたりして便利。

GUI上でテーブルインポート・エクスポート

おまけ的機能にはなりますが、dump => import みたいなことをしなくても、Select結果をそのまま別DBへエクスポートインポートすることができます。 同一クライアントから複数ホストのDBに接続しておけば、ホストをまたいで移せます。1行ずつのinsertで移しているようで、レコードが多いと時間がかかりがちですが、小さいテーブルならそのまま環境をまたいでデータを移すことがサクッとできて便利です。

いやなところ

GUI絡みの問題

複数DB対応のためか、GUIからのDDLの発行がおかしいときがあります。 例えばRedshiftに対して複数PrimaryKeyをGUIから貼ろうとしてもうまくいかなかったり。 そういうときはしょうがないので手でDDLをいじればOKです。

お金

お金がかかります。 が、無料トライアルは30日あります。 また他のJetBrainsツールを購入していると付属してることもあります。

まとめ

まだまだ触り始めたばかりなので、良い機能を見つけられていないかもしれません。 今後もごりごり使い倒していきたいと思います。