Subset by Example

Subset by Example is the fastest way to create an extraction model: instead of writing SQL conditions by hand, you browse the database in the Data Browser, and Jailer derives the extraction model from whatever you have navigated to. See also the step-by-step tutorial with screenshots.

What is "Subset by Example" and when should I use it?             
A Defining an extraction model manually requires knowledge of the data model and careful crafting of SQL restriction conditions. Subset by Example removes that burden: you use the Data Browser to navigate to the exact rows you want to export, then ask Jailer to turn that browsing session into a reusable extraction model.

It is the right approach when:
  • You want to export data that you can easily identify by browsing — a specific customer, an order, a test dataset — rather than by writing a WHERE clause.
  • You want to create a first working model quickly and then refine it in the Extraction Model Editor.
  • You need a one-off export and do not want to maintain a permanent extraction model.

 
How do I invoke the feature?
A Open the Data Browser and navigate to the subject table and its related tables. When you are satisfied with the data you see, right-click the subject table panel and choose one of:

Create Extraction Model Generates a .jm model file and opens it in the Extraction Model Editor so you can inspect or further refine it before exporting.
Export Data from here Generates the model internally and opens the export dialog immediately — the Extraction Model Editor is bypassed for a faster one-step export.

 
What data does Jailer use to build the model?
A Jailer analyses only the associations you actually navigated during your browsing session. For each table panel you opened in the Data Browser, the rows currently visible in that panel — including any active column filters — become the restriction condition for that association.

An association that was never followed may still be restricted: if one of its tables is visible in the browser but the other is not, the association is restricted in that direction. If neither table of an association was navigated to, that association is irrelevant for the result and does not affect the export. This means the model is as specific as your browsing was: the more precisely you navigated, the tighter the resulting restrictions.
 
 
What is the "Include parent tables" option?
A When Jailer detects parent tables (tables referenced by a foreign key of the subject or an associated table) that were not explicitly browsed, it warns you in the confirmation dialog and highlights those tables in red.

Checked (default) Parent table associations are included in the model. The export will follow those foreign keys and include the referenced parent rows, keeping referential integrity intact.
Unchecked Parent table restrictions are removed from the model. Use this when you intentionally want to export rows without their parent rows, for example because the parent data already exists at the target.

 
Where is the generated extraction model saved?
A The model is saved as a .jm file under

extractionmodel/by-example/SbE-<TableName>-<Timestamp>.jm

The timestamp ensures each session produces a uniquely named file. You can rename or move the file afterwards; the content is independent of the filename.
 
 
Can I refine the generated model before exporting?
A Yes, if you chose Create Extraction Model. The generated model opens in the Extraction Model Editor, where you can:
  • Review and edit restriction conditions for individual associations.
  • Enable or disable additional associations that were not browsed.
  • Add further subject tables or adjust the subject condition.
  • Save the model under a different name for later reuse.
If you chose Export Data from here, the model is generated and the export dialog opens directly without showing the editor. You can still open the saved .jm file later to review or modify it.
 
 
What are the limitations of Subset by Example?
A The main limitation is that the feature derives restrictions only from associations you actually navigated in the Data Browser. An association is also restricted when one of its tables was visible but the other was not (in that direction). If neither table of an association was navigated to, that association is irrelevant for the result and does not affect the export. Always review the generated model in the Extraction Model Editor — particularly the Closure view — to check which tables are reachable and tighten any unintended unrestricted associations.

Additionally, the model reflects the state of the Data Browser at the moment the feature was invoked. If the underlying data changes, you may need to regenerate or manually update the restriction conditions.