...

データベース統合エンジン

by user

on
Category: Documents
35

views

Report

Comments

Transcript

データベース統合エンジン
アプリ
ケーション
データベース統合エンジン
DB 統合
エンジン
ローカル
クライアント
クエリ最適化
DB 統合エンジン
サーバ
スマートコミュニティでは,個別に構築された複数の
システムが管理するデータを横断的に活用する必要があ
ります。しかし,個々のシステムでは互いに異なるデータ
SQL 関数
DB 統合エンジン
複数の DB の
問合せ結果
を結合
異なるデータベースの
横断的な検索を容易に実現
アプリケーション
アプリケーション
DB
ドライバ
各 DB への検索要求を最適化し,
DB 統合エンジン内の検索結果
マージ処理を高速化
仮想 DB
ドライバを開発することで,
統合できる DB を追加可能
NoSQL 型 DB
用
ドライバ
用
ドライバ
RDBMS
SELECT
WHERE
②個々の DB への依頼に分割
DB 統合エンジン
SELECT
, FROM
WHERE
> 123
断検索が,DB 問合せ言語(SQL)の1文で簡単に実現
できるようになります。各 DB に対応するドライバが DB
間の差異を吸収することで,SQLの仕様の違いを感じさ
せない検索を実現しています。
なり,検索結果のデータ量が大きい場
DB
に
(
, ) 閉じる SQL 関数
NoSQL 型 DB
RDBMS
RDBMS
テーブル
5,360
時間を比較しました(図 3)。
家庭(HEMS)
ビル(BEMS)
交通インフラ
5,354
137.7
図1.DB 統合エンジンのモジュール構成 ̶ アプリケーションから受け付け
た SQLを解析して,各 DB への検索要求に分割します。そして,ドライバを
使って DB から結果を取得し,最終的に一つの検索結果を返します。
約 1.5 倍の高速化
120
⑶ 類似製品を使用
なるDB 上にあるテーブルを結合するも
80
60
のです。一方のテーブルには約7,000
40
20
0
⑵ 検索要求を最適化した DB 統合
実験に使用したSQL 文は,二つの異
94.29
100
RDBMS:Relational Database Management System
HEMS :Home Energy Management System
BEMS :Building Energy Management System
DB 統合エンジンを使用
エンジンを使用
160
時間(ms)
水道
⑴ 検 索要求を最 適化していない
DB
140
社会インフラクラウドシステム
性能評価
次の三つの実装方法に対して,実行
テーブル
図 2.DB への検索要求の例 ̶ DB 上で計 算できるSQL 関数や検索条件式がある場合,それを
含んだ SQL文をDB で実行します。
RDBMS
新エネルギー
, )
④DB から結果を
取得
DB
アプリケーション
に組み込んで,
データ通信時間
を抑制
します。
に
閉じる条件式
用
ドライバ
各種
データベース
合にボトルネックとなる転送時間を削減
DB
RDBMS
ライブラリ版
DB を仮想的に一つの DBとみなして透過的にアクセス
この DB 統合エンジンにより,異なるDB に対する横
用ドライバ
SELECT
,(
FROM
DB 統合エンジン間の通信時間がなく
, )
⑤DB をまたがる
条件式による
結合演算
用ドライバ
③条件式を DB への
問合せに含める
(
,
条件式
条件式
③SQL 関数を DB への
問合せに含める
ベース(DB)が使われています。そこで東芝は,異なる
できるようにする,DB 統合エンジンを開発しました。
,( , )FROM
=
AND
>
①一つの SQL文を受け
付けて,SQL を解釈
行のレコードが格納されていて,その中
検索要求を最適化していない
DB 統合エンジンを使用
検索要求を最適化した
DB 統合エンジンを使用
類似製品
を使用
図 3.検索性能の比較 ̶ 約 7,000 行のテーブルと約 2,000 行のテーブルとを結合するSQL の実行に
要する時間を比較しました。その結果,検索要求の最適化により約 57倍の高速化を達成し,類似
製品と比べ約1.5 倍の高速で検索することができました。
から約70 行を選択します。もう一方の
テーブルには約 2,000 行のレコードが
格 納されていて,約 30 行を選 択しま
す。そして,それらを結合演算して最終
⑸ 全 DBから得た結果に対してDB
を介して DB にアクセスすることで,
を対象とする場合,対象データを取得
数の DBを横断したデータの検索演算
統合エンジン上で検索演算を実施
オーバヘッドによる性能劣化が予想さ
したうえで DB 統合エンジンが検索演
を,標準的な SQLの1文で簡単に実現
この中で,個々の DBに依 存した処
れます。性能のボトルネックは,データ
算を実行します。
スマートコミュニティでは,電気,ガ
できるようにすることを目的としていま
理である⑶と⑷をドライバとして独立さ
通信量及び DB 統合エンジン上での検
この最適化処理の結果として,可能
た。今回のように,条件式をDB 上で計
ス,交通など異なる分野の制御システ
す(図1)。DB 統合エンジンの課題とし
せることで,統合可能な DBを追加でき
索演算です。今回,これらの問題を解
なかぎり個々の DB 上でデータを絞り
算させることで DBからの検索結果を
ムが保有するデータを横断的に活用し
て,統合対象の DBを容易に増やせる
るようにしました。
決するために,DB への検索要求を最
込むことにより,DBとDB 統合エンジ
絞れたことが,性能を発揮できた要因
て,インフラの統合的な管理と最適制
拡張性と高速化がありました。
適化する処理技術を開発しました。
ン間のデータ転送量や DB 統合エンジ
と考えています。
DB 統合エンジンとは,このような複
異なるDB の横断的な
アクセスへの要求と課題
御を目指しています。しかし,個々のシ
ステムは異なるDBを使 用しているた
め,それらへの横断的なアクセスが必
要になります。
異なるDBを併用する場合,それぞれ
のSQLで個別に検索結果を取得し,そ
した技術について以下に述べます。
SQLの仕様の差を吸収するドライバ
DB 統合エンジンは,次の手順でSQL
文を実行します。
れらのデータに対して,結合,並べ替え,
⑴ SQL 文を解釈
及び集計などの検索演算をアプリケー
⑵ 個々の DB への検索内容を決定
ション側で行う必要があります。つまり
開発者は,個々のDBの仕組みや実装
56
これらの課題を解決するために開発
⑶ 検索内容からDB 独自の SQL 文
を生成
方法を学習したうえで,アプリケーショ
⑷ DB 独 自 のAPI(Application
ン上でDBの内部演算と同等の演算プ
Programming Interface)で DB
ログラムを実装しなければなりません。
へ問い合わせて結果を取得
SQLは表形式のデータに対する問
合せ言 語ですが,表計算ソフトウェア
SQL 文には,検索条件式や SQL 関
や,テキストデータ,非構造データなど
数という問合せ要素が含まれます。こ
でもデータを表とみなすことができれ
の問合せ要素をできるだけ DB 上で計
ば,ドライバを通じてそれらへアクセス
算させることで,高速化を図りました
できるようになります。現在,3 種類の
リレーショナル DBと1種類の NoSQL
型 DB(注1)をサポートしています。
(図 2)。
アプリケーションプロセスへの
組込みによる高速化
DB 統合エンジンとしては,構成形態
の高速で検索できることを確認しまし
今後の展望
DB 統合エンジン上での検索演算の
性能改善や,SQL 文の最適化により,
いっそうの高 速化を検 討しています。
そのために,問 合 せ要 素 が複 数の
の異なるクライアント/サーバ型とライ
更に,分散トランザクション機能(注 2)の
DB 上のデータを対 象とするか,ただ
ブラリ型を用意しています。アプリケー
導入やドライバの拡充を行い,適用範囲
の拡大を目指します。
一つの DB 上のデータだけを対象とす
ションに組み込めるライブラリ型は,更
るかを判定します。ただ一つの DB 上の
なる高速化が期待できます。
データが対象である場合,その問合せ
ライブラリ 型 で は,クライアント/
アプリケーションは,DB 統合エンジン
要素をデータが格納されているDB へ
サーバ型で発生するアプリケーションと
東芝レビュー Vol.68 No.9(2013)
その結果,類似製品と比べて約1.5 倍
ン上での演算が減ります。
DB への検索要求最適化による
高速化
(注1) 関係モデルに基づかずに構築された
DB の総称。
的に 6 行の結果を生成します。
の問合せとして,検索演算を対象 DBで
実行します。また,複数 DB 上のデータ
データベース統合エンジン
(注 2) DB をまたがるトランザクション管 理
機能。
片山 大河
ソフトウェア技術センター
先端ソフトウェア開発担当
57
Fly UP