Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

PGECons最新ドキュメントでOracle Database→PostgreSQLへの移行を攻略!

2017/02/03 06:00

 昨今、企業システムでPostgreSQLの利用が急速に増えており、新規にとどまらず、既存システムの商用データベースの置き換え先として採用されるケースも増加傾向にあります。大きな後押しとなっているのはDBMSとしてのPostgreSQL自体の豊富な機能はもちろんですが、2012年から企業レベルでPostgreSQLの技術情報を継続して公開している「PostgreSQLエンタープライズ・コンソーシアム」(https://www.pgecons.org/)(以下、PGECons)の存在があります。本記事ではPGEConsの公開ドキュメントを参考に、Oracle DatabaseからPostgreSQLへの移行のポイントをご紹介します。

PostgreSQLを安心して選定するための指針「DB選定基準編」

 データベース移行では、まず置き換え先のデータベースを選定し(図1の⓪)、続くステップとして移行可否を判断するためのアセスメント(図1の①)を実施します。アセスメントの結果、移行のコストやリスクに対してメリットがあり移行を実施すると判断した場合、システム構成や周辺システムとのデータ連携、データベースに格納されているスキーマ定義、データ、ストアドプロシージャを含むアプリケーションと運用の移行へと進めていきます(図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型が存在

表1:PostgreSQLの特徴的な機能
カテゴリ 機能 概要
データ型 範囲型 値の範囲を取り扱うデータ型
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の種類も増えています。

図2:FDWによるデータ連携
図2:FDWによるデータ連携

 PGEConsでは、さまざまなデータベースが利用されている社内システムを例に、勤怠管理や人事給与システムなどで個々に管理されるユーザ(社員)情報を一元管理へと変更し、FDWを介して各システムへデータを連携するというシナリオで検証を行っており、社員の昇格や退職などに伴ったデータ更新も想定通りの結果となることが確認できています(※5)。世の中のあらゆるモノをインターネットでつなぐIoTが本格化し、さまざまなデバイスから集約されたビッグデータの活用が注目される昨今、多種多様な外部データソースとの連携を実現するFDWの重要性が高まっていくものと期待しています。

 (※5)「FDW(外部データラッパ)のアセスメント」はこちらから参照ください。

 企業システムで利用するデータベースを選定する場合、メンテナンスや監視などの運用管理や開発で活用できる機能・ツールの充実度も重要なポイントです。DB選定基準編では、pg_basebackupやpgAdminなどPostgreSQLの標準機能に加えて、PostgreSQLに対応している主なOSS、商用ツールが整理されており、対象システムに適した機能やツールを選定する際の参考情報として活用することができます。

※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 高瀬 洋子(タカセ ヨウコ)

     株式会社アシスト データベース技術本部  アシスト入社後、Oracle Databaseのサポート業務を経て、2009年よりPostgreSQL、EDB Postgresのサービス立ち上げに参画。2017年4月にイギリスから日本へ拠点を戻し、海外イベントで得た情報などを活かしてEDB Postg...

All contents copyright © 2007-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5