如何在Oracle数据库中生成随机样本数据?

时间:2011-05-31 14:39:36

标签: java sql oracle dataset

是否有人知道可以检查指定架构并根据该架构的表和列生成随机数据的工具?

5 个答案:

答案 0 :(得分:4)

这是一个有趣的问题。生成随机值很容易 - 通过调用DBMS_RANDOM对数据字典进行简单的循环就可以了。

除了两件事。

一个是,正如@FrustratedWithForms指出的那样,存在外键约束的复杂性。让我们将查找值(参考数据)提示到混合中。

第二个是,随机不太现实。使用随机数据的主要驱动因素是需要大量数据,可能用于性能测试。但真正的数据集不是随机的,它们包含倾斜和团块,变量字符串长度,当然还有模式(特别是涉及日期的地方)。

因此,我建议您尝试获取真实数据集,而不是尝试生成随机数据。理想情况下,您的用户/客户将能够提供一个,最好是匿名的。否则,尝试使用已经属于公共领域的东西,并按摩它以满足您的特定要求。在这些问题上,信息黑猩猩是顶级香蕉。 Check them out

答案 1 :(得分:4)

另一种选择是Swingbench Data Generator

使用SAMPLE子句非常有用(例如为订单和产品的随机组合生成订单行)

答案 2 :(得分:3)

Allround Automation的PL/SQL Developer有一个数据生成工具。但请注意:它有点不稳定 - 它似乎在单表基础上正常工作,但在表之间存在依赖关系时会被绊倒。

我承认最终我刚开始编写自己的SQL脚本来生成数据。原来要稳定得多。

答案 3 :(得分:3)

查看Databene Benerator

进行初始设置有点复杂但功能非常强大。

答案 4 :(得分:2)

这是一张外卡,但我想我会提到它。

如果生产环境中的数据由于可能包含敏感信息而无法使用,则Oracle会生成一个名为“Oracle Data Masking”的产品,该产品将使用实际值替换敏感信息。

我不知道此产品的费用,但如果您想了解更多信息,可以找到here