Skip to main content

Fujitsu

English | 日本語

China

本技术介绍参考了以下链接
English

2015年12月11日

实现实时大规模数据分析的列形式数据处理引擎技术
在1台服务器上实现开源数据库系统PostgreSQL的分析处理性能提高50倍以上

株式会社富士通研究所(注1)(以下简称,富士通研究所)在数据库系统上开发出了可以进行快速,大容量数据分析的列形式数据处理引擎。

开发背景

数据库系统的联机事务处理系统(OLTP)是一种可高效地将处理结果即时反馈给终端的系统。该系统被广泛地用于数据的更新处理,如业务系统的数据存储和利用。

课题

最近几年,对大容量数据进行快速和随需应变分析的需求日益增加,需要在一个数据库系统上可以同时处理OLTP和大量的数据分析。与OLTP适合行处理相反,面向列的数据处理更适合数据分析,但使用这种方法在数据处理时存在数据更新处理慢的不足。为解决这个问题,最近,除了以行形式外增加了以列形式存储,达到数据分析处理高速化的目的。但以往的技术中,行形式数据发生改变并不能自动反映到列形式数据上,并且以往技术存在受内存制约的问题。

开发的技术

富士通研究所开发了一个引擎,在开源数据库PostgreSQL上,实现了可以即时反映行形式的数据更新,无需依赖于内存容量的列形式数据存储,以及列形式存储的数据的高速处理。可以与具有索引(注2)的普通数据库系统一样进行高速分析,并且可以不用特别考虑的数据是行存储还是列存储为主。使用与列形式数据处理相应的并列分析处理引擎,对读取,过滤与聚合操作的DBT-3 Benchmark(注3),与以往的处理引擎进行性能比较,单CPU是4倍,1台15个CPU的服务器是50倍以上处理速度。

该技术的主要特点如下:

1. 大容量列形式的数据存储

为了有效地管理不适合存到内存中的大容量列形式的数据,进行以 “extents”为单位(约26万条记录)的数据域管理,其中包括数据域的确保与删除,以及空域的回收管理。尽管管理这么大的单位,同时分析处理会导致漫长的等待时间,富士通研究所采取了多版本并发控制的解决方案(MVCC)(注4) ,使得可以同时运行分析处理和数据域管理。


2. 面向列的索引(列存储索引)

像其它索引一样,创建了列的索引(列存储索引),根据数据库访问内容不同,可以选择一个合适的数据存储方法(行形式或列形式)。当创建了列存储索引的数据所对应的行形式数据发生更新时,列形式的数据自动更新,这使用户感觉不到数据存储方式的不同。


3.适用于列形式数据处理的分析处理引擎和具有独特共享内存结构的并行处理

仅以提高读取的性能而使用列形式的数据,并不能充分发挥列形式数据的好处。富士通研究所在分析处理引擎中,采用了多数据一次应用相同的处理(矢量处理)的方式 ,提高了并行处理性能。另外,为了提高并行处理的速度,还开发了一种新的共享内存结构。该结构在PostgreSQL中并行运行的多个进程间进行低延迟数据交换。由此,在1台15个CPU服务器上,比以往的PostgreSQL,它可以实现最少50倍的性能提升。


本技术的架构

图1 本技术的架构


效果

本技术使现有的内存有限的小型系统,实现了以前不可能实现的实时分析和大数据处理。


今后

富士通研究所目标是作为富士通数据库产品(FUJITSU Software Symfoware Server)的一部分,在2015年度实现商业化。

注释

注1 株式会社富士通研究所:
社长 佐相秀幸
总公司所在地 日本神奈川县川崎市
注2 索引:
帮助更快速地搜索数据库的信息。
注3 DBT-3 Benchmark:
一个测量决策支持系统性能的基准。
注4  MVCC:
MultiVersion Concurrency Control(多版本并发控制),一种当有多个用户同时发起请求时确保处理一致性的技术,被用在很多数据库系统中。