Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)テクノロジーでビジネスを加速するための実践Webメディア

テーマ別に探す

OracleDBを超高速化!図解でわかるOracle Database In-Memoryの仕組み

2014/09/03 00:00

 2014年7月22日、インメモリ技術によってOracle Databaseを高速化するOracle Database In-Memoryがリリースされました。本連載では、OLTPとDWHの処理を同時に高速化し、「業務を変える」とまで言われているその仕組みや性能に迫ります。

役者が揃ったインメモリ・データベース市場

 Oracle Open World 2013でその存在が明らかになってからおよそ1年、ついにOracle Database In-Memoryの提供が開始されました。先日開催された国内向けのローンチ・イベントとなるOracle DBaaS & Big Data Summitでは、セミナー会場が満席となり立ち見が出るなど、本製品には非常に多くの期待が寄せられています。

 インメモリ・データベースについてはこれまで多くの製品がリリースされており、1990年代にTimesTen社やSolid Information Technology 社などが先駆者となり歴史を作ってきました。最近ではSAP社のHANAやIBM社のDB2 BLU Acceleration、Microsoft社のSQL Serverなどインメモリの技術が次々と投入され、データベースにおけるトレンドになりつつあります。

 ITR社のユーザ調査では、「インメモリ・データベースをすでに導入している」と回答した割合が23.0%、「今後1年以内に導入を予定している」が19.0%、「導入に向けて具体的な取り組みを始めている」が12.0%となっており、その注目度は数字にもはっきりと現れています。

▼図1:インメモリ・データベースの導入状況
図1:インメモリ・データベースの導入状況

 Oracle Database In-Memoryも広い意味ではインメモリ・データベースに分類される製品ですが、これまでのインメモリ・データベースとの大きな違いは、「アプリケーションやSQLの変更なしに、OLTPとDWH処理の両方を高速化できる」という点です。インメモリ用に別のソフトウェアやハードウェアを導入したり、固有のプログラムを書く必要はありません。Oracle Database用に作成された既存のアプリケーションやデータといった資産をそのまま使うことができるのが、最大の強みであり差別化のポイントです。セットアップも非常に簡単で、Oracle Databaseが導入されている環境で機能をオンにするだけです。

▼図2:Oracle Database In-Memoryの特徴 
図2:Oracle Database In-Memoryの特徴 (image02.png)

行と列のデュアル・フォーマット

 現在稼働している多くのデータベース・システムでは、用途に応じて「OLTP用」と「DWH用」のデータベース(DBMS)をそれぞれ使い分けています。DBMSにはロー(行)型、カラム(列)型という2つの代表的なフォーマットがあり、それぞれ向き不向きが存在するためです。

 例えば、Oracle Databaseが採用しているロー型のフォーマットの場合、少数の行に対して多くの列を扱うようなOLTPとしての用途には向いていますが、大量の行に対して少数の列を扱うDWH処理には向いていません(※)。カラム型のフォーマットはその逆で、DWH処理には向いているものの、OLTPには向いていないという特性があります。(※)適切な索引を作成したり、圧縮やパラレル処理を行うことで性能向上を図ることはできます。

 そのため、以下のようにOLTP用のデータベース(基幹系システム)で追加/更新されたデータをDWH用のデータベース(情報系システム)にロードし、それから分析をするという構成にならざるを得ず、このタイム・ラグがリアルタイムな情報活用を困難にしていました。

▼図3:ロー型とカラム型の使い分け 
図3:ロー型とカラム型の使い分け (image03.png)

 Oracle Database In-Memoryでは、メモリ上にロー型とカラム型のフォーマットを同時に保持するという仕組みを採用しており、OLTPとDWH処理の両方を高速化できるようになっています。OLTPでは従来どおりデータベース・バッファ・キャッシュを使い、DWH処理では新しく実装された「インメモリ・カラムストア」というメモリ領域を使います。

 インメモリ・カラムストア内のデータはカラム型のフォーマットになっており、DWH処理をディスクI/Oなしで実行できます。Oracle Databaseの中に、DWH処理に特化した機構が実装されたと考えれば分かりやすいでしょう。これにより、ロー型と比べて数十倍~数百倍の性能向上が期待できます。

 情報系システムにデータをロードしてから分析するというこれまでの常識を変え、OLTPもDWH処理もすべて同じデータベース上で高速に処理できるのが、Oracle Database In-Memoryなのです。

▼図4:Oracle Database In-Memoryのデュアル・フォーマット 
図4:Oracle Database In-Memoryのデュアル・フォーマット (image04.png)

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


著者プロフィール

  • 関 俊洋(セキ トシヒロ)

    株式会社アシスト データベース技術本部 データベース・エバンジェリスト データベース・システムの構築や運用トラブルの解決といったフィールド・サポート業務を経験し、その後は新製品の検証やソリューションの立ち上げに従事。現在はデータベースの価値や魅力を伝えるための執筆や講演活動を行っている。

バックナンバー

連載:既存の概念を覆す!Oracle Database In-Memoryのテクノロジー

この記事もオススメ

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