検索
Special

オラクルがIn-Memory DatabaseとBig Data SQLで示す「データベースの未来」Oracle DBaaS & Big Data Summit基調講演レポート(3/4 ページ)

日本オラクルは2014年7月、データベースクラウドとビッグデータをテーマにしたイベント「Oracle DBaaS & Big Data Summit」を都内で開催した。これまでにない新たなデータ活用を可能にする新製品「Oracle Database In-Memory」などの国内リリースを記念して開催された同イベントの基調講演の内容をダイジェストで紹介する。[プライベートクラウド/データベース統合][ビッグデータ][Oracle Database 12c][Big Data][Engineered System]

PC用表示
Share
Tweet
LINE
Hatena
PR

Oracle Big Data SQLにより、RDBMSとNoSQL、Hadoopが1つのクエリ言語で操作可能に

 シェトラー氏は続いて、米国で7月にリリースされたOracle Big Data SQLを紹介した。これはOracle Databaseで使われているOracle SQLの適用範囲を、従来のRDBMSだけでなくNoSQLデータベースやHadoopにまで広げる新製品だ。

 企業のRDBMSに格納される機密情報が増加する一方で、Webサービスの提供で使用する顧客のプロファイル情報などはNoSQLデータベースに、大規模なJSONデータなどはHadoopに保管するといったケースが増えてきている。Oracle Big Data SQLを使えば、こうしたさまざまなデータソースの操作を、1つのクエリ言語(Oracle SQL)によって行えるのだという。

 「Oracle Big Data SQLにより、多様なデータソースを使ったデータ分析などがOracle SQLによって高速に行えるようになります。しかも、Oracle Databaseで使われている洗練されたセキュリティ機構などが、NoSQLデータベースやHadoopでも利用可能となります。ビッグデータ時代のデータ活用では、各データソースを分断されたサイロのままにしておくのではなく、統一された方法で迅速に扱えるようにする必要があります。それを実現するのがOracle Big Data SQLなのです」(シェトラー氏)

大量データの超高速な処理を実現するOracle Database In-Memory

 シェトラー氏は、今回のイベントの目玉の1つであるOracle Database In-Memoryにも言及した。氏によれば、同製品の開発には「3つのゴール」があったという。それらのゴールとは、「リアルタイム分析の高速化」「OLTPの高速化」「既存アプリケーションとの完全な互換性」だ。このうち、「リアルタイム分析の高速化」と「OLTPの高速化」を両立するために、これまでとは異なるアーキテクチャを開発する必要があった。

 従来のデータベースでは、処理方式として行単位でのデータ処理に適した「ローフォーマット」と、列単位での処理に適した「カラムフォーマット」のいずれかを選択する必要があった。ローフォーマットは受注オーダーの挿入や検索といったOLTP処理を高速に行うことができ、カラムフォーマットは地域ごとの売上合計レポートのような分析系の処理を得意とする。データベース構築時には、どちらのフォーマットを使うのかを事前に決めた上で適したデータベース製品を選び、想定外の使い方をする場合には大幅なパフォーマンス低下を覚悟しなければならない。同じデータを両方のフォーマットで使う場合は、それぞれのフォーマットのデータを別々に持ち、管理するという煩わしさもあった。

 これらの問題を解消するために、Oracle Database In-Memoryでは「デュアルフォーマットデータベース」と呼ばれる新方式を採用している。この方式では、表をローとカラムの両方のフォーマットでメモリ内に保持する。それぞれのフォーマット間の一貫性は保証されており、分析系の処理にはカラムフォーマットを、OLTP系の処理にはローフォーマットをといった具合に、各業務処理に最適な方式を使い分けることができる。この仕組みにより、Oracle Database In-Memoryはどちらの用途においても、極めて高速なデータ処理を可能にしている。もちろん、アプリケーションの側からは、どちらのフォーマットにアクセスするのかを意識する必要はない。


 シェトラー氏は、Oracle Database In-Memoryで特に高速化されるのは、分析系の処理で使われるカラムフォーマットに対するデータスキャンだと説明する。その理由は、Oracle Database In-Memoryでは、CPU内に実装されている複数のコアが同時並行で複数のカラムデータをスキャンするためだ。主に科学技術計算向けに設計され、CPUに実装されたSIMDベクトルインストラクションを使うことで、1CPUコア当たり毎秒数十億行のスキャン処理が可能だという。

 また、従来のデータベースでは、分析計処理を高速化するために多用されるインデックスが、OLTP処理の遅延要因となっていた。Oracle Database In-Memoryでは、実データへの超高速なアクセスが可能なためインデックスが不要となり、分析系処理とOLTP系処理が混在した複合ワークロードにおいても、それぞれの処理で極めて高い性能が得られるのである。

 なお、複数のサーバーを使ったスケールアウトやメモリ増強によるスケールアップといった拡張性、および可用性や耐障害性を確保するためにOracle Databaseで使われていた技術は、Oracle Database In-Memoryでもそのまま利用することが可能だ。

 このように主な特徴を説明すると、シェトラー氏は最後にOracle Database In-Memoryのデモンストレーションを披露した。このデモは、Wikipediaの検索ワードのトレンドをアドホッククエリで集計するというものだ。その実行基盤として使用するのは、Oracle ExadataとOracle SuperCluster M6-32である。

 Oracle Database In-MemoryをOracle Exadata上で稼働させるデモでは、過去1カ月分の検索ワードデータに当たる約338億のローデータを1秒以内にスキャンし、さらに6年分に当たる1兆ローのデータも、わずか数秒でDRAMとストレージに保存して検索可能な状態を作った。また、Oracle Database In-MemoryをOracle SuperCluster M6-32で稼働させるデモでは、同じく1兆のローデータを全てメモリ上に展開し、瞬時に検索と集計処理を行って見せた。シェトラー氏自身が「あまりにも速すぎて、これがライブで行っているデモだとは信じられないかもしれませんが……」と心配するほどの圧倒的な性能である。


提供:日本オラクル株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2014年9月17日

Copyright © ITmedia, Inc. All Rights Reserved.

関連情報

驚異的なパフォーマンス、優れた運用効率、最高の可用性とセキュリティ、クラウド対応を実現するOracle Exadataとの統合、クラウド、可用性や運用管理など、次世代データベース基盤構築のために参考になる必見資料をまとめてご紹介いたします。

ページトップに戻る