PostgreSQLを安心して選定するための指針「DB選定基準編」
データベース移行では、まず置き換え先のデータベースを選定し(図1の⓪)、続くステップとして移行可否を判断するためのアセスメント(図1の①)を実施します。アセスメントの結果、移行のコストやリスクに対してメリットがあり移行を実施すると判断した場合、システム構成や周辺システムとのデータ連携、データベースに格納されているスキーマ定義、データ、ストアドプロシージャを含むアプリケーションと運用の移行へと進めていきます(図1の②-⑦)。その後、テストと必要に応じてチューニングを施した上で移行評価を行います(図1の⑧-⑩)。
企業システムでデータベースに求められる機能要件は多岐にわたります。そのため、データベースがそれらを実現する技術要素を持っているかどうかをきちんと把握した上で適切に選定する必要があります。各要件に対応するPostgreSQLの特徴や機能を確認するには、PGEConsが公開する移行ガイドの「DB選定基準編」(※1)を利用します。DB選定基準編では、要件を「アーキテクチャ」「スキーマ・オブジェクト」「国際化対応」「開発言語」などデータベースの一般的な機能と、「地理空間情報」「外部データとの連携」などPostgreSQLの特徴的な機能が関係する項目とに分類し、対応状況が整理されています。
アーキテクチャの章ではデータベース構造や同時実行性、ロック制御、トランザクション分離レベルといった基本的な項目ごとにPostgreSQLと商用データベース(Oracle Database、Microsoft SQL Server、IBM DB2)の仕組み(※2)が比較されており、ドキュメントに目を通すとPostgreSQLがDBMSとして必要な機能を全て備えていることが分かります。また国際化対応の章では、マルチバイトの格納やソート順序、メッセージ表示の設定など、日本語のデータを扱う際に考慮すべき情報がまとめられています。これは日本国内で活動するコミュニティならではの情報と言えます。
(※1)「DB選定基準編」はこちらから参照ください。
(※2)「【別紙】アーキテクチャ比較表」はこちらから参照ください。
PostgreSQLには表1にあるような特徴的な機能が多く存在します。これらのうち、特にGIS(Geographic Information System:地理情報システム)はユーザから高く評価されている機能で、これがPostgreSQLを採用するポイントとなった事例があります。また、FDW(外部データラッパ)は、データベース移行を進める上でも重要な要素となる、データ連携を実現する機能として注目されています。
JSONデータを格納するための型
JSON型、JSONB型が存在
カテゴリ | 機能 | 概要 |
データ型 | 範囲型 | 値の範囲を取り扱うデータ型 |
JSONデータ型 |
JSONデータを格納するための型 JSON型、JSONB型が存在 |
|
インデックス | 部分インデックス | 条件を満たすレコードのみにインデックスを作成 |
式インデックス | 計算や関数の結果に対してインデックスを作成 | |
セキュリティ | 行レベルセキュリティ | 行単位でのアクセス制御 |
オブジェクト指向 | テーブルの継承 | 親テーブルの構造を継承した子テーブルの作成 |
地理空間情報 |
GIS (地理情報システム) |
地理データ型、地理空間情報の演算、 高速な検索 |
外部データ |
FDW (外部データラッパ) |
PostgreSQLの外部に存在するデータに対する アクセス手法 |
文書検索 | 全文検索 |
問い合わせを満たす自然言語の文書を 識別や関連性の判定 |
GISは、地理情報を管理、加工し、検索結果や分析結果を可視化するシステムを指します。GISの空間データベースには、文字や数値など一般的なデータと同じようにSQLを使って地理情報データを処理する仕組みが必要です。PostgreSQLでは空間データベースとして利用するための拡張モジュール「PostGIS」が提供されており、ベクタデータやラスタデータなど空間データを格納するためのデータ型や高速な検索を実現するGiSTを利用したR-Treeインデックス、関数など豊富な機能を備えています。2013年のPGECons主催事例発表セミナーでご紹介したスポットライト社の来店検知サービス「スマポ」(※3)のPostgreSQL導入事例では、PostGISの豊富な機能や高い性能が評価されたことが採用の背景にあります。
(※3)「スポットライト社の来店検知サービス『スマポ』」の詳細情報はこちらから参照ください。
PostGISの利用方法やGIS要件への対応に関して、旅行会社の地理情報システムを例に実機を用いた検証・考察(※4)も公開していますので、あわせて参照ください。
(※4)「GISアセスメント編」はこちらから参照ください。
FDWは、PostgreSQLの外部にあるさまざまなデータソースにSQLを利用してアクセスする仕組みです。PostgreSQL本体に同梱されるPostgreSQL間をつなぐpostgres_fdwやCSVファイルとの連携を可能にするfile_fdwのほか、Oracle DatabaseやMySQL、MongoDBやLDAPなどさまざまなデータソースに対応するFDWが開発されており、連携先のテーブルに対して参照だけでなく更新処理もサポートするFDWの種類も増えています。
PGEConsでは、さまざまなデータベースが利用されている社内システムを例に、勤怠管理や人事給与システムなどで個々に管理されるユーザ(社員)情報を一元管理へと変更し、FDWを介して各システムへデータを連携するというシナリオで検証を行っており、社員の昇格や退職などに伴ったデータ更新も想定通りの結果となることが確認できています(※5)。世の中のあらゆるモノをインターネットでつなぐIoTが本格化し、さまざまなデバイスから集約されたビッグデータの活用が注目される昨今、多種多様な外部データソースとの連携を実現するFDWの重要性が高まっていくものと期待しています。
(※5)「FDW(外部データラッパ)のアセスメント」はこちらから参照ください。
企業システムで利用するデータベースを選定する場合、メンテナンスや監視などの運用管理や開発で活用できる機能・ツールの充実度も重要なポイントです。DB選定基準編では、pg_basebackupやpgAdminなどPostgreSQLの標準機能に加えて、PostgreSQLに対応している主なOSS、商用ツールが整理されており、対象システムに適した機能やツールを選定する際の参考情報として活用することができます。