几天前,我们发布了第一个1.x 版本的 Datafaker。Datafaker是Javafaker的一个现代且更新的端口,是一个生成看起来像真实数据的假随机数据的库。
Datafaker 是一个 Java/Kotlin 库。它的创建是因为最初的项目Javafaker被困在旧版本的Java上,并且几乎不接受PR。 (在撰写本文时,Javafaker项目有100多个开放的PR,并且有几个长期未解决的错误)。由于我不想让投入这些 PR 的努力白费,我创建了 Datafaker,它(几乎)将所有开放的 PR 合并到 Datafaker 中,并修复了一些额外的问题。
示意性地,这就是Datafaker目前与Javafaker的比较:
描述 | 数据伪造者 | JAVAFAKER |
---|---|---|
语言 | Kotlin/Java 11+ | 爪哇 6 |
供应商 | 100+ | ~80 |
依赖 | 非常小(从 1.1.0 开始) | 番石榴、阿帕奇共享资源等 |
上一个版本 | 3 1月 2022 | 11 2月 2020 |
Datafaker 是一个很棒的库,当需要真实的测试数据时可以使用。例如,单元测试就是一个很好的例子,或者填充数据库表,或生成 CSV 文件。使用Datafaker,生成真实的数据(例如信用卡号,电话号码)以及医疗数据(例如ICD-10-CM和ICD-10-PCS数据)是微不足道的。
生成数据作为匿名生产数据的替代方法,有一些好处。生成数据的最大好处之一是数据永远不会导致 PII(个人身份信息)和 PHI(受保护的健康信息)问题,因为数据是假的,不包含真实的患者、医疗记录号或其他识别信息。
另一个很大的好处是,很容易生成几乎无限的数据集。虽然有时很难获得大量匿名生产数据,但使用 Datafaker 可以轻松生成一百万或更多的 PII/PHI 记录。
最后一个值得注意的功能是生成的数据可以本地化。因此,例如,当您需要美国电话号码和法国电话号码时,Datafaker可以通过传入所需语言或国家/地区的区域设置轻松生成这些号码,并且数据将相应地格式化。
使用Datafaker非常简单。它可以从Maven或Gradle通过使用,方法是在理论上声明依赖关系。下面可以看到一个示例:pom.xml
build.gradle
-
net.datafaker -
datafaker -
1.0.0
导入库后,您可以使用Datafaker通过以下方式生成假数据:
- import net.datafaker.Faker;
-
- Faker faker = new Faker();
-
- String name = faker.name().fullName(); // Miss Samanta Schmidt
- String firstName = faker.name().firstName(); // Emory
- String lastName = faker.name().lastName(); // Barton
-
- String streetAddress = faker.address().streetAddress(); // 60018 Sawayn Brooks Suite 449
这将生成与代码注释中提到的名称类似的名称。文档中描述了有关如何使用 Datafaker 的更多选项,并且概述了所有虚假数据提供程序,这些提供程序将在发布更多数据提供程序时进行更新。
我希望您发现此库有用,或者如果您发现问题,请在Datafaker Github问题跟踪器中告诉我或在下面发表评论。