2009-02-26 88 views
104

我正在尋找一個好的免費工具來生成樣本數據以便加載到測試數據庫中。通過類推,爲任何RDBMS生成「lorem ipsum」文本。我正在尋找的功能包括:生成模擬數據的工具?

  • 靈活地爲現有表格定義生成數據。
  • 能夠生成小型和大型數據集(> 100萬行或更多)。
  • 以SQL腳本格式(INSERT語句)生成,或者以適合批量導入(通常更快)的平面文件格式生成。
  • 易於編寫腳本的命令行界面。
  • 可擴展,開放源代碼,使用動態語言編寫(這些內容非常好,不是強大的要求)。

PS:我沒有在StackOverflow上搜索重複的問題,但我沒有找到一個。如果有的話,我會很感激得到一個指針。


感謝大家的好評!我應該修改我的要求,即使用Mac OS X作爲我的主要開發環境,而不是Windows(儘管我確實說過命令行界面是可取的,而且幾乎不排除Windows)。儘管如此,Windows特有的建議無疑會對這個問題的其他讀者有用。


這是我的結論是:

  • GenerateData:
    • PHP的Web應用程序界面,而不是命令行
    • 僅限於產生200個記錄(或支付$ 20執照生成5000記錄)
  • RedGate SQL Data Generator
    • 不是免費的,價格$ 295
    • 需要Windows,.NET,SQL服務器
  • Visual Studio 2008的數據庫版
    • 需要Windows
    • 需要昂貴的MSDN或ISV訂閱
  • Banner Datadect
    • 不是免費的,價格$ 595
    • 需要Windows(?)
    • 對MySQL不支持(?)
    • GUI,而不是命令行或腳本化
  • 紅寶石法克爾寶石
    • 方式使用ActiveRecord爲批量數據加載
  • 超級的Smack
    • 主要太慢負載測試工具,內置隨機數據發生器
    • pr etty簡單,但是利用總體
    • 一個良好亞軍工具
  • Databene Benerator
      我需要
    • XML腳本,用DbUnit
    • 開源(GPL)兼容
    • 最佳解決方案Java代碼
    • 命令行使用
    • 直接通過JDBC訪問許多數據庫
+0

這是類似的性質,並在它自己的光有趣:http://en.wikipedia.org/wiki/Fuzz_testing – grieve 2009-03-06 21:31:07

+0

GenerateData是PHP應用程序。你可以破解代碼來生成任意數量的你想要的數據記錄。爲V2.x.我不知道3.x是否會更改許可證。 – 2013-02-18 06:13:34

+0

你也可以檢查[數據構造](http://www.dataconstructor.com/) – 2013-12-18 16:59:28

回答

41

看看databene benerator,看起來接近您的要求的測試數據生成器。

  • 它可以產生對現有的表的定義數據(或者甚至匿名生產數據)
  • 它可以生成設定拉爾數據(無限制尺寸)
  • 它支持各種輸入(CSV,平面文件,DBUnit的)和輸出格式(CSV,平面文件,DBUnit的,XML,Excel中,腳本)
  • 它可以在命令行上或通過一個行家插件使用
  • 它是開源和可定製

我會試試看。

順便提一下,在databene benerator的網站上可以找到similar products的列表。

+0

任何人都有使用它的成功嗎?我試過了,但benerator-wizard生成了無效的pom.xml文件(對於「填充數據庫」選項)。此外,還有一個演示(hsqldb)和maven導致錯誤。對我來說,似乎這個工具不夠好,因此不值得花時間。 – 2013-11-07 09:11:55

23

這看起來很有希望:generatedata.com。開源的,有很多內置的數據類型。

此處列出了其他幾種:Test (Sample) Data Generators。我對他們中的任何人都沒有經驗,但是名單上的一些人看起來很不錯。

1

我知道你不是在尋找實際的lorem ipsum文本;但如果其他人搜索實際lorem ipsum發電機,並發現此線程:lipsum.com做了很好的工作。

+0

感謝您的鏈接,但是,這不是我所期待的。 – 2009-03-02 19:22:06

+0

還有一個名爲Dummy Lipsum的Firefox插件,非常有用!抱歉,我無法幫助比爾:( – alex 2009-03-04 05:31:37

2

如果你正在尋找或願意使用MySQL特有的東西,你可以看看Super Smack。它目前由Tony Bourke維護。

Super Smack允許您生成隨機數據以插入到數據庫表中。它是可定製的,允許您使用打包的words.dat文件或您選擇的任何測試數據。

其中一件好事就是命令行是高度可定製的。在High Performance MySQL這本書中也有一些相當不錯的例子,它也是excerpted here

不知道這是否符合您所尋找的內容,而僅僅是一個想法。

+0

看起來很有前途!說它支持PostgreSQL以及MySQL。感謝您的鏈接。 – 2009-03-04 21:52:52

2

帶有一個可用假數據生成器的Ruby腳本應該可以。

http://faker.rubyforge.org/就是這樣的寶石。不幸的是,這並不能滿足您的所有要求。

這裏是另一個:http://random-data.rubyforge.org/

而對於使用法克爾教程:http://www.rubyandhow.com/how-to-generate-fake-names-addresses-in-ruby/


RE:靈活性以產生用於一個現有的表的定義數據。將Faker gem與其中一個可用的ORM結合在一起。 ActiveRecord可能是最簡單的。

+0

您是否嘗試過通過ActiveRecord一次執行大於一百萬行的批量加載界面?我不看好完成時間。 – 2009-03-04 21:44:49

+0

此外,我今天在一些黃瓜特徵步驟和它的S L O W中使用了Faker gem。所以,我的分數到目前爲止:ActiveRecord -1; Faker -1 我沒那麼好。 :) – brendanjerwin 2009-03-05 02:37:16

0

不直接回答你的問題,但是這可能是對某些類型的數據有所幫助:

假姓名發電機可能是有用的 - http://www.fakenamegenerator.com/,不是一切,但用戶帳戶或類似的東西。 AFAIK它們提供對批量訂單的支持。

+0

是的,我看了一下,但它似乎並沒有提供我正在尋找的靈活性。無論如何感謝鏈接。 – 2009-03-04 21:50:21

1

不是免費的,但Visual Studio 2008 Database Edition是一個很好的選擇,它提供了更多的功能(集成SCC,單元測試,重構數據庫等)

+0

似乎只能通過每年花費5469美元的MSDN訂閱纔可用。對於這筆錢,我可以聘請一些大學生來補考測試數據並輸入。 – 2009-03-04 21:48:42

5

我知道你說你正在尋找一個免費工具,但這是一種情況,我會建議花費295美元可以快速節省您的時間。我去年一直在使用RedGate工具SQL Data Generator,簡而言之,它是一款非常棒的工具。它允許設置列之間的依賴關係,爲諸如電話號碼,網址,名稱等業務對象生成真實的數據。我可以誠實地聲明,該工具一次又一次地爲自己付出了代價。

+0

是的,我並不反對花295美元在開發時節省數百美元。感謝領先! – 2009-03-04 21:46:13

2

通常非常昂貴,但如果您是小型獨立軟件開發商,您可以非常便宜地獲得Visual Studio 2008 Database Edition,請參閱empowerbizspark促銷活動。它提供了更多的功能,然後只是生成測試數據(與SCC集成,單元​​測試,數據庫重構等)

因爲我喜歡Red-Grate工具很容易學習的事實,所以我仍然會看SQL Data Generator

1

我使用了一個名爲Datatect工具:

  1. 生成的數據平面文件或任何ODBC兼容數據庫。
  2. 可通過VBScript擴展。
  3. 知覺;將使用父表中的值填充外鍵。
  4. 數據是情境感知;城市,州和電話號碼給定的郵政編碼,名字和性別的標題。
  5. 可以創建自定義的複雜數據類型。
  6. 生成超過20億個專有名稱,公司名稱,街道地址,城市,州和郵政編碼。

我已經使用這個工具來產生多達40,000,000行數據到SQLServer數據庫和8,000,000行數據到Oracle數據庫。

我與Banner Systems沒有任何關係,只是一個滿意的客戶。

0

+1對於Benerator:我嘗試了其他3種或4種工具(包括dbmonster),但發現Benerator非常快速,能夠提供真實的數據並且靈活。當我發佈在論壇上時,我也非常快速地從工具的創建者處獲得了有用的反饋意見&。

6

嘗試http://www.mockaroo.com

這是一個工具,我的公司,以幫助測試我們自己的應用程序。我們已經免費爲任何人使用。這基本上是僞造的紅寶石寶石,它包裹着一個網絡應用程序。您可以使用CSV,txt或SQL格式生成數據。希望這可以幫助。

1

可以使用的dbschema,www.dbschema.com這是一個數據庫管理工具,它有一個隨機數據發生器來填充數據庫。