2011-12-29 12 views
8

Tôi đang làm một số thử nghiệm với nutch và hadoop và tôi cần một lượng lớn dữ liệu. Tôi muốn bắt đầu với 20 GB, truy cập 100 GB, 500 GB và cuối cùng đạt tới 1-2 TB.Làm thế nào để sản xuất số lượng lớn dữ liệu?

Vấn đề là tôi không có số lượng dữ liệu này, vì vậy tôi đang nghĩ cách tạo ra nó.

Bản thân dữ liệu có thể thuộc bất kỳ loại nào. Một ý tưởng là lấy một bộ dữ liệu ban đầu và sao chép nó. Nhưng nó không đủ tốt vì cần các tệp khác nhau (các tệp giống nhau bị bỏ qua).

Một ý tưởng khác là viết chương trình sẽ tạo tệp có dữ liệu giả.

Bạn có ý tưởng nào khác không?

+1

Dữ liệu truy vấn từ anitcs của google? – Sephy

+0

Chà, một chương trình như thế sẽ tốn nhiều thời gian để chạy. –

+1

Bạn đã cân nhắc việc tạo các số ngẫu nhiên chưa? –

Trả lời

7

Đây có thể là câu hỏi hay hơn cho trang web StackExchange thống kê (xem, ví dụ: my question on best practices for generating synthetic data).

Tuy nhiên, nếu bạn không quan tâm đến các thuộc tính dữ liệu như cơ sở hạ tầng để thao tác và làm việc với dữ liệu, thì bạn có thể bỏ qua trang web thống kê. Đặc biệt, nếu bạn không tập trung vào các khía cạnh thống kê của dữ liệu và chỉ muốn "dữ liệu lớn", thì chúng ta có thể tập trung vào cách người ta có thể tạo ra một lượng lớn dữ liệu.

tôi có thể cung cấp một số câu trả lời:

  1. Nếu bạn chỉ quan tâm đến dữ liệu số ngẫu nhiên, tạo ra một dòng suối lớn từ việc thực hiện yêu thích của bạn của Mersenne Twister. Cũng có/dev/random (xem this Wikipedia entry for more info). Tôi thích một bộ tạo số ngẫu nhiên đã biết, vì kết quả có thể được sao chép lại bởi bất kỳ ai khác.

  2. Đối với dữ liệu có cấu trúc, bạn có thể xem xét lập bản đồ các số ngẫu nhiên cho các chỉ mục và tạo bảng chỉ ra các chỉ mục, ví dụ, chuỗi, số, v.v. vv Nếu bạn có một bảng đủ lớn hoặc một mục tiêu lập bản đồ đủ phong phú, bạn có thể giảm nguy cơ va chạm (ví dụ như tên), mặc dù có lẽ bạn muốn có một vài va chạm, vì chúng cũng xuất hiện trong thực tế.

  3. Hãy nhớ rằng với bất kỳ phương pháp sinh học nào, bạn không cần lưu trữ toàn bộ tập dữ liệu trước khi bắt đầu công việc của mình. Miễn là bạn ghi lại trạng thái (ví dụ: RNG), bạn có thể tiếp tục từ nơi bạn đã dừng lại.

  4. Đối với dữ liệu văn bản, bạn có thể xem các trình tạo chuỗi ngẫu nhiên đơn giản. Bạn có thể tạo các ước tính của riêng bạn cho xác suất của các chuỗi có độ dài khác nhau hoặc các đặc điểm khác nhau. Điều tương tự cũng có thể đi cho câu, đoạn văn, tài liệu, v.v. - chỉ quyết định thuộc tính nào bạn muốn mô phỏng, tạo đối tượng "trống" và điền vào nó bằng văn bản.

0

Tôi sẽ viết một chương trình đơn giản để thực hiện. Chương trình không cần phải quá rõ ràng vì tốc độ ghi vào đĩa có thể là cổ chai của bạn.

1

Nếu bạn chỉ cần tránh trùng lặp chính xác, bạn có thể thử kết hợp hai ý tưởng của mình --- tạo bản sao bị hỏng của một tập dữ liệu tương đối nhỏ. Các hoạt động "Tham nhũng" có thể bao gồm: thay thế, chèn, xóa và trao đổi ký tự.

0

Chỉ cần về nhận xét thời gian dài: Gần đây tôi đã mở rộng một phân vùng đĩa và tôi biết cũng phải mất bao lâu để di chuyển hoặc tạo một số lượng lớn tệp. Sẽ nhanh hơn nếu yêu cầu hệ điều hành một phạm vi không gian trống trên đĩa, và sau đó tạo một mục mới trong FAT cho phạm vi đó, mà không cần viết một chút nội dung (sử dụng lại thông tin hiện có trước đó). Điều này sẽ phục vụ mục đích của bạn (vì bạn không quan tâm đến nội dung tệp) và sẽ nhanh như xóa tệp.

Vấn đề là điều này có thể khó đạt được trong Java. Tôi đã tìm thấy một thư viện mã nguồn mở có tên là fat32-lib, nhưng vì nó không sử dụng mã nguồn gốc nên tôi không nghĩ nó hữu ích ở đây. Đối với một hệ thống tập tin nhất định, và sử dụng một ngôn ngữ cấp thấp hơn (như C), nếu bạn có thời gian và động lực tôi nghĩ nó sẽ đạt được.

0

Hãy xem TPC.org, chúng có điểm chuẩn Cơ sở dữ liệu khác nhau với trình tạo dữ liệu và truy vấn được xác định trước.

Máy phát có yếu tố tỷ lệ cho phép xác định kích thước dữ liệu đích.

Ngoài ra còn có myriad research project (paper) tập trung vào việc tạo dữ liệu "dữ liệu lớn" được phân phối. Myriad có một đường cong học tập dốc, vì vậy bạn có thể phải yêu cầu các tác giả của phần mềm trợ giúp.