2016年1月16日土曜日

読書メモ:SQL実践入門 技術評論社

普段あまり技術的な本は読まないのですが、これは読んでおいてよかった!という一冊。

普段データを扱う(DBからデータを抜き出し、加工、意味合いを導き出す)仕事をしているので、SQLを触らない日はありません。どうしても効率的にデータを抜きたい、後で見返しても可読性が高いクエリを書きたい、実行計画を解読できるようになりたい、という要望に見事に答えてくれる1冊でした。

有用(だと思った)Tips

  • ウィンドウ関数
    • 毎日クエリを書いて、データ抽出→Excelにコピペ→関数を適応したり、グルーピングをしてランキングを作ったり…。こういった作業が多いかと思うのですが、それをDB側でやってくれる機能。
    • partition by と order by 句の組み合わせでグルーピング処理できる。
    • 例えば、地域ごとの売上げランキングを作りたいとか。
  • CASE式
    • 条件分岐をさせたいですよね。地域Aは〜〜処理、地域Bは〜〜処理とか。
    • ExcelのIF文でも対応可能ですが、データが膨大、かつ複数条件とかで面倒な時に使えます。
    • WHERE句で条件を書き複数SQLをUNIONするのは初心者。
  • 結合の種類
    • 自分でコントロールできる部分は少ないとはいえ、パフォーマンス・チューニングをしなければいけない場合に知っておくと便利な知識。
    • Nested Loop・Hash Join・Sort Marge
  • テーブルアクセスをできるだけ減らせ!
    • 本書に出てくる中で最も肝心な言葉。
    • サブクエリで同じテーブルにアクセスしにいくのはできるだけ抑える。
    • パフォーマンスを出したい!と思った時にいかに「1回のアクセスで必要なデータを取りにいけるか?」に知恵を絞る。
  • サブクエリは積極的に使うな
    • ついつい使いがちなサブクエリ。だって便利だし、頭の中のロジックがそのままかけるのでついつい使ってしまう。
    • しかし、上記のように、同じテーブルに何回もアクセスしにいくのはDB側にとっては、「またおんなじテーブルをスキャンかよ…」ということ。
    • できるだけ使わないようにしたほうが早い。

トレードオフ

本書でよく言及されている言葉。何事もにメリット・デメリットがあるわけで。
例えば「ぐるぐる系処理」(ループをさせる)と「ガツン系処理」をさせる際にどちらがパフォーマンスがよいか?など。

何事にも絶対的な解は無くて、状況によって最適なソリューションを見つけていくことが肝要。ソリューションの種類とそのメリデメを見極めるためにソリューションを熟知しておくことが重要ですね。

DBを使う人はぜひ

バックエンドエンジニアや、BI/DWHを扱うエンジニア、分析のためにSQLを使う必要がある人など、DBが仕事にとって重要な位置を占める人は一読しておいて損は無い一冊です。


2016年1月4日月曜日

【読書メモ】1億人のための統計解析:西内啓 日経BP社

2週に一度図書館にいって本を数冊借りている。
せっかくなので、読書メモを残しておく。

「はじめてデータ分析をする人」には最適な1冊

初めてデータ分析をしてみたい、興味がある人に向けて
  • アウトカム(目的変数)
  • 解析単位(顧客、クライアントなどなど)
  • 説明変数
を適切に設定することを前半で懇々と説明。

単回帰から重回帰・時系列を説明。

重回帰は変数を手元にあるデータからいかに作り出せるかが大事。どんな考え方をすれば既存データから作成できるのかが参考になる。

単純なアウトカムの設定だけでなく、説明変数に実数値だけでなく割合を使ったり、解析の結果、実現できるアクションが取れるか?などなどをわかりやすく説明してあり、実務向けの内容。

解析結果を実現できるアクションにできるか?の点について言及。
実務者にとってはとても大事。


Excelで説明してあるからすぐに実践できる。ただ、説明変数が分析ツールでは変数が15個までしか設定できないから、多数の説明変数がある場合はめっちゃ面倒。

実業務で使えそうな点

時系列データをダミー変数を作って重回帰を使う点。こういうやり方もあるのかと新鮮だった。
(でもきっとARIMAとか使っちゃっうんだろうな)

「報告」の章が他の統計解析書籍には載っていない点。サンプルデータから解析、解釈をして上司やクライントにどのように報告するかまでのサンプルが載っている。
これはいい。

Power Pivot !

Microsoft SQL Serverの機能を利用したデータマイニング機能を紹介。Excelだとどうしても足りないデータマイニング機能をSQL ServerとPower Pivotを使えば利用可能にできる。

PowerPivot for Excel
PowerPivot:Excelで強力なデータ分析とデータモデリング

重回帰・クラスタリング・時系列などを利用可能。

まとめ

  • 「データ分析を始めてみたい」、「データ分析ってどうやるの?」っていう人には参考になる。
  • ある程度データを使って解析・分析をしている人(中級者・上級者)にとっては参考になりそうな情報はほとんど無さそう。
  • Excelで説明をしてあるので、手軽にできそうな反面、関数やピボットなど利用しないていといけないので、結構手間。また、説明変数を多数作りたい場合には関数の適応や、ピボットテーブルの作成等手間かかる。(素直にRを使いましょう。)
  • Power Pivot 慣れ親しんだインターフェイスでデータマイニング機能を利用できるのはイイね。