質問

多くの人がこの用語を使用します ビッグデータ むしろ コマーシャル これは、大規模なデータセットが計算に関与しているため、潜在的なソリューションには優れたパフォーマンスが必要であることを示す手段として使用されます。もちろん、 ビッグデータ スケーラビリティや効率などの関連用語が常に伴いますが、問題を正確に定義するものは何ですか? ビッグデータ 問題?

計算はデータマイニング/情報検索などの特定の目的に関連する必要がありますか、それとも一般的なグラフ問題のアルゴリズムにラベルを付けることができますか? ビッグデータ データセットが 十分な大きさ?また、どのようにして 大きい十分な大きさ (これが定義可能であれば)?

役に立ちましたか?

解決

私 (リレーショナル データベースのバックグラウンドを持つ人間) にとって、「ビッグ データ」とは主にデータ サイズのことではありません (これは、これまでの他の回答の大部分を占めています)。

「ビッグデータ」と「バッドデータ」は密​​接な関係にあります。リレーショナル データベースには「元のデータ」が必要です。データがデータベース内にある場合、そのデータは正確でクリーンで、100% 信頼できます。リレーショナル データベースには「優れたデータ」が必要であり、データをデータベースにロードする前にデータが適切に準備されていることを確認するために、膨大な時間、資金、そして説明責任がかかります。データがデータベース内にある場合、それは「福音」であり、現実のシステム理解を定義します。

「ビッグデータ」は、この問題に別の方向から取り組みます。データの定義が不十分で、その多くが不正確である可能性があり、実際にはその多くが欠落している可能性があります。データの構造とレイアウトは、リレーショナルではなく線形です。

ビッグ データには、不良データまたは欠落データの量が統計的に重要ではなくなるように、十分な量が必要です。データ内のエラーが互いに打ち消し合うほど共通している場合、欠落しているデータが無視できるほど十分小さい場合、および不完全で不正確なデータであってもデータ アクセス要件とアルゴリズムが機能する場合、「ビッグ データ」が存在します。 。

「ビッグデータ」とは実際には量ではなく、データの特性を意味します。

他のヒント

あなたが正しく指摘しているように、最近の「ビッグデータ」は、誰もが自分が持っていると言いたいものであり、人々がこの用語をどのように定義するかに特定のゆるみを伴います。ただし、一般的に、スケールがRDBMSなどのより伝統的なテクノロジーで管理することができなくなった場合、少なくともHadoopなどのビッグデータテクノロジーでそれらを補完することなく、ビッグデータを扱っていると思います。

あなたのデータが実際にどれほど大きくなければならないかは、そのためには議論の余地があります。これが(やや挑発的な)です ブログ投稿 それは、5 TB未満のデータに対して実際には当てはまらないと主張しています。 (明確にするために、「5 TB未満はビッグデータではない」と主張しているわけではありませんが、「5 TB未満はHadoopを必要とするほど大きくはありません」と主張しています。)

しかし、小さいデータセットでさえ、Hadoopのようなビッグデータテクノロジーは、バッチ操作に適している、非構造化データ(構造が事前に知られていない、または変更される可能性があるデータ)、水平方向のスケーラビリティ(既存のサーバーを強化する代わりにノードを追加することでスケーリングします)、および(上記のリンクされた投稿ノートのコメンターの1つとして)データ処理を外部データセットと統合する機能(マッパーがどこでマップが表示されるかを考えてください別のサーバーに電話をかけます)。 NOSQLデータベースなどのビッグデータに関連する他のテクノロジーは、大規模なデータセットを処理しながら、速いパフォーマンスと一貫した可用性を強調し、半自由度のデータを処理し、水平方向に拡大することもできます。

もちろん、従来のRDBMには、酸の保証(原子性、一貫性、分離、耐久性)、および特定の操作のパフォーマンスの向上など、独自の利点があり、より標準化され、より成熟し、(多くのユーザーのために)より馴染みがあります。したがって、間違いなく「大きな」データであっても、データの少なくとも一部を従来のSQLデータベースにロードし、ビッグデータテクノロジーと併せて使用することは理にかなっているかもしれません。

したがって、より寛大な定義は、ビッグデータテクノロジーがあなたにいくつかの付加価値を提供するほど大きい限り、ビッグデータを持っていることです。しかし、あなたが見ることができるように、それはあなたのデータのサイズだけでなく、それをどのように操作するか、そして柔軟性、一貫性、パフォーマンスの観点からどのような要件を持っているかに依存する可能性があります。 どのように あなたはあなたのデータを使用していることはあなたがそれを使用しているものよりも質問に関連しています にとって (たとえば、データマイニング)。とはいえ、データマイニングや機械学習などの使用は、操作するのに十分な十分なデータセットがある場合、有用な結果をもたらす可能性が高くなります。

世界のデータの総量:2012年の2.8ゼタバイト、2015年までに8ゼタバイトに達すると推定されています(ソース)そして、40か月の倍増時間。それよりも大きくなることはできません:)

単一の大規模な組織の例として、Facebookは1日あたり500テラバイトを100ペタバイトの倉庫に引き込み、2012年の時点で1日あたり70Kクエリを実行します(ソース)現在の倉庫は300を超えるペタバイトです。

ビッグデータは、おそらくFacebookの数字のかなりの部分であるものです(おそらく1/100はい、おそらく1/10000ではありません:それは単一の数字ではなくスペクトルです)。

サイズに加えて、それを「大きく」する機能のいくつかは次のとおりです。

  • 保存されただけでなく、積極的に分析されています(「ビッグデータを利用していない場合、ビッグデータがない場合、データの山があります」Jay Parikh @ Facebookだけです)

  • データウェアハウスの構築と実行は、主要なインフラストラクチャプロジェクトです

  • かなりの速度で成長しています

  • 構造化されていないか、不規則な構造があります

Gartnerの定義:「ビッグデータは、新しい形式の処理を必要とする大量、高速、および/または高品種情報資産です」(3VS)。また、速度と構造、必要なツールの種類についても。

私にとって、ビッグデータは主にツールに関するものです(結局のところ、それが始まった場所です)。 「大きな」データセットは、従来のツールで処理するには大きすぎるデータセットです。特に、単一のマシンではなくクラスターでストレージと処理を要求するのに十分な大きさです。これは従来のRDBMを除外し、処理のための新しいテクニックを要求します。特に、さまざまなHadoopのようなフレームワークにより、この計算の形式を制限するコストで、クラスターに計算を簡単に配布できます。次の参照を2番目にします http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html ;ビッグデータテクニックは、他の方法を処理するには大きすぎるデータセットの最後の手段です。私は、あらゆる目的のデータセットが十分に大きい場合は資格があると思います - 問題の形状が既存の「ビッグデータ」ツールが適切でないようなものである場合、おそらく新しいものを思いつく方が良いでしょう名前。

もちろん、いくつかの重複があります。私が(簡単に)最後に作業したとき、私たちはHadoopを使用して同じ50TBデータセットと、かなりばかげたサーバーのSQLデータベースで作業しました(1TB RAMがあったことを覚えていますが、これは数年前です)。ある意味では、あなたが取り組んでいた仕事に応じて、それがビッグデータの両方であり、そうではなかったことを意味していました。しかし、それは正確な特徴づけだと思います。 Hadoopの仕事で働いていた人々は、ビッグデータ会議やウェブサイトに行くことは有用であると感じましたが、SQLの仕事に携わった人々はそうではありませんでした。

単一の場合、データは「大きく」なります コモディティコンピューター 持っているデータの量を処理できなくなりました。これは、スーパーコンピューターの構築を考え始めるか、クラスターを使用してデータを処理する必要があるポイントを示します。

ビッグデータは、データの量によって定義されます。そうではありませんが、それだけではありません。ビッグデータの特殊性は、あなたが保存する必要があることです たくさん様々 そして時折 非構造 もの いつも とaから たくさんのセンサー, 、 いつもの 何年もの間10年.

さらに、スケーラブルなものが必要なので、データを見つけるのに半年かかりません。

したがって、従来の方法が機能しなくなったビッグデータがここにあります。 SQLはスケーラブルではありません。また、SQLは非常に構造化されたリンクデータで動作します(これらのすべてのプライマリおよび外部キーの混乱、内部監督、抑制された要求...)。

基本的に、ストレージはより安価で安価になり、データがますます価値が高まるため、大手マネージャーはエンジニアにすべてを記録するように依頼します。これらすべてのモバイル、ソーシャルネットワーク、埋め込まれたものなど、この大量の新しいセンサーを追加します。したがって、古典的な方法が機能しないため、新しいテクノロジーを見つけなければなりません(すべてをファイルに保存します。JSON形式、大きなインデックス、NOSQLと呼ばれるもの)。

したがって、ビッグデータは非常に大きいかもしれませんが、それほど大きくはありませんが、複雑ではありませんが、非構造化されていないか、生の形式で迅速かつオンザランで保存する必要があります。最初は焦点を合わせて保管し、それからすべてをリンクする方法を検討します。

ゲノミクス、特にDe-Novoアセンブリのビッグデータがどのようなものかを共有します。

ゲノム(例:新規遺伝子を検出する)をシーケンスすると、数十億の次世代の短い読み取りを採用します。いくつかの読み取りを組み立てようとする下の画像を見てください。

enter image description here

これはシンプルに見えますか?しかし、それらの読み物を何十億も持っている場合はどうなりますか?これらの読み取りにシーケンスエラーが含まれている場合はどうなりますか? RAMに読み取りを維持するのに十分なメモリがない場合はどうなりますか?非常に一般的なように、反復的なDNA領域はどうですか ALU要素?

de-novoアセンブリは、aを構築することによって行われます de-bruijnグラフ:

enter image description here

グラフは、重複する読み取りを表すための巧妙なマイインドのデータ構造です。完璧ではありませんが、可能なすべてのオーバーラップを生成して配列に保存するよりも優れています。

アセンブリが移動して崩壊する必要があるかなりの数のパスがあるため、アセンブリプロセスが完了するまでに数日かかる場合があります。

ゲノミクスでは、次の場合にビッグデータがあります。

  • すべての組み合わせを強制することはできません
  • お使いのコンピューターには、データを保存するのに十分な物理メモリがありません
  • 寸法を減らす必要があります(例:冗長なグラフパスの崩壊)
  • あなたは何でもするために何日も待たなければならないので、あなたは腹を立てます
  • データを表すために特別なデータ構造が必要です
  • エラーのためにデータセットをフィルタリングする必要があります(例:シーケンスエラー)

https://en.wikipedia.org/wiki/de_bruijn_graph

グラフ アルゴリズムには特別なものがあります。独自の質問がそれを特別なものにし、本質的にデータを分割する能力に関係します。

配列上の数値のソートなど、データ構造上の問題をより小さな選言的な部分に分割することはそれほど難しくありません。 ここ:並列インプレースマージソート

ただし、グラフ アルゴリズムの場合は、特定のグラフィック メトリクスでオプションの分割を見つけることが $NP-hard$ であることが知られているという課題があります。

したがって、ソートする 10GB の数値は、通常の PC では非常に取り組みやすい問題かもしれません (動的プログラミングを介して実行するだけで、プログラム フローについて非常に優れた予測が可能です) が、10GB のグラフ データ構造を扱うことは、すでに困難を伴うものです。

などの特殊なフレームワークが多数あります。 グラフX メソッドと特別なコンピューティング パラダイムを使用して、グラフ固有の課題をある程度回避します。

あなたの質問に簡単に答えると、次のようになります。他の人が以前述べたように、データが通常の PC のメイン メモリに収まらないが、問題を解決するにはすべてのデータが必要な場合、データがすでにある程度大きくなっているという良いヒントになります。ただし、正確なラベル付けは、データ構造と質問に少し依存すると思います。

ビッグデータは、サイズがあなたがしたいことをすることを妨げる時点から始まると思います。ほとんどのシナリオでは、実行可能と見なされる実行時間に制限があります。場合によっては1時間であり、場合によっては数週間かかる場合があります。データが十分に大きくない限り、O(n)アルゴリズムのみが実行可能な時間枠で実行できる限り、ビッグデータに到達しませんでした。

ボリューム、テクノロジーレベル、特定のアルゴリズムに対して不可知論的であるため、私はこの定義が好きです。それはリソースにとって不可知論的ではないので、大学院生はGoogleの前にビッグデータのポイントに到達します。

データの大きさを定量化できるようにするために、バックアップするのに必要な時間を考慮したいと思います。テクノロジーが進歩して以来、数年前に大きく見なされていたボリュームは現在緩やかです。学習アルゴリズムの実行時間と同様に、テクノロジーが改善するにつれて、バックアップ時間が改善されます。 yバックアップのデータセットではなく、バックアップにx時間かかるデータセットについて話す方が賢明だと思います。

ビッグデータポイントに到達し、O(n)よりも複雑さのアルゴリズムを簡単に実行できない場合でも、そのようなアルゴリズムの恩恵を受けるためにできることはたくさんあることに注意することが重要です。

たとえば、機能の選択により、多くのアルゴリズムの実行時間が依存する機能の数を減らすことができます。多くの長い尾分布では、頭の中のいくつかのアイテムに焦点を当てることが有益かもしれません。サンプルを使用して、より遅いアルゴリズムを実行できます。

データは、1つのハイエンドコンピューターよりも2つ以上のコモディティコンピューターで分析するのが安価であるため、「ビッグデータ」です。

これは、基本的に、Googleの「BigFiles」ファイルシステムの発信方法です。 PageとBrinは、Webインデックスを保管および検索するために派手な太陽サーバーを買う余裕がなかったので、いくつかのコモディティコンピューターを接続しました

私は@Dan Levinがすでに言っていることに同意する傾向があります。最終的には、データを保存するのではなく、有用な洞察を引き出したいので、 学習能力アルゴリズム/システム 「ビッグデータ」と呼ばれるものを決定する必要があります。 ML Systemsが進化するにつれて、今日のビッグデータは明日ビッグデータではなくなります。

ビッグデータを定義する1つの方法は次のとおりです。

  • ビッグデータ: :MLモデルを構築できないデータ 妥当な時間(1〜2時間) 典型的なワークステーション(たとえば4GB RAMを含む)
  • 非ビッグデータ: :上記の補完

この定義を想定して、個々の行(単一のデータポイントのすべての変数)が占めるメモリがマシンRAMを超えない限り、私たちは 非ビッグデータ 政権。

ノート: Vowpal Wabbit (今日で最も速いMLシステム)は、個々の行(データポイント)が<RAM(4GBなど)である限り、任意のデータセットで学習できます。行数はです 制限ではありません 複数のコアでSGDを使用するためです。経験から言えば、1日でラップトップで10kの機能と10mnの列を備えたモデルをトレーニングできます。

「ビッグデータ」は文字通り多くのデータです。それは何よりもマーケティング用語のようなものですが、その意味は通常、メモリの量(RAM)の量がメモリに保持するのにかかるため、すべてのデータを一度に分析できないほど多くのデータがあることです。プロセスと分析利用可能なメモリの量よりも大きい。

つまり、分析は通常、データのランダムなセグメントで実行する必要があります。これにより、モデルを構築してデータの他の部分と比較することができます。

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top