ビッグデータのデータ量は膨大で、ペタバイトレベルに達しています。そして、この膨大なデータには構造化データだけでなく、非構造化データも含まれています。このため、従来のリレーショナル・データベースでビッグデータの保存、管理、処理を完結させることは困難です。ビッグデータには、貴重な情報が奥深くに隠されていることが多いのです。そのため、大量の複雑なデータから短時間で価値ある情報を得るためには、ビッグデータの処理速度が非常に速くなければなりません。ビッグデータに含まれる大量の複雑なデータには、通常、実データだけでなく、偽データも混在しています。そのため、ビッグデータの処理では、偽データを排除し、実データを使用して実際の結果を分析する必要があります。
ビッグデータ分析
ビッグデータは、表面的には大量の複雑なデータであり、それ自体に高い価値はありませんが、この大量の複雑なデータを分析・処理した結果、そこから非常に価値のある情報を抽出することが可能になります。ビッグデータの分析は、ビジュアル分析、データマイニングアルゴリズム、予測分析機能、セマンティックエンジン、データ品質管理の5つに大別されます。
データマイニングアルゴリズムは、ビッグデータ分析の理論的中核であり、その本質は、複雑なデータの多数から貴重な情報を抽出することができるように、アルゴリズム、それにパラメータ変数として収集されたデータに応じて事前に定義された数式のセットです。有名な "ビールとおむつ "の話は、データマイニングアルゴリズムの古典的な例です。ウォルマートはビールとおむつの購買データを分析し、両者の間にこれまで知られていなかった関連性を発見し、この関連性を利用して自社製品の売上を伸ばしました。アマゾンのレコメンデーション・エンジンもグーグルの広告システムも、データマイニング・アルゴリズムを多用しています。
予測分析機能は、ビッグデータ分析の最も重要な応用分野です。大量の複雑なデータからパターンをマイニングし、事象の科学的モデルを構築することで、新たなデータをモデルに取り込むことで、将来の事象の経過を予測することが可能になります。予測分析機能は、株価予測や天気予報など、金融分析や科学研究の分野でよく応用されています。
意味エンジンは機械学習の成果の一つです。以前は、コンピュータがユーザーの入力を理解するのは文字の段階に限られており、入力の意味をよく理解することができなかったため、ユーザーのニーズを正確に理解できないことがよくありました。大量の複雑なデータを分析し、コンピュータに学習させることで、コンピュータにユーザー入力の意味をできるだけ正確に理解させ、ユーザーのニーズを把握し、より良いユーザー体験を提供することが可能になります。アップルのSiriとグーグルのGoogle Nowはどちらもセマンティックエンジンを使用しています。
データ品質管理は、企業分野におけるビッグデータの重要な応用です。ビッグデータの分析結果の正確性を確保するためには、ビッグデータから非現実的なデータを排除し、最も正確なデータを保持する必要があります。そのためには、収集された大量の複雑なデータを分析し、現実的で効果的なデータを選択するための効果的なデータ品質管理システムを確立する必要があります。
分散コンピューティング
一つは集中型コンピューティングで、プロセッサの数をどんどん増やして個々のコンピュータの計算能力を高め、データ処理の速度を向上させるというものです。第二の方向性は分散型コンピューティングで、つまり、ネットワークを通じて互いに接続されたコンピュータ群が分散型システムを形成し、処理すべき大量のデータを複数の部分に分散させ、分散型システム内のコンピュータ群に渡して同時に計算させ、最終的にこれらの計算結果を組み合わせて最終結果を得るというものです。分散システム内の個々のコンピュータは強力な計算能力を持っているわけではありませんが、各コンピュータが計算するのはデータの一部であり、複数のコンピュータが同時に計算するため、分散システムの場合、データ処理の速度は単一のコンピュータの場合よりもはるかに速くなります。
ibmのメインフレームは集中型コンピューティングの代表的なハードウェアで、多くの銀行や政府機関がビッグデータの処理に使用しています。しかし、当時のインターネット企業にとって、IBMのメインフレームの価格は高すぎました。その結果、インターネット企業は、安価なコンピュータで利用できる分散型コンピューティングに研究を集中させました。
サーバクラスタ
サーバークラスタリングは、サーバーの全体的な計算能力を向上させるソリューションです。これは、互いに接続されたサーバー群で構成される並列または分散システムです。サーバークラスタ内のサーバーは、同じコンピューティングタスクを実行します。したがって、外部からは、サーバーのクラスタは、統一されたサービスを提供する仮想サーバーとして動作します。
ビッグデータの技術的基礎:MapReduce、Google File System、BigTable
2003年から2004年にかけて、グーグルはMapReduce、GFS、BigTableという3つの技術論文を発表し、分散コンピューティングの新しい理論を提唱しました。
MapReduceは分散コンピューティングフレームワーク、GFSは分散ファイルシステム、BigTableはGoogle File Systemをベースにしたデータストレージシステムで、これら3つのコンポーネントがGoogleの分散コンピューティングモデルを構成しています。
Googleの分散コンピューティングモデルは、従来の分散コンピューティングモデルよりも3つの主要な利点を持っています:第一に、それは伝統的な分散コンピューティングの理論を簡素化し、技術的な実装の難しさを軽減し、実用的なアプリケーションで使用することができます。第二に、それは安価なコンピューティングデバイスに適用することができ、唯一のコンピューティングデバイスの数を増やす必要が全体のコンピューティングパワーを向上させることができ、アプリケーションのコストは非常に低いです。最後に、それはGoogleのコンピューティングセンターでGoogleによって適用され、実用化の証明と、非常に良い結果を達成しています。
その後、さまざまなインターネット企業がグーグルの分散コンピューティング・モデルを使って独自の分散コンピューティング・システムを構築するようになり、グーグルの3つの論文はビッグデータ時代の技術的中核となりました。
3つの主要な分散コンピューティングシステム:Hadoop、Spark、Storm。
GoogleはGoogleの分散コンピューティングモデルの技術的実装をオープンソース化していないため、他のインターネット企業はGoogleの3つの技術論文の関連原則に基づいて独自の分散コンピューティングシステムを構築するしかありません。
ヤフーのエンジニアであるダグ・カッティング氏とマイク・カファレラ氏は、2005年に分散コンピューティングシステムであるHadoopの開発に共同で取り組み、その後オープンソースプロジェクトとしてアパッチ財団に寄贈、ダグ・カッティング氏はアパッチ財団の会長に就任し、Hadoopの開発を主導しています。Hadoopの開発
HadoopはMapReduce分散コンピューティングフレームワークを使用し、GFSに従って開発されたHDFS分散ファイルシステム、BigTableに従って開発されたHBaseデータストレージシステム。分散コンピューティングシステムのGoogleの内部使用と同じ原則にもかかわらず、Hadoopはまだ計算速度の面でGoogleの論文の標準に達していません。
SparkもApache Foundationのオープンソースプロジェクトで、カリフォルニア大学バークレー校の研究室によって開発され、もう一つの重要な分散コンピューティングシステムです。SparkとHadoopの最大の違いは、Hadoopがハードディスクを使ってデータを保存するのに対し、Sparkはメモリを使ってデータを保存することです。ただし、メモリの電源を落とすとデータが消えてしまうため、長期保存が必要なデータの処理には使えません。
Stormは、BackTypeチームによって開発されたTwitterの主要な分散コンピューティングシステムで、Apache Foundationのインキュベーションプロジェクトです。Hadoopをベースとしたリアルタイムコンピューティング機能を提供し、ビッグデータストリームをリアルタイムで処理することができます。HadoopやSparkとは異なり、Stormはデータを収集して保存するのではなく、リアルタイムでネットワークを通じて直接データを受け入れ、リアルタイムでデータを処理し、リアルタイムでネットワークを通じて直接結果を返します。
Hadoop、Spark、Stormは現在最も重要な3つの分散コンピューティングシステムで、Hadoopはオフラインの複雑なビッグデータ処理に、Sparkはオフラインの高速なビッグデータ処理に、Stormはオンラインのリアルタイムなビッグデータ処理によく使われています。