inohilog

/var/log/inohiro

Advent Calendar の記事を書くときに考えたこと

PostgreSQL Advent Calendar 2015 の19日目を担当した。 Advent Calendar の記事を書くときに考えたことをメモっておく。

qiita.com

お仕事で PostgreSQLAmazon 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について書こうかとも考えたが、やめた。

という、何を考えたかのメモでした。