以下の内容はhttps://kazuhira-r.hatenablog.com/entry/2025/06/04/233203より取得しました。


Java Fakerの後継、Datafakerでフェイクデータを作成する

これは、なにをしたくて書いたもの?

以前、データベースのセットアップや性能テスト、匿名化したデータの作成といった用途でし利用することが想定された、
Fakerというライブラリーを試してみました。

Fakerでフェイクデータを作成する - CLOVER🍀

FakerはPythonのライブラリーですが、今回はJavaで似たことができるライブラリーを探してみました。

Datafaker

DatafakerのWebサイトはこちら。

Random Data Generator for Java and Kotlin - Datafaker

GitHubリポジトリーはこちら。

GitHub - datafaker-net/datafaker: Generating fake data for the JVM (Java, Kotlin, Groovy) has never been easier!

DatafakerはJavaおよびKotlin向けのフェイクデータを作成するライブラリーです。やっぱり、データベースに登録する
テストデータ、ストレステスト用のデータ、本番環境のデータの匿名化といった用途を想定しているようです。

もともとはJava Fakerというライブラリーがあったのですが、メンテナンスが止まってしまっているからかこちらのforkである
ことがDatafakerのREADME.mdに書かれています。

GitHub - DiUS/java-faker: Brings the popular ruby faker gem to Java

こんな感じですね。

This library is a modern fork of java-faker with up to date libraries and several newly added Fake Generators.

Datafakerのドキュメントはこちら。

Getting started - Datafaker

基本的な使い方はこちら。

Basic usage - Datafaker

ローカライズにも対応しています。

Usage / Different locale

DatafakerにはProviderというものがあり、2.4.0の時点で250のProviderがあるようです。

All providers - Datafaker

Base、Entertainment、Food、Sports、Videogameといったグループがあります。

AWSがあったりDraemon(ドラえもん)があったりするので、どんなものがあるのか見てみるとおもしろいかもしれません。

Aws - datafaker 2.4.3 javadoc

Doraemon - datafaker 2.4.3 javadoc

Pokemon - datafaker 2.4.3 javadoc

Zelda - datafaker 2.4.3 javadoc

それでは、簡単に使ってみましょう。

環境

今回の環境はこちら。

$ java --version
openjdk 21.0.7 2025-04-15
OpenJDK Runtime Environment (build 21.0.7+6-Ubuntu-0ubuntu124.04)
OpenJDK 64-Bit Server VM (build 21.0.7+6-Ubuntu-0ubuntu124.04, mixed mode, sharing)


$ mvn --version
Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: $HOME/.sdkman/candidates/maven/current
Java version: 21.0.7, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64
Default locale: ja_JP, platform encoding: UTF-8
OS name: "linux", version: "6.8.0-60-generic", arch: "amd64", family: "unix"

準備

Maven依存関係など。

    <properties>
        <maven.compiler.release>21</maven.compiler.release>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>net.datafaker</groupId>
            <artifactId>datafaker</artifactId>
            <version>2.4.3</version>
        </dependency>
    </dependencies>

Datafakerを使ってみる

ランダムにフェイクデータを生成するので、今回は簡単に動かして終わりにしようと思います。

作成したソースコードはこちら。

src/main/java/org/littlewings/datafaker/App.java

import java.util.List;
import java.util.Locale;
import java.util.stream.IntStream;
import net.datafaker.Faker;

public class App {
    public static void main(String... args) {
        Faker defaultFaker = new Faker();
        printFakeData(defaultFaker);

        System.out.println();
        System.out.println("=============================================================");
        System.out.println();

        Faker jaFaker = new Faker(Locale.of("ja"));
        printFakeData(jaFaker);
    }

    private static void printFakeData(Faker faker) {
        System.out.println("| First Name | Last Name | Email | University | AWS Service | Pokemon |");
        System.out.println("|------------|-----------|-------|------------|-------------|---------|");

        IntStream.rangeClosed(1, 20).forEach(i -> {
            List<String> data = List.of(
                    faker.name().firstName(),
                    faker.name().lastName(),
                    faker.internet().emailAddress(),
                    faker.university().name(),
                    faker.aws().service(),
                    faker.pokemon().name()
            );

            System.out.println("| " + String.join(" | ", data) + " |");
        });
    }
}

Localeを指定しないパターンと、日本のLocaleを使うパターンを用意しています。

        Faker defaultFaker = new Faker();
        printFakeData(defaultFaker);


        Faker jaFaker = new Faker(Locale.of("ja"));
        printFakeData(jaFaker);

生成するのは、名前、メールアドレス、大学名、AWSサービス名、ポケモン名にしてみました。

    private static void printFakeData(Faker faker) {
        System.out.println("| First Name | Last Name | Email | University | AWS Service | Pokemon |");
        System.out.println("|------------|-----------|-------|------------|-------------|---------|");

        IntStream.rangeClosed(1, 20).forEach(i -> {
            List<String> data = List.of(
                    faker.name().firstName(),
                    faker.name().lastName(),
                    faker.internet().emailAddress(),
                    faker.university().name(),
                    faker.aws().service(),
                    faker.pokemon().name()
            );

            System.out.println("| " + String.join(" | ", data) + " |");
        });
    }

これをLocaleを切り替えて実行します。

結果はこちら。

| First Name | Last Name | Email | University | AWS Service | Pokemon |
|------------|-----------|-------|------------|-------------|---------|
| Jospeh | Bednar | dorene.gutkowski@yahoo.com | Gerhold Academy | AWS Copilot | Charizard |
| Jeanice | Hammes | keenan.kutch@yahoo.com | Northern Roob Institute | AWS CloudShell | Flareon |
| Sergio | Schamberger | danelle.effertz@hotmail.com | West Grimes Academy of Vienna | Amazon Lookout for Vision | Jigglypuff |
| Rudolf | Durgan | cedrick.miller@gmail.com | Northern Mayert | AWS Network Firewall | Flareon |
| Valorie | Jacobs | erick.watsica@gmail.com | Koss Academy | Amazon SageMaker | Charmeleon |
| Tod | Dietrich | berry.mayert@gmail.com | Metz Academy | AWS Elemental MediaPackage | Blastoise |
| Bobbi | Price | dion.carter@gmail.com | Moen College | Amazon Managed Blockchain | Onix |
| Elliott | Stracke | joshua.beier@yahoo.com | South Jenkins Academy | Amazon EMR | Parasect |
| Robby | Beier | benton.feest@hotmail.com | East Walter College of Ioannina | Amazon Elastic Container Registry | Gloom |
| Sulema | Hagenes | lena.mccullough@yahoo.com | Northern Cormier College of Tokyo | Amazon Elastic Transcoder | Ivysaur |
| Wayne | Conn | jeanice.quigley@gmail.com | Northern Marks | AWS Cloud9 | Oddish |
| Merle | Armstrong | russel.berge@gmail.com | Southern Spinka Academy | AWS RoboMaker | Dodrio |
| Bradford | Roberts | dudley.ziemann@hotmail.com | Dietrich Institute | AWS PrivateLink | Charmander |
| Tamra | Russel | rhoda.mann@hotmail.com | Western Montana University | AWS Lambda | Oddish |
| Rhett | Gottlieb | andre.schuppe@yahoo.com | East Bogan College of Houston | Amazon GuardDuty | Tentacool |
| Leonel | Hodkiewicz | willy.skiles@hotmail.com | Southern Witting College of Halle-Wittenberg | Amazon Elastic Transcoder | Articuno |
| Gregorio | Reichert | tyron.jacobs@gmail.com | Western Prosacco | Amazon AppFlow | Spearow |
| Devin | Pfannerstill | sha.runte@gmail.com | North Vermont Academy | AWS CloudTrail | Abra |
| Kraig | Gulgowski | yvonne.hegmann@gmail.com | Southern Schroeder | Amazon WorkSpaces | Machoke |
| Jerry | O'Keefe | jarod.olson@gmail.com | The Sauer | AWS Global Accelerator | Arbok |

=============================================================

| First Name | Last Name | Email | University | AWS Service | Pokemon |
|------------|-----------|-------|------------|-------------|---------|
| 亮太 | 森岡 | 結衣.石山@yahoo.com | 名古屋黒田音楽大学 | AWS Application Composer | クサイハナ |
| 優 | 松尾 | 陽.西田@yahoo.co.jp | 古谷大学 | Amazon ElastiCache for Redis | ディグダ |
| 大輔 | 小野 | 光.奥野@gmail.com | 中部北医科大学 | Amazon HealthLake | ゴース |
| 悠 | 野沢 | 千代.富田@yahoo.co.jp | 黒沢医科大学 | AWS Transfer Family | ゴローニャ |
| 愛莉 | 倉田 | 大介.今野@yahoo.com | 九州岩田音楽大学 | Amazon EMR | カメックス |
| 瞳 | 佐々木 | 明.横田@yahoo.com | 四国北大学 | AWS Cloud WAN | モンジャラ |
| 優衣 | 星野 | 遥.北川@gmail.com | 北海道大野大学 | AWS IoT SiteWise | カブトプス |
| 雄大 | 村山 | 樹.渡辺@yahoo.com | 京都東芸術大学 | AWS IoT 1-Click | カブトプス |
| 浩子 | 竹村 | 洋平.熊谷@yahoo.com | 村井医科大学 | AWS Outposts | ベロリンガ |
| 太郎 | 土田 | 悠太.北島@yahoo.com | 山内音楽大学 | Amazon Managed Workflows for Apache Airflow | アーボ |
| 陽斗 | 坂田 | 良子.須田@yahoo.com | 中部宇野芸術大学 | AWS Database Migration Service | タマタマ |
| 隼人 | 内山 | 悦子.高島@gmail.com | 東京新大学 | Amazon CloudFront | コクーン |
| 茂 | 山根 | 絵美.牧野@gmail.com | 近畿豊田国際大学 | Amazon Elastic Transcoder | マタドガス |
| 君子 | 吉川 | 楓.堀@gmail.com | 関西新医科大学 | AWS Elemental MediaStore | ゴルダック |
| 直樹 | 湯浅 | 陽葵.福井@gmail.com | 三浦学院大学 | Amazon DevOps Guru | ゴルバット |
| 雄太 | 島崎 | 光.宮川@hotmail.com | 九州木村大学 | AWS Backup | ファイヤー |
| 貞子 | 富永 | 弘子.上原@yahoo.com | 四国東大学 | AWS IoT Greengrass | コクーン |
| ひなた | 湯浅 | 菜摘.竹中@yahoo.com | 名古屋北医科大学 | AWS Fargate | ゴルバット |
| 菜月 | 山川 | 雄太.児玉@hotmail.com | 東京新学院大学 | AWS Auto Scaling | ペルシアン |
| 大樹 | 長田 | 光子.中沢@gmail.com | 京都西尾工業大学 | AWS Key Management Service | ジュゴン |

Markdownで出力しているので、それぞれMarkdownとしても貼っておきます。

英語。

First Name Last Name Email University AWS Service Pokemon
Jospeh Bednar dorene.gutkowski@yahoo.com Gerhold Academy AWS Copilot Charizard
Jeanice Hammes keenan.kutch@yahoo.com Northern Roob Institute AWS CloudShell Flareon
Sergio Schamberger danelle.effertz@hotmail.com West Grimes Academy of Vienna Amazon Lookout for Vision Jigglypuff
Rudolf Durgan cedrick.miller@gmail.com Northern Mayert AWS Network Firewall Flareon
Valorie Jacobs erick.watsica@gmail.com Koss Academy Amazon SageMaker Charmeleon
Tod Dietrich berry.mayert@gmail.com Metz Academy AWS Elemental MediaPackage Blastoise
Bobbi Price dion.carter@gmail.com Moen College Amazon Managed Blockchain Onix
Elliott Stracke joshua.beier@yahoo.com South Jenkins Academy Amazon EMR Parasect
Robby Beier benton.feest@hotmail.com East Walter College of Ioannina Amazon Elastic Container Registry Gloom
Sulema Hagenes lena.mccullough@yahoo.com Northern Cormier College of Tokyo Amazon Elastic Transcoder Ivysaur
Wayne Conn jeanice.quigley@gmail.com Northern Marks AWS Cloud9 Oddish
Merle Armstrong russel.berge@gmail.com Southern Spinka Academy AWS RoboMaker Dodrio
Bradford Roberts dudley.ziemann@hotmail.com Dietrich Institute AWS PrivateLink Charmander
Tamra Russel rhoda.mann@hotmail.com Western Montana University AWS Lambda Oddish
Rhett Gottlieb andre.schuppe@yahoo.com East Bogan College of Houston Amazon GuardDuty Tentacool
Leonel Hodkiewicz willy.skiles@hotmail.com Southern Witting College of Halle-Wittenberg Amazon Elastic Transcoder Articuno
Gregorio Reichert tyron.jacobs@gmail.com Western Prosacco Amazon AppFlow Spearow
Devin Pfannerstill sha.runte@gmail.com North Vermont Academy AWS CloudTrail Abra
Kraig Gulgowski yvonne.hegmann@gmail.com Southern Schroeder Amazon WorkSpaces Machoke
Jerry O'Keefe jarod.olson@gmail.com The Sauer AWS Global Accelerator Arbok

日本語。

First Name Last Name Email University AWS Service Pokemon
亮太 森岡 結衣.石山@yahoo.com 名古屋黒田音楽大学 AWS Application Composer クサイハナ
松尾 陽.西田@yahoo.co.jp 古谷大学 Amazon ElastiCache for Redis ディグダ
大輔 小野 光.奥野@gmail.com 中部北医科大学 Amazon HealthLake ゴース
野沢 千代.富田@yahoo.co.jp 黒沢医科大学 AWS Transfer Family ゴローニャ
愛莉 倉田 大介.今野@yahoo.com 九州岩田音楽大学 Amazon EMR カメックス
佐々木 明.横田@yahoo.com 四国北大学 AWS Cloud WAN モンジャラ
優衣 星野 遥.北川@gmail.com 北海道大野大学 AWS IoT SiteWise カブトプス
雄大 村山 樹.渡辺@yahoo.com 京都東芸術大学 AWS IoT 1-Click カブトプス
浩子 竹村 洋平.熊谷@yahoo.com 村井医科大学 AWS Outposts ベロリンガ
太郎 土田 悠太.北島@yahoo.com 山内音楽大学 Amazon Managed Workflows for Apache Airflow アーボ
陽斗 坂田 良子.須田@yahoo.com 中部宇野芸術大学 AWS Database Migration Service タマタマ
隼人 内山 悦子.高島@gmail.com 東京新大学 Amazon CloudFront コクーン
山根 絵美.牧野@gmail.com 近畿豊田国際大学 Amazon Elastic Transcoder マタドガス
君子 吉川 楓.堀@gmail.com 関西新医科大学 AWS Elemental MediaStore ゴルダック
直樹 湯浅 陽葵.福井@gmail.com 三浦学院大学 Amazon DevOps Guru ゴルバット
雄太 島崎 光.宮川@hotmail.com 九州木村大学 AWS Backup ファイヤー
貞子 富永 弘子.上原@yahoo.com 四国東大学 AWS IoT Greengrass コクーン
ひなた 湯浅 菜摘.竹中@yahoo.com 名古屋北医科大学 AWS Fargate ゴルバット
菜月 山川 雄太.児玉@hotmail.com 東京新学院大学 AWS Auto Scaling ペルシアン
大樹 長田 光子.中沢@gmail.com 京都西尾工業大学 AWS Key Management Service ジュゴン

Localeを日本にした場合、メールアドレスのローカルパートがおかしなことになっていますね…。

まあ、このあたりは工夫すればいいかなとも…。

データの元ネタを見る場合は、このあたりを確認するようですね。

https://github.com/datafaker-net/datafaker/tree/v2.4.2/src/main/resources

日本語の場合はこちらです。

https://github.com/datafaker-net/datafaker/blob/v2.4.2/src/main/resources/ja.yml

こんなところでしょうか。

おわりに

フェイクデータを生成する、Java Fakerの後継であるDatafakerを試してみました。

Java Fakerの更新が止まっているな、と思っていたのですが、forkが出ているのには気づいていなかったです。

Javaでフェイクデータを生成する時には使ってみると便利かもしれませんね。




以上の内容はhttps://kazuhira-r.hatenablog.com/entry/2025/06/04/233203より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14