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から利用できるようになる予定です。

2015年11月28日

「PostgreSQLセキュリティ総復習」のスライドを公開しました

昨日開催されたPostgreSQLカンファレンス2015でのセッション「PostgreSQLセキュリティ総復習」のスライドを公開しました。


目次は以下のような感じです。

2015年11月15日

自動要約API「summpy」を使ってPostgreSQLに文章の要約機能を追加する

昨日、PostgreSQL勉強会で「PostgreSQLハッキング 最初の一歩」と題して、PostgreSQLの拡張開発の初歩についていくつかお話させていただきました。 本エントリでは、勉強会でPL/Pythonの例としてご紹介した「自動要約APIをPostgreSQLに組み込む」について、もう詳しく紹介させていただこうと思います。

(右のサムネイルの意味は本エントリの最後に分かります)

■「自動要約API」とは?


自動要約APIは、10月末にリクルートテクノロジーズさんがリリースされた自然言語処理のライブラリで、Pythonで書かれたものです。 アルゴリズムについてはあまり詳しくは理解していないのですが、LexRankと呼ばれるアルゴリズムとMCP(Maximum Coverage Problem)と呼ばれるアルゴリズムが実装されており、形態素解析で品詞を分解したものにこれらのアルゴリズムを適用することで、「文章の中で重要度の高いセンテンスを選択する」ということを実現するようです。

2015年10月13日

Postgres Advanced Security Packテクノロジープレビュー版をリリースしました

本日、「Postgres Advanced Security Pack」というパッケージのプレビュー版をリリースしましたので、ご紹介させていただきます。

■「Postgres Advanced Security Pack」とは何か?


「Posetgres Advanced Security Pack」は、オープンソースで公開されている PostgreSQL のセキュリティ関連の拡張を複数まとめてビルド、RPMパッケージにしたものです。

PostgreSQLの拡張モジュールは、別々の開発者によって個別に開発・配布されているため、自分自身の環境で導入しようとすると手間がかかったり、あるいは単に知られていなかったりしますが、それらの問題を解決して、より簡単に導入できるようにすることを目的としてパッケージ化したものです。

このパッケージを使うことによって、PostgreSQLデータベースにセキュリティ関連の拡張を簡単に追加することができます。

現在、本パッケージには以下の3つのEXTENSION(拡張)が含まれています。

2015年10月4日

Cognos InsightからPostgreSQLのデータを利用する

最近、デスクトップBIツールである「Cognos Insight」を入手して使い始めたのですが、Cognos InsightのStandard EditionではデータソースにODBC接続を利用することができます。 自分の備忘も兼ねて、Cognos InsightでPostgreSQLにODBC接続してデータをインポートする方法を紹介しておきたいと思います。

なお、今回利用しているソフトウェアバージョンは、PostgreSQL 9.4とCognos Insight 10.2.2です。

■ODBCデータソースの準備

PostgreSQLのODBCドライバおよびデータソースの設定については、以前の記事を参照してください。 一通り確認しましたが、特に大きく手順が変わっているということはありませんでした。なお、本エントリ執筆時点でのPostgreSQLの64ビット版のODBCドライバは「psqlodbc_09_03_0300-x64-1.zip」です。

今回は、DWH系ベンチマークツールであるDBT-3のデータベースを使って、以下のデータソースをユーザDSNとして作成しています。