よくある質問・用語集

サーバー構築のデージーネットTOP > よくある質問・用語集 > 用語集 > ビッグデータとは

  • もっと調べる
  • どうやって使う?

ビッグデータとは

ビッグデータとは、巨大で複雑なデータを指す。データの種類は何でも構わない。

例えば、NTT東日本がSuicaのシステムから得られる膨大なデータを解析して、乗降客の行動分析をしていたり、各自動車メーカーがカーナビを通じて道路の交通状況などのデータを収集している。

コンピュータやインターネットが当たり前に普及した現代社会においては、現実社会の様々なデータを集め解析することで、何らかの傾向や相関を解析し、知ることができる。そうしたデータは企業戦略や国家戦略を考える上で非常に重要だと考えられていて、注目を集めている分野である。

しかし、こうした情報は膨大であるがために、収集、解析、可視化をすることが非常に難しい。ビッグデータには、従来の表計算ソフトやリレーショナルデータベースなどの技術を適用することはできない。非常にデータ量が多いからである。そのため、ビッグデータの処理のために、多くの専用ソフトウェアが作られている。ビッグデータ関連のソフトウェアとしては、データの収集、解析、可視化などの分野毎に多くのオープンソースソフトウェアが公開されている。この分野は、製品よりもオープンソースソフトウェアの技術が先行している数少ない分野である。

ビッグデータの収集と解析

ビッグデータの収集にあたっては、大量のデータを高速に保管することが求められる。また、それをリアルタイムに処理し、後で解析しやすい形に加工して保管する必要がある。さらに、データの保全も必要なため、冗長性なども求められる。従来のような巨大ストレージにデータを保管する方法もあるが、より安価で高速にデータを管理するため、データを複数のコンピュータやストレージに分散配置する技術が使われる。柔軟にストレージの容量を増せる必要もある。そのため、SDS(Software Defined Storage)やオブジェクトストレージなどが使われる場合も多い。

ビッグデータの解析には大量のコンピュータリソースが必要となる。そのため、複数のコンピュータで解析を行なう分散コンピューティングの技術が使われる。ビッグデータでは、あらかじめ解析手法が決まっているわけではなく、様々な解析を行なって意味のあるデータを探すような活動が必要な場合もある。そのため、データを柔軟に解析し可視化するソフトウェアも必要となる。さらに、機械学習を活用して解析することも研究されている。

なお、どの程度のデータをビッグデータと呼ぶのかは決まりがない。そのため、従来のリレーショナルデータベースでも十分に解析できる比較的少量のデータでもビッグデータの事例として紹介している場合がある。ソフトウェアを選定する場合には、十分に気をつける必要がある。

ビッグデータ関連のソフトウェア

ビッグデータ関連のソフトウェアとしては、いくつものOSSが公開されている。

fluentd

オープンソースのログデータ収集管理ツールである。様々なログを、JSON形式に変換して管理するために開発された。様々なプラグインが用意されていて、データの入力元、加工方法、出力先を柔軟に切り替えることができる。データ入力、変換、転送、合成、出力という順で処理を行なう。 ログベースでデータを集め解析するようなビッグデータのシステムで利用されることが多い。

logstash

ElasticSearchを管理しているElastic社が開発したオープンソースソフトウェアである。fluentdと同様に、様々なデータソースから取得したデータを、フィルタリングや加工を行なって出力する汎用的な変換ソフトウェアである。ビッグデータのデータ取得後から保管までの前処理を行なうツールとして活用される。ElasticSearchなどと連携して使われることが多い。

ElasticSearch

ElasticSearchを管理しているElastic社が開発したオープンソースソフトウェアで、Javaで作成されたマルチテナント対応の分散型検索エンジンである。全文検索エンジンとしても利用することができる。データを複数のコンピュータに分散して配置することができ、冗長性も確保しながら高速検索を行なうことができる。

Kibana

ElasticSearchと組み合わせて利用するデータの可視化ソフトウェアである。データ選択を柔軟に選択できる他、様々な表示形式をサポートしている。

Apache Solr

オープンソースの全文検索ソフトウェアである。検索エンジンとしては、Elastic Searchなどと同じApache Luceneを採用している。商用の検索エンジンと比べても十分な機能があると言われている。以前は、日本語の全文検索には課題があるといわれていたが、最近になってかなり改善が見られる。Apache Solrと連動して動作するソフトウェアもいくつか開発されている。例えば、IMAPサーバとして知られているDovecotはApache Solrと連携して全文検索の機能を組み込むことができるようになっている。

MongoDB

MongoDBは、巨大なデータを扱うために作られたNoSQL型のデータベースである。NoSQL型のデータベースとしては、もっともシェアが高いオープンソースソフトウェアで、RHEL、CentOS、debian、Ubuntuなど、様々なLinuxディストリビューションに採用されている。 リレーショナルデータベースではなく、構造型データを集合として管理する。リレーショナルデータベースのように決まった形式でデータを管理しないため、非常に柔軟にデータを扱うことができる。データの追加、更新、削除、検索も高速に行なうことができる。複数のサーバを使って巨大で高速なデータベースを管理することができ、データの冗長性も確保することができる。

rabbitmq

rabbitmqは、オープンソースのメッセージングシステムである。ビッグデータを解析するためには、様々な処理が必要になる。そのため、複数の処理が複雑に絡み合う構造になりがちである。このような複雑性を回避するために、各処理のインタフェースを取り決め、処理間の連携をスムーズにするためにメッセージングシステムを利用する。rabbitmqは、このメッセージングシステムの代表的なソフトウェアである。

Apache Hadoop

ビッグデータを効率的に分散処理するためのフレームワークで、The Apacheプロジェクトから、オープンソースソフトウェアとして公開されている。安価な汎用サーバを使って、高速に処理を行なうためのプラットフォームである。
Hadoopは、分散環境でのプロセス起動、監視、プロセス間通信、データ処理などを行う。利用者は、MapperとReducerの2つのスクリプトを作成するだけで、簡単に分散処理を実装できる。システムの拡張性、冗長性も確保することができる。ただし、Hadoopは分散処理のオーバーヘッドが大きく、リアルタイム処理には向いていない。

Apache Spark

Hadoopと同じ、ビッグデータを解析するための分散処理フレームワークで、The Apacheプロジェクトからオープンソースソフトウェアとして公開されている。ポストHadoopとも呼ばれている。独自のキャッシュ機構を採用していて、同じようなデータを繰り返し扱う場合にはHadoopよりも高速に動作すると言われている。また、Hadoopが苦手なリアルタイム処理に必要な処理もフレームワークに準備されている。

デージーネットの取り組み

デージーネットでは、インターネットサービスプロバイダの環境でビッグデータを扱うことが多い。例えば、様々なサーバ、機器、サービスから出力されるログを集中管理し解析を行なうシステムを構築している。このシステムでは、ElasticSearchを利用して、高速な検索処理を実現している。その一部が、オープンソースソフトウェアのSylasとして公開されている。 また、インターネットサービスプロバイダでは、加入者にルータなどの機器を貸し出す場合も多い。利用者からの問い合わせに対して迅速に対応するため、これらの機器を集中管理する必要がある。そのため、数万の機器から定期的に情報を収集し、蓄積し、可視化するシステムを構築している。
一般のインターネットサービスでは、様々なサイトのアクセス情報を収集し、利用者の傾向を解析するシステムのプラットフォームを構築した実績もある。このシステムでは、rabbitmq、MongoDB、ElasticSearchなど、複数のビッグデータ向けアプリケーションを組み合わせて高速処理と冗長性を確保した。

【カテゴリ】:ビッグデータ  

  • もっと調べる
  • どうやって使う?

関連用語

ビッグデータに関連するページ(事例など)


デージーネット用語集のページです。「ビッグデータ」という用語と関連情報について説明します。「ビッグデータ」について情報を収集する際、サービスをご検討いただく際などに用語集ページをお役立てください。

ビッグデータとは先頭へ