Công cụ để tạo dữ liệu giả? [đóng cửa]


104

Tôi đang tìm kiếm các đề xuất về một công cụ tốt, miễn phí để tạo dữ liệu mẫu nhằm mục đích tải vào cơ sở dữ liệu thử nghiệm. Tương tự, một cái gì đó tạo ra văn bản " lorem ipsum " cho bất kỳ RDBMS nào. Các tính năng tôi đang tìm kiếm bao gồm:

  • Tính linh hoạt để tạo dữ liệu cho một định nghĩa bảng hiện có.
  • Khả năng tạo các tập dữ liệu lớn và nhỏ (> 1 triệu hàng trở lên).
  • Tạo ở định dạng tập lệnh SQL ( INSERTcâu lệnh) hoặc ở định dạng tệp phẳng phù hợp để nhập hàng loạt (thường nhanh hơn).
  • Một giao diện dòng lệnh để viết tập lệnh dễ dàng.
  • Có thể mở rộng, mã nguồn mở, được viết bằng ngôn ngữ động (đây là những yêu cầu tốt, không quá mạnh).

Tái bút: Tôi đã tìm kiếm một câu hỏi trùng lặp trên StackOverflow, nhưng tôi không tìm thấy câu hỏi nào. Nếu có, tôi sẽ rất biết ơn khi được hướng dẫn.


Cảm ơn vì những phản hồi tuyệt vời của tất cả mọi người! Tôi nên sửa đổi các yêu cầu của mình rằng tôi sử dụng Mac OS X làm môi trường phát triển chính của mình, không phải Windows (mặc dù tôi đã nói giao diện dòng lệnh là mong muốn và điều đó thực tế loại trừ Windows). Tuy nhiên, các đề xuất dành riêng cho Windows chắc chắn sẽ hữu ích cho những người đọc khác của câu hỏi này, vì vậy cảm ơn.


Đây là kết luận của tôi:

  • Tạo dữ liệu:
    • Giao diện ứng dụng web PHP, không phải dòng lệnh
    • giới hạn để tạo 200 bản ghi (hoặc trả $ 20 cho giấy phép để tạo ra 5,000 bản ghi)
  • Trình tạo dữ liệu SQL RedGate
    • không miễn phí, giá $ 295
    • yêu cầu Windows, .NET, SQL Server
  • Phiên bản cơ sở dữ liệu Visual Studio 2008
    • yêu cầu Windows
    • yêu cầu đăng ký MSDN hoặc ISV tốn kém
  • Banner Datadect
    • không miễn phí, giá $ 595
    • yêu cầu Windows (?)
    • không hỗ trợ cho MySQL (?)
    • GUI, không phải dòng lệnh hoặc có thể tập lệnh
  • Đá quý Ruby Faker
    • quá chậm để sử dụng ActiveRecord để tải dữ liệu hàng loạt
  • Siêu Smack
    • chủ yếu là một công cụ kiểm tra tải, với trình tạo dữ liệu ngẫu nhiên được tích hợp sẵn
    • Tuy nhiên, khá đơn giản để sử dụng
    • tổng thể là một công cụ tốt nhất
  • Databene Benerator
    • giải pháp tốt nhất cho nhu cầu của tôi
    • Các tập lệnh XML, tương thích với DbUnit
    • mã nguồn mở (GPL) Java
    • sử dụng dòng lệnh
    • truy cập nhiều cơ sở dữ liệu trực tiếp qua JDBC

Điều này cũng tương tự về bản chất, và thú vị theo cách riêng của nó: en.wikipedia.org/wiki/Fuzz_testing
đau buồn

GenerateData là ứng dụng php. bạn có thể hack mã để tạo bất kỳ số lượng bản ghi dữ liệu nào bạn muốn. cho V2.x. Tôi không biết liệu 3.x có thay đổi giấy phép hay không.
Han Zheng

Ngoài ra, bạn có thể kiểm tra Trình tạo dữ liệu
Agnius Vasiliauskas.

Câu trả lời:


41

Hãy xem trình thụ hưởng dữ liệu, một trình tạo dữ liệu thử nghiệm có vẻ gần với yêu cầu của bạn.

  • nó có thể tạo dữ liệu cho định nghĩa bảng hiện có (hoặc thậm chí ẩn danh dữ liệu sản xuất)
  • nó có thể tạo tập dữ liệu lớn (kích thước không giới hạn)
  • nó hỗ trợ nhiều đầu vào khác nhau (CSV, Tệp phẳng, DBUnit) và định dạng đầu ra (CSV, Tệp phẳng, DBUnit, XML, Excel, Tập lệnh)
  • nó có thể được sử dụng trên dòng lệnh hoặc thông qua một plugin maven
  • nó là mã nguồn mở và có thể tùy chỉnh

Tôi sẽ cho nó thử.

BTW, danh sách các sản phẩm tương tự có sẵn trên trang web của người thụ hưởng dữ liệu.


có ai thành công với việc sử dụng nó không? Tôi đã thử nó, nhưng bên dưới tạo ra tệp pom.xml không hợp lệ (cho tùy chọn "Điền cơ sở dữ liệu"). Hơn nữa, việc sử dụng một trong các bản demo (hsqldb) với maven cũng dẫn đến lỗi. Đối với tôi, nó có vẻ như công cụ không ở trong tình trạng tốt, do đó không đáng để mất thời gian với nó.
Peter Butkovic

23

Điều này trông khá hứa hẹn: createdata.com . Mã nguồn mở, có rất nhiều kiểu dữ liệu tích hợp.

Có một số công cụ khác được liệt kê ở đây: Bộ tạo dữ liệu thử nghiệm (mẫu) . Tôi không có kinh nghiệm với bất kỳ ai trong số họ, nhưng một vài trong danh sách đó có vẻ như họ có thể khá tốt.


6

Hãy thử http://www.mockaroo.com

Đây là một công cụ mà công ty tôi tạo ra để giúp kiểm tra các ứng dụng của chính chúng tôi. Chúng tôi đã làm cho nó miễn phí cho mọi người sử dụng. Về cơ bản nó là viên ngọc ruby ​​Forgery với một ứng dụng web được bao bọc xung quanh nó. Bạn có thể tạo dữ liệu ở định dạng CSV, txt hoặc SQL. Hi vọng điêu nay co ich.


Cảm ơn vì mẹo, tôi sẽ kiểm tra nó!
Bill Karwin

5

Tôi biết bạn nói rằng bạn đang tìm kiếm một công cụ miễn phí, nhưng đây là một trường hợp mà tôi đề xuất rằng chi tiêu 295 đô la sẽ trả lại cho bạn nhanh chóng trong thời gian tiết kiệm. Tôi đã sử dụng công cụ RedGate SQL Data Generator trong năm ngoái và nói ngắn gọn thì đây là một công cụ tuyệt vời. Nó cho phép thiết lập sự phụ thuộc giữa các cột, tạo ra dữ liệu thực tế cho các đối tượng kinh doanh như số điện thoại, url, tên, v.v. Tôi có thể thành thật nói rằng công cụ này đã trả giá hết lần này đến lần khác.


Đúng vậy, tôi không ghét việc chi 295 đô la để tiết kiệm hàng trăm đô la trong thời gian phát triển. Cảm ơn vì đã dẫn đầu!
Bill Karwin

2

Nếu bạn đang tìm kiếm hoặc sẵn sàng sử dụng thứ gì đó dành riêng cho MySQL, bạn có thể xem qua Super Smack . Nó hiện được duy trì bởi Tony Bourke.

Super Smack cho phép bạn tạo dữ liệu ngẫu nhiên để chèn vào các bảng cơ sở dữ liệu của mình. Nó có thể tùy chỉnh, cho phép bạn sử dụng tệp tin words.dat được đóng gói hoặc bất kỳ dữ liệu thử nghiệm nào bạn chọn.

Một trong những điều thú vị về nó là dòng lệnh có khả năng tùy biến cao. Có một số ví dụ khá tốt về cách sử dụng trong cuốn sách MySQL Hiệu suất cao cũng được trích dẫn ở đây .

Không chắc liệu điều đó có đúng với những gì bạn đang tìm kiếm hay không, nhưng chỉ là một suy nghĩ.


Trông đầy hứa hẹn! Cho biết nó hỗ trợ PostgreSQL cũng như MySQL. Cảm ơn các liên kết.
Bill Karwin

2

Một tập lệnh Ruby với một trong những trình tạo dữ liệu giả có sẵn sẽ giúp bạn làm tốt.

http://faker.rubyforge.org/ là một trong những viên ngọc như vậy. Thật không may, điều này không đáp ứng tất cả các yêu cầu của bạn.

Đây là một cái khác: http://random-data.rubyforge.org/

Và hướng dẫn sử dụng Faker: http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE: Tính linh hoạt để tạo dữ liệu cho định nghĩa bảng hiện có. Kết hợp đá quý Faker với một trong các ORM có sẵn. ActiveRecord có lẽ sẽ dễ dàng nhất.


Bạn đã thử tải hàng loạt> 1 triệu hàng, một hàng tại một thời điểm thông qua giao diện ActiveRecord chưa? Tôi không lạc quan về thời gian hoàn thành.
Bill Karwin

Ngoài ra, tôi đã sử dụng ngọc Faker hôm nay trong một số bước của Tính năng Cucumber và SLO W. Vì vậy, điểm của tôi cho đến nay: ActiveRecord -1; Faker -1 Tôi không làm quá xuất sắc. :)
brendanjerwin

2

Thông thường rất tốn kém, nhưng nếu bạn là một ISV nhỏ, bạn có thể mua Visual Studio 2008 Database Edition với giá rất rẻ, hãy xem các chương trình khuyến mãi trao quyềnbizspark . Nó cung cấp nhiều chức năng hơn sau đó chỉ tạo dữ liệu thử nghiệm (Tích hợp với SCC, Kiểm thử đơn vị, Tái cấu trúc cơ sở dữ liệu, v.v.)

Vì tôi thích thực tế là các công cụ Red-Grate rất dễ học, tôi vẫn sẽ xem xét Trình tạo dữ liệu SQL


Vâng, nó ít tốn kém hơn, theo thứ tự cùng mức giá với công cụ của RedGate, nhưng ngoài ra bạn phải đủ điều kiện làm ISV ​​và điều đó có nghĩa là mua những thứ khác. Cảm ơn vì liên kết dù sao, chắc chắn nó sẽ hữu ích cho ai đó. +1
Bill Karwin

2

một công cụ thực sự không nên thiếu trong danh sách là Trình tạo dữ liệu từ Datanamic để điền trực tiếp cơ sở dữ liệu hoặc tạo tập lệnh chèn, có một bộ sưu tập lớn các trình tạo được cài đặt sẵn (và hỗ trợ nhiều cơ sở dữ liệu ...

http://www.datanamic.com/datagenerator/index.html


Cám ơn vì sự gợi ý. Cần lưu ý rằng nó chỉ dành cho nền tảng Windows và nó có giá $ 799.
Bill Karwin

1

Tôi biết bạn không tìm kiếm văn bản ipsum lorem thực tế; nhưng trong trường hợp bất kỳ ai khác tìm kiếm một trình tạo ipsum lorem thực tế và tìm thấy chủ đề này: lipsum.com đã làm rất tốt điều đó.


Cảm ơn vì liên kết, nhưng đó không phải là những gì tôi đang tìm kiếm.
Bill Karwin

Ngoài ra còn có một plugin cho Firefox có tên Dummy Lipsum, nó rất hữu ích! Xin lỗi, tôi không giúp được gì cho Bill :(
alex

1

Không miễn phí, nhưng Visual Studio 2008 Database Edition là một giải pháp thay thế tốt và nó cung cấp nhiều chức năng hơn (Tích hợp với SCC, Unit Testing, DB Refactoring, v.v.)


Có vẻ như chỉ khả dụng thông qua đăng ký MSDN có giá 5469 đô la mỗi năm. Đối với số tiền đó, tôi có thể thuê một số sinh viên đại học để tạo nên kiểm tra dữ liệu và gõ nó trong.
Bill Karwin

1

Tôi sử dụng một công cụ có tên Datatect :

  1. Tạo dữ liệu vào các tệp phẳng hoặc bất kỳ cơ sở dữ liệu tuân thủ ODBC nào.
  2. Có thể mở rộng qua VBScript.
  3. Tham khảo ý thức; sẽ điền các khóa ngoại với các giá trị từ bảng mẹ.
  4. Dữ liệu nhận biết ngữ cảnh; thành phố, tiểu bang và số điện thoại cho mã zip nhất định, tên và chức danh kèm theo giới tính.
  5. Có thể tạo các kiểu dữ liệu tùy chỉnh, phức tạp.
  6. Tạo hơn 2 tỷ tên riêng, tên doanh nghiệp, địa chỉ đường phố, thành phố, tiểu bang và mã zip.

Tôi đã sử dụng công cụ này để tạo ra tới 40.000.000 hàng dữ liệu vào cơ sở dữ liệu SQLServer và 8.000.000 hàng dữ liệu vào cơ sở dữ liệu Oracle.

Tôi không liên kết với Banner Systems, chỉ là một khách hàng hài lòng.


Đó có vẻ là một lựa chọn đầy hứa hẹn. Cảm ơn các liên kết. +1 Tuy nhiên, tôi không phát triển trên Windows làm nền tảng chính của mình, xin lỗi vì tôi đã không nêu rõ điều đó trong câu hỏi của mình.
Bill Karwin


1

Đối với OS X có Data Creator (US $ 7). Tải xuống miễn phí cho mục đích thử nghiệm. Bạn có thể sử dụng nó để đánh giá phần mềm và các tính năng của nó.

Nó yêu cầu OS X Lion hoặc kế tiếp. Nó có thể tạo ra nhiều loại trường khác nhau và có chế độ xuất tùy chỉnh cộng với một số thiết lập sẵn (TSV, CSV, bảng Html, trang web có bảng bên trong).

http://www.tensionsoftware.com/osx/datacreator/

tại đây tại App Store:

https://itunes.apple.com/us/app/data-creator/id491686136?mt=12


1

Bạn có thể sử dụng DbSchema, www.dbschema.com, đây là một công cụ quản lý cơ sở dữ liệu và nó có Trình tạo dữ liệu ngẫu nhiên để đưa vào cơ sở dữ liệu của bạn.


0

Không phải câu trả lời trực tiếp cho câu hỏi của bạn nhưng điều này có thể hữu ích cho một số loại dữ liệu nhất định:

Fake Name Generator có thể hữu ích - http://www.fakenamegenerator.com/ , không phải cho mọi thứ trừ tài khoản người dùng hoặc những thứ tương tự. AFAIK Họ cung cấp hỗ trợ cho đơn đặt hàng số lượng lớn.


Vâng, tôi đã xem qua nhưng nó có vẻ không mang lại sự linh hoạt mà tôi đang tìm kiếm. Cảm ơn dù sao cho liên kết.
Bill Karwin

0

+1 cho Benerator: Tôi đã thử 3 hoặc 4 trong số các công cụ khác được cung cấp (bao gồm cả dbmonster) nhưng nhận thấy Benerator rất nhanh chóng, cung cấp dữ liệu thực tế và linh hoạt. Tôi cũng nhận được phản hồi rất nhanh và hữu ích từ người tạo công cụ khi tôi đăng trên diễn đàn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.