2015年12月28日

PostgreSQLアーキテクチャ入門(自習用教材)のご紹介

以前、オンラインで販売していたもののPaypalとのインテグレーションがうまく動かなくなりそのままになっていた「PostgreSQLアーキテクチャ入門(自習用教材)」の販売をGumroadで再開しました。 1時間弱の同名のセミナーの内容(スライド動画と音声のMP4)とPDFファイルです。

特に、
  • 普段、地理的制約や時間的制約でなかなかセミナーに参加できない
  • セミナー後に配布された資料を見ただけではよく理解できない
  • 後輩や部下の教育などのために簡単な教材を探している
という方にお勧めです。

何年か前のマテリアルですが、今でも十分通用する内容だと思いますので、PostgreSQLに興味のある方は冬休みの軽い勉強用にぜひどうぞ。

では。

2015年12月22日

JSONで1:Nのデータ構造をカジュアルに生成してみる

先日、第6回 PostgreSQLアンカンファレンスを開催したのですが、その際、Kuwata氏の以下のプレゼンを聴く機会がありました。
一言で言うと、PostgreSQLのJSONを使って



というようなデータ構造を生成したいのだがPostgreSQLでは実現が難しい、という内容でした。

その時は、「ふむふむ」と聞いていたのですが、最近、JSONの機能に興味を持っていたこともあり、「どうにか望むデータ構造をどうにか実現できないだろうか?」ということが気になっていました。その後、いくつか調査してみた結果、わりと簡単に実現できることが分かりましたので、本エントリではその方法を紹介します。

実現したいことは、
  • 複数のテーブルをJOINして1:Nの構造を生成すること
  • Nの部分にはJSONを使うこと
  • JSONのキー名を任意に設定できること
です。

2015年12月1日

PostgreSQL 9.6のパラレルシーケンシャルスキャンを検証する

今年もこの季節になりました。PostgreSQL Advent Calendar 2015のDay1の記事です。

今回は、現在開発中のPostgreSQL 9.6に実装されたパラレルシーケンシャルスキャンについて、動作確認とフラッシュストレージでの簡単な性能検証をしてみようと思います。

なお、現在開発中の機能ですので、正式リリースされる時には仕様や動作などが変わっている可能性があることをご了承ください。

■「パラレルシーケンシャルスキャン」とは


「パラレルシーケンシャルスキャン」は、その名の通り、シーケンシャルスキャンを並列処理する機能です。

今まで、PostgreSQLでは1つのCPUを使ってシングルスレッド(というかプロセス)でしか処理をすることができませんでした。

しかし、直近のPostgreSQLのメジャーバージョンの拡張を見ていた方はご存じの通り、PostgreSQLではパラレル処理に向けての基本的な機能(開発者たちは infrastructure と呼んでいますが)が少しずつ実装されてきました。

そして、先月、PostgreSQLの待望のパラレル処理の一つ目の機能として、パラレルシーケンシャルスキャンがGitの最新版のコードにコミットされました。
このコードツリーは「9.6devel」と呼ばれており、約1年後にリリースされる予定のメジャーバージョン9.6から利用できるようになる予定です。