インメモリー?列指向?そもそもデータベースって何?

インメモリー?列指向?そもそもデータベースって何?

ビッグデータなどが話題になる今日この頃、度々聞こえてくる「インメモリーデータベース」と「列指向データベース」というキーワード。気になるけど、データベース自体もわかるようでよくわからない。そこで、今回はデータベースの概要と歴史を知り、トレンドキーワード理解の第一歩にしていきましょう!

1.データベースとは

一般的にデータベースとは、膨大なデータを決められた形式で管理しておき、後で再利用できるようにしているデータの集合です。堅苦しい表現で書いてしまうとこうなりますが、要するにデータの塊です。ちなみに、ITの世界では、単にコンピュータに使うデータベースを指すこともあれば、もしくは、そのデータベースを運用するためのデータベース管理システム(DBMS:DataBase Management System)というものを指していることもあります。

少し脱線しましたが、DBMSを含めたデータベースの役割とは、データを体系立てて保管することを可能にするもので、検索・抽出・加工などの色々な処理を効率的に行えるようにして大量のデータの有効活用を実現するものです。現代、大規模なデータの分析をすることにより価値ある情報を導き出すビッグデータの需要が高まる中、あらゆる企業が活用していく情報システムには、優れたデータベースが今も変わらず求められ続けてきています。

本題に移る前に、データベースの歴史を少しだけ紐解いていきましょう。

データベースは1960年代から1990年代にかけて誕生から発展を続けていき、リレーショナルデーベース(RDB: Relational Database) や ナビゲーショナルデータベース(NDB: Navigational Database) など様々な種類がありますが、リレーショナルデータベースが最も普及する結果となりました。それ以降はRDBの機能を拡張する形で技術革新は続いています。

例えば、多くの側面(多次元)での分析を可能にするためのデータウェアハウス(DWH:Data WareHouse)という技術もよく耳にしますが、それもRDBの普及に伴って1990年代から広まってきた技術の一つとなります。そして、2000年代からは、データベース市場の競争はますます激化して、企業買収による各社の種々雑多なデータベース技術の統合の動きが進み、そんな状況の中でいくつかの目新しい技術が話題になっています。

特に、2000年代の中盤から台頭してきたのが “インメモリーデータベース” と “列指向データベース” です。どちらも処理速度とデータ圧縮を向上させる技術であり、オンライン分析処理(OLAP:Online AnaLytical Processing)というのに適しています。

OLAPとは、複雑化したデータを分析・加工を行ってくれる処理方法です。例えば、ユーザーが端末を操作すると、システムが複雑で膨大化したデータを分析して、見やすいように加工した情報を画面に表示してくれる技術です。これによって企業の長年蓄積されたビジネスデータから多種多様なレポートをユーザーが簡単に見ることができます。売上等の金額を地域別、事業部別、製品別といった様々な切り口(多次元)で分析できるようになるので、より良い経営判断ができるようになります。OLAPという言葉は、データを多次元からデータを分析するときによく使用されています。

そして2010年代、ビッグデータなどの盛り上がりを背景に、何十年もかけて企業がデータベースにためこんできた大規模なデータを分析処理する必要性が出てきています。しかし、膨大な量のデータに対して既存のRDBでは処理しきれなくなった部分が出てきたため、より早く・より効率良くデータの処理をするために新しいデータベースが探究されてきました。

そこで脚光を浴びたのが “インメモリーデータベース” と “列指向型データベース” なのです。それでは、この二つの技術をみていきましょう。

2.インメモリーデータベース

2000年の後半から注目を浴びているのがインメモリーデータベース(IMDB:In-Memory DataBase)です。主に通信分野で活用されている技術となります。スマートフォンの普及による処理データの増大や金融機関のオンライン取引化など、ネットワーク上の大量のデータのやりとりが拡大しつづけていき、大量データになるにつれて処理時間も増加していきました。

しかしながら、ユーザーは常にリアルタイムな応答を要求するもので、応答時の処理速度が遅くなるにつれて不満の声が続々とあがっていきました。処理速度の遅さの主な原因として、データベースへのアクセスが挙げられます。データベースの中身である記憶媒体のハードディスク(HDD:Hard Disk Drive)は、安価で大容量な一方、処理速度が遅いという欠点がありました。他の部分を改善してもHDDの読み込み時間の遅さがボトルネックになり、根本的な処理速度を上げることができませんでした。これを解決するためのソリューションの一つがインメモリーデータベースです。

インメモリデータベースはデータベースの中身に、HDDの代わりにメモリという記憶媒体を使用することによって、処理速度を高める技術です。メモリは、HDDに比べて、高価で低容量だが、とても速いという特徴があります。その速度差は、およそ1000~10万倍になりますので、もしHDDをメモリに完全に置き換えることができればまさに革命的なスピードが実現できます。

実は1980年代には、すでにインメモリーデータベースの論文が発表されており、理論自体は登場していました。しかしながら、当時のメモリの値段はかなり高く、結局、小規模のデータしか処理できなかったために用途が限定されていました。2000年の後半になると、当時に比べれば値段が下がり、大容量のメモリを現実的な値段で実現できるようになったことにより、インメモリーデータベースの製品化と普及が加速しました。また、近年話題のビッグデータなどのデータ解析の分野でも、同様のメリットが得られるため、時代のニーズも後押しとなり、インメモリーデータベースという技術が注目されるようになりました。

また、インメモリーデータベースを話題にする上で必ず出てくるのがメモリの揮発性の問題です。揮発性とは、電源を落とすと保存したデータが消える性質のことです。そのため、メモリをデータベースに使うためには、消えてしまうデータについてバックアップを取らなければならないという技術的な課題が付きまといます。これに対する解決方法は製品ごとに様々に分かれていますが、例えば、データベースの中にメモリだけでなくHDDなどの記憶媒体も組み合わせて、残しておきたいデータをその中にバックアップしておく方式が一般的です。

通信分野に限らずにあらゆる分野で大規模のデータ通信やデータ解析が求められる現代の中で処理速度を1千~10万倍に向上させる可能性を持つインメモリーデータベースは、今後も製品への実装が進んでいくことが見込まれています。

3.列指向データベース

インメモリーデータベースと同じように処理速度を高める技術が、列指向データベース(CODB:Column Oriented DataBase)です。別名として、カラム型データベース、カラムナデータベースなどの呼び方もありますが全て同じものです。この技術は、データベースを検索し、大量の項目のデータを集計する際にその真価を発揮します。

多くのデータベースでは、データを縦と横の2次元で管理していることが多く、一般的に、これを行列と呼び、縦を“列(カラム)“、横を”行(ロー)“と呼びます。シンプルに言えば、行単位で処理するのが行指向、列単位で処理するのが列指向となります。

上記の図をみてください。

大量の項目が列ごとに並んでおり、中身のデータが行ごとに並んでいます。行指向の場合は、名前の項目のデータだけを見たい場合でも、行のデータを全て読み込む必要があります。

一方、列指向では、名前の列のデータだけを抜き出してみることができるため、素早くデータをみることが可能になります。これによって、大量の項目を集計してみるときには、列指向の方が処理速度は速いことになります。

ただし、更新や削除といった処理は、列指向は向かず、行指向の方が良いという点も考慮すべきです。列指向の場合は、一人の従業員のデータを更新するために、全ての列を読み込む必要がでてしまうので処理が遅くなってしまいます。したがって、分析などのように多数の項目を見るだけのときは、列指向が良く、更新や削除のときは行指向が良いという特徴があります。


圧縮度も列指向のメリットの一つです。上記の図のように、行ごとにデータをみると重複する箇所はあまりありませんが、列ごとにデータをみると重複する箇所は多くみられます。そして、列指向では、重複する部分に関してデータを圧縮してまとめておくことができ、高い圧縮率がもう一つの長所です。大規模なデータを扱う上で効率の良い圧縮も重要になってくるので、これも重要なメリットとなります。

4.まとめ

データベースの技術は、普段の生活ではあまり意識していませんが、身の回りの情報は必ずデータベースに保存されており、情報社会を支える根幹の技術です。これまでの約50年の中で大きく成長してきましたが、今後もますます成長していくのは間違いありません。実際に、前述した揮発性メモリの問題に対して、磁気抵抗メモリなどの不揮発性メモリと呼ばれる技術がすでに対応案として存在しています。情報社会でこれからも進化を続けるデータベースについてこの機会に一度学んでみてはいかがでしょうか。

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。