スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.3443
ビッグデータ分析やデータウェアハウスなどにおいて、データを行単位ではなく列単位で格納し、特定の列に対する集計処理を高速に行うことができるデータベース管理システムはどれか。

【正解の解説】

カラムナDB

出席簿をイメージしてください。通常の名簿は1人分の情報(行)を横に並べますが、全校生徒の「身長」だけを計算したい場合、横向きだと全員分を探すのに時間がかかります。しかし、身長のデータだけを縦一列にまとめておけば、一瞬で取り出せますよね。このように、特定の項目だけを大量に集計するビッグデータ分析において、無駄なデータを一切読まずに処理できるため圧倒的な速さを発揮します。

スポンサーリンク

【その他の選択肢の解説】

リレーショナルDB

銀行のATMなどを想像してください。誰かの口座残高を書き換える時、その人の情報(行)だけをピンポイントで素早く処理するのが得意なのがリレーショナルDBです。ただし、全顧客の平均年齢を出すような「列全体の集計」を行うと、不要なデータまで全部読み込むことになり、カラムナDBに比べて処理が圧倒的に遅くなってしまうという致命的な弱点があります。

ドキュメントDB

中身がバラバラな書類をファイルごとに丸ごと保存するダンボール箱のようなイメージです。データ構造をあらかじめガチガチに決めなくてよいため、Webサービスのユーザープロファイルなど形が変わりやすいデータを保存するのに向いています。しかし、大量の数値データを高速に集計するビッグデータ分析の分野では、カラムナDBのような効率的な集計ができないため不向きです。

インメモリDB

机の上(メモリ)にすべての資料を広げて作業するような状態なので、データの読み書きは非常に高速です。しかし、これは「どこにデータを格納するか(行か列か)」という切り口ではなく、「どのハードウェア媒体にデータを乗せるか」という別の観点の用語です。メモリ上に載せる仕組みであれば、行指向でも列指向でもインメモリDBになり得るため、今回の「列単位で格納する」という条件への直接の答えにはなりません。