Relational Database and Warehouse Subsetting
A database subset is smaller than the source database, with a subset of rows from each table while retaining the key relationships in each table. Database subsetting is complex due to numerous challenges:
1. When selecting a subset of rows from a table, you must also get the rows of related tables.
2. A relational constraint may be on multiple columns (Composite keys). In this case a subset requires rows of related tables using the multiple column constraint.
3. Some tables may have no foreign key columns but may have other tables that have foreign keys referencing the table.
4. Cyclical dependencies. Table A has a foreign key to table B and table B has a foreign key back to table A.
Windocks solves these challenges with a simple visual interface. Start by specifying a percent of the source database size, with or without bias controls, and delivery to the same or different database instance. Windocks subsetting does not write to the source database (the one being subsetted).

Managing multi-tenant databases
Subsetting based on tenant ID is a common use for Windocks Subsetter. A multi-tenant database may grow to a size that hinders performance. The easy solution is to divide the tenants into two (or more) databases, using tenant ID.
Subsets for lower level environments
Large databases and warehouses with lots of historical data benefit from being slimmed down for data science and analytics. The slimmed down databases are more easily provisioned for dev/test, ML, and predictive analytics. A smaller database also can be more easily data privacy protected, and poses a smaller overall security risk.
