Upload
shunji-konishi
View
808
Download
5
Embed Size (px)
Citation preview
FurokuSQLTool
株式会社 FLECT小西俊司
FLECTが作ったHerokuのおまけ
Furokuって何よ?
R&Dとして調査&開発したものを広く世の中に発信する◦特にHeroku◦ http://oss.flect.co.jp/で色々と公開中
個々の技術要素を部品化して再利用可能にする◦ SQLGrid by jqGrid◦ SQLGraph by Flotr2(他のグラフライブラリにも差し替え可能 )
Scala(Playframework2.0)の実案件適用の可能性を探る◦まだBestPracticeが確立しているとは言い難い◦他のフレームワークを評価するというのもアリ
SI案件の補助◦表側 (商品販売サイト )は人かけて作りこんでいても裏側 (売上集計 )は全然間に合ってねー (-- みたいな
◦他にもExcelダウンロード、Salesforce同期などが実案件で稼働中
何でこんなものを?
完成度よりも数を重視
DataClipの再実装
SQLToolとは何か?
パラメータが使えない◦「 X月の売上が見る」というクエリーを作成した場合、毎回
WHERE句を書き変えなければならない 登録したクエリーを整理できない
◦ソート順のロジック不明 SELECT結果に長い文字列が含まれていると結果が見にくい
◦単なる TABLEだし Past Resultが意味不明
◦定期的に自動実行してくれれば良かったんだけど 重い
◦何 dyno? 画面が黒い
◦のはまだしも背景と同化して文字が読めないのはどうなんよ?
DataClipのいけてないところ
パラメータが使える◦ SELECT文中に「 :パラメータ名 [:データ型 ]」という形式でパラメータが埋め込める
ツリー構造でクエリーを管理◦ DynaTree便利
SELECT結果は jqGridで表示◦ページングやカラムのリサイズ、ソートに対応。◦ついでにグラフ表示も可能
定期的にSELECT結果をGoogleSpreadsheetに転記◦もっともいまいち使いにくいので仕様から再検討した方が良いかも
1dyno◦ユーザー数はせいぜい数人の想定なので無料範囲で十分サクサク動きます。
画面が白い◦どうなんよ?
SQLToolの良いところ
詳細はマニュアルで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連携する場合にはさらに追加の設定が必要
セキュリティ設定
必須設定
画面構成
SQL文の入力エリア
SELECT結果の表示エリア
保存したクエリの管理エリア
3ペインアプリケーション
SELECT結果の表示
CSV, または Excel形式でのダウンロード
ページング
ヘッダクリックでソート
jqGridを使い倒す (※結構作りこんでます )
グラフ表示とりあえず flotr2。他のグラフライブラリも評価したいがあんまり不満が無いので手つかず
SELECT first_name || ‘ ‘ || last_name as name, math, english, japanese, FROM score_table ORDER BY random() LIMIT 10
デモではランダムソートなので実行毎にグラフが変わる
スナップショット Google Spreadsheetを iframeで表示
いまいち使い勝手が悪いんだがどうすれば UXが改善するだろう??? (--
パラメータ SQL文中に「 :xxx」を埋めることでパラメータ化
日付、数値などの簡単なデータ型指定可能
グラフライブラリを切り替え可能にする グラフの SQL書式改善
◦現状積み上げ棒グラフなどでシリーズを作成する SELECT文を作るのがデータ構造によってはかなり難しくなる (クロス集計クエリとなる可能性が大 )
パラメータのUI/UX改善◦同じパラメータを複数個所で使用可能にする
GoogleSpreadsheet連携のUI/UX改善◦アイデア募集
などただし優先順位はどれも高くないので本当にやるかは不明
今後の課題
ユーザー管理◦やるならOAuth(Heroku or Salesforce)◦だけどリリース形態 (git cloneして Herokuに push)とそぐわないのでやらない
◦個人的にはこれがユーザー管理がちゃんとできるアプリになるなら金をとって良いと思う。。。のでやらない。
更新文のサポート◦自由度が高く権限管理もないので危険すぎる◦ただし更新も可能な別の管理者ツールは作るかもしれない
このアプリ自体はあくまで R&Dなので部品が拾えればOK
このアプリでやらないこと
ライブサンプル 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
リソース