ニュース

富士通研、PostgreSQLの分析処理を50倍以上高速化できる技術を開発

 株式会社富士通研究所は26日、サーバー1台でPostgreSQLの分析処理を50倍以上高速化できる列形式のデータ格納技術と、データベース処理エンジンを開発した。2015年中に実用化を目指し、富士通のデータベースであるFUJITSU Software Symfoware Serverに搭載することになる。

 これにより、メモリ搭載量が小さい中小規模システム上において、従来は不可能であった大量データのリアルタイム分析が実現でき、ビッグデータの活用が広がるものと期待される。

PostgreSQLの分析処理を50倍以上高速化する技術の概要

 もともとデータベースは、データ登録や更新といったトランザクション処理を、確実に多数処理するシステムとして進化してきた。しかし、大量のデータ分析に対する要求の高まりによって、近年では、データ登録や更新を行いながら、蓄積した大量のデータを集計したいというニーズが増えている。

 このため、大量のデータを読み出して分析する目的で、更新処理に適した「行形式」と呼ばれるデータ格納方式に加え、分析に適した「列形式」による格納方式を用いた高速化手法が取られてきた。ところがこの場合、行形式データの更新を列形式のデータに自動的に反映できないといった課題や、列形式データのサイズがメモリ搭載量の制約を受けるといった課題があった。

 今回、富士通研究所では、PostgreSQLにおいて、メモリ搭載量に制約を受けずに行形式データの更新を瞬時に列形式に反映できるデータ格納技術と、列形式データを高速に処理する実行エンジンを開発。インデックスの仕組みのなかで高速に分析し、開発者は格納方式の違いを意識することなくデータを利用できるという。

 「インメモリ対応データベースをはじめとした、大量のメモリを搭載できるシステムへの投資が行えない企業は、大量のデータを分析しようとすると、(サーバー機の)メモリ搭載量によって反映できる列形式データのサイズが限定されるという課題がある。新たな技術によって、こうした課題を解決。既存の中小規模のシステムでもリアルタイムでの分析処理が可能になる。さまざまな切り口で業務データをその場で解析して、インタラクティブな経営方針を決定することができるほか、商品の売れ行き状況や、その原因解析により、翌日の商品取引量を決定するといったビッグデータによる分析を、中堅、中小企業でも活用できるようになる」(富士通研究所 ICTシステム研究所 データプラットフォーム研究部 主管研究員の河場基行氏)。

富士通研究所 ICTシステム研究所 データプラットフォーム研究部 主管研究員の河場基行氏

 開発した技術では、メモリに入りきらない大容量の列形式データを効率的に管理するために、約26万レコードという大きな単位(エクステント)で、領域の確保や削除、空き領域回収といったデータ領域管理を行うのが特徴だ。一般的には、大きな単位で管理すると、分析処理においては長時間待たされるといった課題が発生するが、これを防ぐためにエクステントに同時実行制御(MVCC)を導入することで、分析処理とデータ領域管理を同時に行えるようにした。

 また、列形式インデックス(カラムストアインデックス)を作成することで、データベースの問い合わせ内容に応じ、行形式と列形式のいずれかの適切なデータ格納形式を選び、処理を行う。さらに、列形式インデックスを作成した元のデータの更新にも追随し、列形式データも自動的に更新されるため、格納方式の違いを意識することなく利用できるという特徴も持つ。

 一方で、列形式データ処理に適した分析処理エンジンと、独自共有メモリ機構を用いた並列処理を行うことで、列形式データの効果を十分に発揮できるようにしている点も見逃せない。

 複数データに対して、一括して同じ処理を行うベクトル処理方式を分析処理エンジンに採用することで、1並列時の性能を向上。また、並列実行による分析処理の高速化の効果を高めるために、PostgreSQLで並列動作する複数のプロセス間で、低遅延でのデータ受け渡しができるようにメモリ共有の仕組みを新たに開発。従来は、違うアドレスにマップされるため、ポインタ情報の共有にはアドレスの変換が必要であったが、同じアドレスにマップすることで、アドレスの変化を不要にし、データの受け渡しを高速化。15コアのサーバーの場合に、スケーラビリティを12~13倍向上させた。

 これらの技術により、読み出し、フィルタリング、集計を実行するDBT-3ベンチマークにおいて、1コアで4倍、15コア搭載のサーバーでは50倍以上の高速な分析が可能になったという。

 富士通研究所 ICTシステム研究所 データプラットフォーム研究部 主管研究員の原田リリアン氏は、「OLTPに適した形で構築されたサーバーでは、大量のデータ分析処理には適していないという課題があった。また、大量のデータを扱うために、夜間バッチで処理をしても、増大するデータ量を処理できないという課題も顕在化してきた。この技術を活用することで、これらの課題を解決することができ、既存の環境のままで、大量のデータを活用した分析が可能になる」とした。

富士通研究所 ICTシステム研究所 データプラットフォーム研究部 主管研究員の原田リリアン氏

 なお河場主管研究員は、「PostgreSQLは、高信頼性、堅牢性の観点からエンタープライズ分野でも採用されているオープンソースのデータベースであり、FUJITSU Software Symfoware Serverでもプラットフォームのひとつとして採用している。2014年12月には、最新版のPostgreSQL 9.4がリリースされ、そのなかでDynamic Background Workerと呼ばれる並列実行の基盤により、高速集計分析の下地が整ってきているものの、まだ高速分析を実現したという実例はない。今後は、実データや模擬データの活用、富士通研究所での実証実験を通じて、行形式データと列形式データの振り分け制御などのチューニングを行い、実用化につなげる」とした。

 さらに、「FUJITSU Software Symfoware Serverのほかにも、ほかのPostgreSQLを活用したシステムへの展開も視野に入れたい。さらに、列形式のデータ格納と、処理エンジンの基本的な考え方はほかのデータベースにも応用できると考えている。将来的にはほかのデータベースへの展開も考えたい」などとも述べている。

大河原 克行