15
Furoku SQLTool 株株株株 FLECT 株株 西

Herokuで使えるRDBMS管理者ツール

Embed Size (px)

Citation preview

Page 1: Herokuで使えるRDBMS管理者ツール

FurokuSQLTool

株式会社 FLECT小西俊司

Page 2: Herokuで使えるRDBMS管理者ツール

FLECTが作ったHerokuのおまけ

Furokuって何よ?

Page 3: Herokuで使えるRDBMS管理者ツール

R&Dとして調査&開発したものを広く世の中に発信する◦特にHeroku◦ http://oss.flect.co.jp/で色々と公開中

個々の技術要素を部品化して再利用可能にする◦ SQLGrid by jqGrid◦ SQLGraph by Flotr2(他のグラフライブラリにも差し替え可能 )

Scala(Playframework2.0)の実案件適用の可能性を探る◦まだBestPracticeが確立しているとは言い難い◦他のフレームワークを評価するというのもアリ

SI案件の補助◦表側 (商品販売サイト )は人かけて作りこんでいても裏側 (売上集計 )は全然間に合ってねー (-- みたいな

◦他にもExcelダウンロード、Salesforce同期などが実案件で稼働中

何でこんなものを?

完成度よりも数を重視

Page 4: Herokuで使えるRDBMS管理者ツール

DataClipの再実装

SQLToolとは何か?

Page 5: Herokuで使えるRDBMS管理者ツール

パラメータが使えない◦「 X月の売上が見る」というクエリーを作成した場合、毎回

WHERE句を書き変えなければならない 登録したクエリーを整理できない

◦ソート順のロジック不明 SELECT結果に長い文字列が含まれていると結果が見にくい

◦単なる TABLEだし Past Resultが意味不明

◦定期的に自動実行してくれれば良かったんだけど 重い

◦何 dyno? 画面が黒い

◦のはまだしも背景と同化して文字が読めないのはどうなんよ?

DataClipのいけてないところ

Page 6: Herokuで使えるRDBMS管理者ツール

パラメータが使える◦ SELECT文中に「 :パラメータ名 [:データ型 ]」という形式でパラメータが埋め込める

ツリー構造でクエリーを管理◦ DynaTree便利

SELECT結果は jqGridで表示◦ページングやカラムのリサイズ、ソートに対応。◦ついでにグラフ表示も可能

定期的にSELECT結果をGoogleSpreadsheetに転記◦もっともいまいち使いにくいので仕様から再検討した方が良いかも

1dyno◦ユーザー数はせいぜい数人の想定なので無料範囲で十分サクサク動きます。

画面が白い◦どうなんよ?

SQLToolの良いところ

Page 7: Herokuで使えるRDBMS管理者ツール

詳細はマニュアルでhttp://furoku-sqltool.herokuapp.com/assets/manual/ja/manual.html

インストール

git clone [email protected]:shunjikonishi/sqltool.githeroku creategit push heroku masterheroku run rake setupheroku config:set TARGET_DATABASE=<YOUE DATABASE URL>

heroku config:set ALLOWED_IP=xxx.xxx.xxx.xxxheroku config:set BASIC_AUTHENTICATION=username:password

GoogleSpreadsheet連携する場合にはさらに追加の設定が必要

セキュリティ設定

必須設定

Page 8: Herokuで使えるRDBMS管理者ツール

画面構成

SQL文の入力エリア

SELECT結果の表示エリア

保存したクエリの管理エリア

3ペインアプリケーション

Page 9: Herokuで使えるRDBMS管理者ツール

SELECT結果の表示

CSV, または Excel形式でのダウンロード

ページング

ヘッダクリックでソート

jqGridを使い倒す (※結構作りこんでます )

Page 10: Herokuで使えるRDBMS管理者ツール

グラフ表示とりあえず flotr2。他のグラフライブラリも評価したいがあんまり不満が無いので手つかず

SELECT first_name || ‘ ‘ || last_name as name, math, english, japanese, FROM score_table ORDER BY random() LIMIT 10

デモではランダムソートなので実行毎にグラフが変わる

Page 11: Herokuで使えるRDBMS管理者ツール

スナップショット Google Spreadsheetを iframeで表示

いまいち使い勝手が悪いんだがどうすれば UXが改善するだろう??? (--

Page 12: Herokuで使えるRDBMS管理者ツール

パラメータ SQL文中に「 :xxx」を埋めることでパラメータ化

日付、数値などの簡単なデータ型指定可能

Page 13: Herokuで使えるRDBMS管理者ツール

グラフライブラリを切り替え可能にする グラフの SQL書式改善

◦現状積み上げ棒グラフなどでシリーズを作成する SELECT文を作るのがデータ構造によってはかなり難しくなる (クロス集計クエリとなる可能性が大 )

パラメータのUI/UX改善◦同じパラメータを複数個所で使用可能にする

GoogleSpreadsheet連携のUI/UX改善◦アイデア募集

などただし優先順位はどれも高くないので本当にやるかは不明

今後の課題

Page 14: Herokuで使えるRDBMS管理者ツール

ユーザー管理◦やるならOAuth(Heroku or Salesforce)◦だけどリリース形態 (git cloneして Herokuに push)とそぐわないのでやらない

◦個人的にはこれがユーザー管理がちゃんとできるアプリになるなら金をとって良いと思う。。。のでやらない。

更新文のサポート◦自由度が高く権限管理もないので危険すぎる◦ただし更新も可能な別の管理者ツールは作るかもしれない

このアプリ自体はあくまで R&Dなので部品が拾えればOK

このアプリでやらないこと

Page 15: Herokuで使えるRDBMS管理者ツール

ライブサンプル http://furoku-sqltool.herokuapp.com/◦クエリは自由に編集/保存して構いませんが毎日深夜 (日本時間 )にリセットされます。

◦普通に他者の編集操作と競合する可能性があるので、怪しいと思ったら F5(^^;;;

ソース https://github.com/shunjikonishi/sqltool

FLECT OSS Library http://oss.flect.co.jp/

FLECTの Heroku開発者絶賛大募集ページ http://flect.co.jp/recruit/feature/heroku.html

リソース