2015年1月の記事一覧

ノンエンジニアでもOK。TableauでSQLの代わりをしちゃおう

プロダクト開発部のやすいです。
この前の安井と同一人物ですが、基本的には平仮名のやすいの方が字面が好きなので、
そちらを使わせていただきます。

過去の記事で、ノンエンジニアでもSQLを使えるようになろう的なブログを書いていましたが、
やはり慣れなかったので、Tableauで出来る方法を考えました。

MySQL社内勉強会をノンエンジニア向けに実施してみた

Tableauを使ってSQLと同じことをやるということは誰でも出来るので、
パクッてもいいのよ。と思いまして書きたいと思います。

●下準備(データ接続)

とにかくデータに繋がないことには始まりません。
簡単データの繋ぎ方講座から。

タブの「データ」から「データを接続する」を選択。うちはMySQLなので、そこから基本情報を入力します。
各自、エンジニアにパスワードなどは聞いてね。ちなみに、MySQLに接続するにはODBCが要りますのでお気を付けを。
585948aeca0724dca152cab1c0557e54

データの繋ぎ方です。
SQLを書かなくてもデータを繋げます。
テーブルとテーブルを繋げるのはドラッグ&ドロップするだけ。簡単ですね。
ただ、それだけだと繋げたことにならないので、2つの間にある〇みたいなのをクリックすると
下の画像みたいなものが出てきます。
「内部」って言うのが、選んだ変数の中で共通にあるものを残すという意味で、
「左」って言うのが、選んだ変数の中で左にあるデータは全部残すという意味で、
「右」って言うのが、「左」の逆です。絵でなんとなく分かります。

これで、データの接続はOK簡単ですね。
もし、個人情報を持ちたくないなぁなんて場合は、タブにある「データ」の「カスタムSQLに変換」って言うのを押すと、以下の画像のような画面が出てきます。この中で、個人情報に該当する行を消せばOKです。
ラクスルの場合はメールアドレスですかね。
aaaaaaa

下準備はこれでOKです。
後は、ピボットの感覚でグラフがほいほい書けます。
気分はデータサイエンティスト!
df9ebe45810505143cf4faa6dd36c29f

●対象の一覧を出したい場合

例えば、「東京で売上げが1万円以上のお客さんを抜き出したい!」みたいな時ってありますよね。
そんな場合は、大体エンジニアに頼んでSQL叩いてもらうってのが定番だとは思いますが、エンジニアが忙しそうな時は超気まずい。
実は、Tableauで出来ちゃうんです。

1.フィルタに条件を入れ込みます。今回は「県名:東京」と「売上げ:10,000円以上」60f6d139af39c106444542d77b4e9d42

2.適当に見たいデータを行に入れます。今回は「ユーザー」と「性別」と「誕生日」を入れました。

a592b6830596a073323af4b958951ca7

3.後は「分析」タブの「データ表示」して、すべてエクスポートをするだけ。後は煮るなり焼くなりご自由に。

4f957da7bbd6ade0f795eed9843e4987

●エクセルみたいに集計した数値を出したい場合

Tableauにも関数がたくさん用意されています。
本当に多い上に、割と分かりやすくて簡単です。
よく使う関数ベスト3

~第1位~「COUNTD([あ])」

「あ」の数を被っているのを1個だけと数えてくれる関数です。
パラメータを指定する「メジャー」の中にある「カウント(個別)」と一緒です。
しかし、なんとも複合的に使うのが多いのがこのCOUNTD。だから、覚えておいて損は無いです。

COUNTD([ユーザー])

とシンプルですけど一番使います。次の2位にも使ってます 笑

~第2位~「CONTAINS([あ]、い)」

もし、「あ」の中に「い」が含まれていたら、trueにするって関数。
集計する時はくっつけちゃって、trueをカウントしちゃいますね。

COUNTD(CONTAINS([ユーザー],”やすい”))

的な感じで、やすいがユーザーの中でどのくらい含まれているのかを数えてくれます。
超便利。

~第3位~「IF あ THEN い ELSEIF う THEN え ELSE お END」

もし、「あ」だった時は「い」で、それ以外の「う」だった時は「え」で、それ以外は「お」というもの。
条件に合わせてフラグ立てする時とかに使えます。あいうえおの部分に数式も入るので便利。
条件式にCONTAINS()とか使うと、含まれている時などで使えます。
具体的には以下のように使います。

IF [ユーザー]=やすい THEN 1 ELSEIF [ユーザー]=とねがわ THEN 2 ELSE 0 END

もし、ユーザー名が「やすい」だったら、1で「とねがわ」だったら2でその他は0ってことですね。
集計とかに使いやすいです。

まとめ

意外と、エクセルで出来ることは大抵出来ちゃうTableau。
さらに、SQLが書けなくても、同じようなことが出来てしまいます。
データの抽出なんかをエンジニアにお願いする時代はもう終了。
みなさんもTableauを使って、快適データライフを送ってくださいね。
といいつつ、やすいも使いこなせているのか自信は無いですが・・・

PR

ラクスルでは現在WEBディレクター・WEBデザイナーを絶賛募集中です!
<ラクスル採用サイト>

 


sublime text3でphpの開発環境を整える

11月入社のAです。
前職はソシャゲの会社でPerlを中心に開発しており、php歴は約2ヶ月ほどです。

sublime text3で開発する場合は、デフォルトで十分開発できるのですが、
いくつか小技的なものの紹介させて頂きます。

sshfsでサーバーをマウントしてsublコマンドを使う

ラクスルではIDCFクラウド上のサーバーにsshでログインして開発しているので、
sshfsでリモートサーバーをローカルにマウントしています。

sublimeにはsublコマンドが付属しており、このコマンドを使うとターミナルからファイルを開くことができ非常に便利なのですが、リモートのファイルに対しては当たり前ですが使うことができません。

sshfsでマウントすれば、ターミナルからマウント先に移動できるので
ローカルファイルと変わらず使うことができます。

DocBlockerを入れて、phpdocコメントを書く

phpではphpdocという形式でソースコードにコメントを書けば、自動でドキュメントを生成してくれるツールがあります。

オープンソースプロジェクトなどでは標準的に使われており、できればちゃんと書きたいところですが、docコメント書くのは正直めんどくさい….

ということで当初はさぼっていたのですが、DocBlockerというパッケージを入れると随分書きやすくなりました。

docblocker1

ただし、1点はまりポイントがあって、GoogleIMEで日本語のコメントを書こうとすると、Enterキーを押した時点で内容が消えてしまいます。

パッケージ側の機能をコメントアウトして、対応することもできるのですが、それだと使いづらくなってしまうので、IME側の確定をEnterキー以外にも割り当てることで対応しました。

MacOSの場合、GoogleIMEの環境設定 -> キー設定の選択 の横にある編集ボタンから設定変更することができます。

Phpcsでファイル保存時にコーディング規約にあっているかチェックする

phpにはPHP_CodeSnifferというツールがあり、
ソースコードが、コーディング標準にしたがってくれるかをチェックしてくれます。

ラクスルではコーディング標準はまだしっかり定めているわけではないのですが、
できればPSR標準にしていきたいねーという動きがあり、ひっそりsublimeに導入しました。
php-cs-fixerというphpcsに違反している部分を自動修正してくれるツールがあるので合わせてそれも導入します。

sublimeではPhpcsというパッケージを入れることで、エディタ上からphpcsを利用することができるようになります。

  1. まずはphpcs/php-cs-fixerをインストールします。詳細は割愛しますが、僕はhomebrewで以下のようにインストールしました。
    brew update && brew upgrade
    brew install php56
    brew install php-code-sniffer
    brew install homebrew/php/php-cs-fixer
    
  2. sublimeのパッケージインストールで、Phpcsを入れて設定ファイルを書きます。
    設定ファイルは、Preferences->Package Settings->PHP Code Sniffer->Settings-Userから編集できます。
    他にも挙動は細かく設定できますが、最低限以下の設定をすれば使えるようになります。詳細はDefaultの設定ファイルを読むと良いです。

    {
        "phpcs_php_path": "/usr/local/opt/php56/bin/php",
        "phpcs_executable_path": "/usr/local/bin/phpcs",
        "php_cs_fixer_executable_path": "/usr/local/bin/php-cs-fixer",
    }
    

保存時にphpcsでチェックする例。
ここでは括弧の位置とstatic/pubilcの宣言順序が指摘されています。
phpcs1

php-cs-fixerで修正する例。
phpcs2

これでレビューで怖い人に怒られなくなりますね!

PHP-Twigを入れる

ラクスルではテンプレートエンジンにtwigを使っているのでtwig用のパッケージを入れます。twigを使っているなら入れるべきでしょう。

その他

折角なのでphp関係ないですが、僕が普段使っているパッケージをしれっと付け加えておきます。

Alignment
All Autocomplete
BracketHighlighter
Browser Refresh
Emmet
Markdown Preview
RecentActiveFiles
Sublime Bookmarks
TrailingSpace

何かお役に立つものがあれば幸いです。

ラクスルではsublimeが好きなエンジニアを絶賛募集中です!
ラクスル採用サイト


2014年のラクスルtechブログ人気記事BEST5を発表!

あけましておめでとうございます!
ラクスルの淵野です。

2015年も始まりましたね。
本日が仕事始めの方も多いかと存じますが、
いかがお過ごしでしょうか?

昨年の7月に開始したこのラクスルtechブログも、
半年で26もの記事を投稿させていただきました。
エンジニアが書く技術系の記事もあれば、
ディレクター/マーケターによる記事、
はては、これtechか?と思われる怪しい記事まで、
ラクスルのメンバーの多様性を体現するかのような本ブログ。

今回はその中でも人気の高かった、2014年の記事BEST5を発表いたします!

 

5位:ラクスルの開発フローについて(8/4)

ラクスルの開発フローで利用しているツールと利用方法についてのこの記事。
GitHub、Redmine、Skypeなど、
社内で使用しているツールの一部の事例についてご紹介しています。
やっぱりこういう記事は人気がありますねー。
techブログらしい記事で納得のランクインです!

 

4位:ラクスルのインターンで学んだこと(9/1) 

インターンの大学生4年生Kちゃんの記事が4位にランクイン。
何気なくラクスルにジョインした彼女が、
自身とラクスルの成長の2年間の変遷を綴った記事。
彼女自身の人柄が伝わるほっこりした内容で、
ソーシャル上でも感動の連鎖を呼びました!

 

3位:新しいIDCFクラウドを使ってみた(10/15) 

IDCフロンティアさんのIDCFクラウドの設定手順を紹介した記事。
サービスリリース当日というタイミングに、
設定手順の画面キャプチャを気合で貼りまくったおかげ(総数28枚!)で、
IDCフロンティアの中の人もソーシャルで本記事をシェアしていただき、
見事3位にランクインです!

 

2位:なぜ、上場直後のリクルートからラクスルに転職したのか?(12/1) 

ディレクターY氏が入社日にいきなりtechブログに投下した、
全くtechとは関係ないこの記事。
超刺激的なタイトルと生々しい内容が相まって、
Facebook上で多くのシェアを獲得いたしました。
大手企業からスタートアップへの転職をされる方は最近多いでしょうから、
一つのケースとしてかなりこちらの記事は参考になるのではないでしょうか?

 

1位:テック系ベンチャーのノンエンジニアに抑えて欲しい7つのポイント(11/5)

エンジニアからノンエンジニアへの悲痛な叫びをまとめたこの記事。
Facebook、Twitter、はてなブックマーク等でバランスよくシェアされて見事2014年の1位に!
ラクスルではエンジニアによるMySQL社内講習が連日行われており、
最近はディレクターがエンジニアに依頼せずに、
自らSQLコマンドを叩いて データを抽出している光景がよく見られます(笑)。

 

まとめ

いかがでしたでしょうか?
始まって半年ほどではありますが、
BEST5だけ見ても かなりバラエティに富むブログになってきている印象がありますね。

2015年も本ブログは、 一部の方には(?)突き刺さるテーマの記事を、
自由気ままにご提供していこうと考えております。

こんなブログを見てラクスルに興味を持った方。
ラクスルではエンジニア・デザイナー・ディレクターを積極採用中です。
ブログの記事で少しでも興味ある内容をお知りになりたかったら、
お気軽にお問い合わせくださいませ!

<ラクスル採用サイト>