Advent Calendar の記事を書くときに考えたこと
PostgreSQL Advent Calendar 2015 の19日目を担当した。 Advent Calendar の記事を書くときに考えたことをメモっておく。
お仕事で PostgreSQL や Amazon Redshift を使っていたりで、PostgreSQL への興味がだいぶ強くなっていてる。 具体的にはウインドウ関数が便利すぎるとか、FDW とか、PL/Python とかで UDF が簡単に書けたりとか(MySQLがどうなのかは知らない)。
学生のころは基本的に MySQL を使っていた。特に理由はなかったが、扱いやすく情報も多いイメージで使っていたのだと思う。
PostgreSQL はバイト先のRDBがそれだったので、全く使ったことが無かったわけではないが、難しいイメージが強かった。
(厳密には異なるが、show tables が \d
だったりするので、MySQLの方がユーザーフレンドリーと思う)
ということで、個人的にポスグレ熱が高まっており、OpenなSlackチャットを覗いたりしている。 そこで Advent Calendar を見かけたので、勢いで書くことにした。
たまたま書く日(19日(土))に、9.5 の RC1 がリリースされるということで、それをビルドしてみて、 PL/Ruby もしくは PL/mruby を使って、UDF などを書いてみようと思っていた。
実際はじめてみると、PL/Ruby は開発が止まっており、PL/mruby は現在開発中ということで、見送ることに。 また、RC1 のビルドとインストールは、VM上の Ubuntu Server 14.04 で問題なく終わったが、 docker が便利で、その後の作業は Beta2 の docker image を使ってやった。
あとは記事の例で用いるデータについていろいろ考えてしまい、時間がかかった。
- 集計(集約)する機能の話なので、集約済みの統計データなどは今回使えない
- 数値にたいしていくつかの属性がくっついている
- ただし属性が多いと、組み合わせが爆発するので、2つくらいが良い
結局適当な商品データを書くことに。最初は人の属性について考えてみたが、 性別とか生年月日とかめんどくさくなってしまった。 faker gem を使ってダミーデータを作ろうかと思ったり、 記事の内容とは直接関係ないところで時間がかかってしまった。
あとは、過去に書いたSQLについて書こうかとも考えたが、やめた。
という、何を考えたかのメモでした。