8

私はnutchとhadoopを使っていくつかのテストを行っていますが、大量のデータが必要です。20 GBから始めて、100 GB、500 GBに増やし、最終的に1〜2TBに到達したいと思います。

問題は、この量のデータがないことです。そのため、データを生成する方法を考えています。

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

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

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

4

5 に答える 5

7

これは、統計 StackExchange サイトのより適切な質問かもしれません (たとえば、合成データを生成するためのベスト プラクティスに関する私の質問を参照してください)。

ただし、データを操作して操作するためのインフラストラクチャとしてデータのプロパティにあまり関心がない場合は、統計サイトを無視してかまいません。特に、データの統計的側面に焦点を当てておらず、単に「ビッグデータ」が必要な場合は、膨大なデータの山を生成する方法に焦点を当てることができます.

いくつかの答えを提供できます:

  1. ランダムな数値データだけに関心がある場合は、Mersenne Twister のお気に入りの実装から大きなストリームを生成してください。/dev/random もあります (詳細については、このウィキペディアのエントリを参照してください)。私は既知の乱数ジェネレーターを好みます。なぜなら、結果は他の人がうんざりするほど再現できるからです。

  2. 構造化されたデータの場合、乱数をインデックスにマッピングする方法を調べて、インデックスを文字列や数値などにマッピングするテーブルを作成できます。たとえば、名前や住所などのデータベースを作成する際に遭遇する可能性があります。十分な大きさのテーブルまたは十分にリッチなマッピング ターゲットを使用すると、衝突 (同じ名前など) のリスクを減らすことができます。

  3. どの生成メソッドでも、作業を開始する前にデータセット全体を保存する必要はないことに注意してください。状態 (RNG など) を記録している限り、中断したところから再開できます。

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

于 2011-12-31T16:22:18.440 に答える
1

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

于 2011-12-29T13:10:44.100 に答える
0

久しぶりのコメント: 私は最近ディスク パーティションを拡張しましたが、多数のファイルを移動または作成するのにどれだけの時間がかかるかをよく知っています。OS にディスク上の空き領域の範囲を要求し、その範囲の新しいエントリを FAT に作成する方が、コンテンツを 1 ビットも書き込まずに (以前の既存の情報を再利用して) はるかに高速です。これは(ファイルの内容を気にしないため)目的を果たし、ファイルを削除するのと同じくらい高速です。

問題は、これを Java で実現するのが難しいことです。fat32-libという名前のオープン ソース ライブラリを見つけましたが、ネイティブ コードに依存していないため、ここでは役に立たないと思います。特定のファイルシステムに対して、低レベルの言語 (C など) を使用する場合、時間と動機があれば達成可能だと思います。

于 2011-12-29T13:52:45.797 に答える
0

TPC.orgを見てください。データ ジェネレーターと事前定義されたクエリを備えたさまざまなデータベース ベンチマークがあります。

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

また、分散型の「ビッグデータ」データ生成に焦点を当てた無数の研究プロジェクト(論文) もあります。Myriad の学習曲線は急勾配であるため、ソフトウェアの作成者に助けを求める必要があるかもしれません。

于 2014-01-03T10:57:45.927 に答える
0

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

于 2011-12-29T13:02:27.783 に答える