Related tables

Relational synthetic data

Use relational generation when a single flat table is not enough and downstream logic depends on joins.

Great Generator creates synthetic data. It does not anonymize, mask, de-identify, or transform production records.

Generate multiple tables

Provide table schemas, row counts, and relationships to receive a dictionary of generated DataFrames.

from great_generator import generate_relational

data = generate_relational(
    schemas={
        "customers": "customer_id int, customer_name string",
        "orders": "order_id int, customer_id int, order_total decimal(12,2)",
    },
    rows={"customers": 1000, "orders": 5000},
    relationships=["customers.customer_id -> orders.customer_id"],
)

Why it matters

Related data helps teams test joins, referential behavior, dimensional models, fact tables, and business logic without copying production records.

Write anywhere

Because the output stays as DataFrames, users can choose CSV, Parquet, Delta, JDBC, database tables, or cloud storage through their runtime.

Related documentation

Keep exploring