2011-12-29 24 views
8

私はnutchとhadoopでいくつかのテストをしています。膨大な量のデータが必要です。 私は20GBから始め、100GB、500GBに行き、ついには1〜2TBに達したいと思います。大量のデータを作成する方法は?

問題は、私はこの量のデータを持っていないため、私はそれを作り出す方法を考えています。

データ自体はどのような種類のものでもかまいません。 1つのアイデアは、最初のデータセットを取り出して複製することです。しかし、それは十分ではないので、お互いに異なるファイルが必要です(同一のファイルは無視されます)。

もう1つのアイデアは、ダミーデータを含むファイルを作成するプログラムを作成することです。

他のアイデアはありますか?

+1

Googleアナリティクスのクエリデータですか? – Sephy

+0

うわー、そのようなプログラムは、実行するのに十分な時間がかかります。 –

+1

乱数を生成するだけでいいですか? –

答えて

7

これは、統計StackExchangeサイトでより良い質問になる場合があります(たとえば、my question on best practices for generating synthetic dataを参照)。

ただし、データを操作して作業するインフラストラクチャとしてデータプロパティにあまり関心がない場合は、統計サイトを無視することができます。特に、データの統計的側面に焦点を絞っておらず、単に「ビッグデータ」を求めたい場合は、データの大量をどのように生成できるかに焦点を当てることができます。あなたはランダムな数値データでちょうど興味を持っている場合は、

  1. メルセンヌツイスターのお気に入りの実装から大規模なストリームを生成:

    私はいくつかの答えを提供することができます。/dev/randomもあります(this Wikipedia entry for more info参照)。私は結果が他の誰かによって広告の嫌がらせを再現することができるように、既知の乱数ジェネレータを好む。

  2. 構造化されたデータの場合、乱数をインデックスにマッピングして、名前、アドレスなどのデータベースを生成する際に発生する可能性があるインデックスなどのインデックスを、たとえば文字列、十分な大きさのテーブルや十分に豊富なマッピングターゲットを持っている場合は、実際に発生するように衝突の可能性を減らすことができます(同じ名前など)。

  3. 任意の生成方法では、作業を開始する前にデータセット全体を保存する必要はありません。状態(RNGなど)を記録する限り、中断した部分を取り上げることができます。

  4. テキストデータの場合、単純なランダムストリングジェネレータを見ることができます。さまざまな長さまたは異なる特性の文字列の確率について、独自の見積もりを作成できます。文、段落、文書などにも同じことができます。エミュレートするプロパティを決め、空のオブジェクトを作成し、テキストで埋めてください。

0

私はそれを行う簡単なプログラムを書いています。ディスクへの書き込み速度がボトルネックになる可能性があるので、プログラムはあまり明確である必要はありません。

1

重複を避ける必要がある場合は、2つのアイデアの組み合わせを試すことができます。比較的小さなデータセットの破損したコピーを作成することができます。 「破損」操作には、置換、挿入、削除、および文字スワッピングが含まれます。

0

私は最近、ディスクパーティションを拡張しましたが、非常に多くのファイルを移動または作成するにはどれくらいの時間がかかります。 OSにディスク上の空き領域を要求してから、その範囲のFATに新しいエントリを作成し、1ビットのコンテンツを書き込むことなく(以前の情報を再利用すること)はるかに速くなります。これはあなたの目的に役立ちます(あなたはファイルの内容を気にしないので)、ファイルを削除するのと同じくらい速くなります。

問題は、Javaでこれを達成するのが難しいかもしれないということです。私はfat32-libという名前のオープンソースライブラリを見つけましたが、ネイティブコードに頼らないのでここでは役に立たないと思います。与えられたファイルシステムに対して、より低いレベルの言語(Cのようなもの)を使って、あなたが時間とモチベーションを持っていれば、それは達成可能だと思います。

0

は、彼らがデータジェネレータと、定義済みのクエリと異なるデータベースのベンチマークを持って、TPC.orgを見てください。

ジェネレータには、ターゲットデータサイズを定義できるスケールファクタがあります。

分散型の「ビッグデータ」データ生成に焦点を当てたmyriad research projectpaper)もあります。 Myriadは学習曲線が険しいので、ソフトウェアの作者に助けを求める必要があるかもしれません。

関連する問題