Datasets
General
When you run a rule, a dataset is generated with the result of the execution. This new dataset can be a subsets (for example using operations like limit or include/exclude) or full datasets.
The datasets can be downloaded to local folder (JSON or CSV) or can be loaded into one of the available sinks.
Load
To load a dataset into a sink, the sink must be added to the model. You can find more information about how to add a sink to the model in the Sinks page.
Once executed, a job will be created where you can see the progress of the load.
UI Options
The Datasets page provides several interaction options for each dataset in the table:
| Action | Description |
|---|---|
| Download | Download the dataset in either JSON or CSV format |
| Refresh | Refresh the dataset information |
| Share | Create a shareable link to the dataset |
| Delete | Remove the dataset from the system |
Share Functionality
The Share button allows you to create public URLs to share your datasets. When you click the Share button:
- If you have only one API key in your project, it automatically creates a shareable endpoint
- If you have multiple API keys, you'll be prompted to select which one to use
Share URL Structure
Once shared, datasets are accessible via URLs with the following structure:
[protocol]//[hostname]/api/[organization]/[project]/model/[model-seq]/dataset/[dataset-seq]For example:
https://yourserver/api/acme-corp/sales-data/model/1/dataset/42URL Parameters
You can customize the shared URL with additional parameters:
| Parameter | Values | Description |
|---|---|---|
format | json-zip, csv-zip, sql | Specify the download format for the dataset |
Example URLs with parameters:
https://yourserver/api/acme-corp/sales-data/model/1/dataset/42?format=json-ziphttps://yourserver/api/acme-corp/sales-data/model/1/dataset/42?format=csv-ziphttps://yourserver/api/acme-corp/sales-data/model/1/dataset/42?format=sql
Sharing UI Details
When you click the Share button, the row expands to show:
- API Endpoint: The full URL to access your dataset
- Format Selector: Dropdown to choose the format (JSON ZIP, CSV ZIP, SQL)
- Copy Button: Copy the URL with selected format to clipboard
- Call Counter: Shows how many times the endpoint has been accessed
- Delete Option: Remove the API endpoint if no longer needed
ASCII Representation of Dataset Table
┌──────────────────────────────────────────────────────────────────────────────────────────────┐
│ Dataset Name Rule Last Updated Created By Size Actions │
├──────────────────────────────────────────────────────────────────────────────────────────────┤
│ customers_2023 filter 2 hours ago John Doe 2.4 MB Download Share Delete │
│ products_filtered select 1 day ago Jane Smith 15.7 MB Download Share Delete │
└──────────────────────────────────────────────────────────────────────────────────────────────┘When you click the Share button for a dataset, the row expands:
┌──────────────────────────────────────────────────────────────────────────────────────────────┐
│ Dataset Name Rule Last Updated Created By Size Actions │
├──────────────────────────────────────────────────────────────────────────────────────────────┤
│ customers_2023 filter 2 hours ago John Doe 2.4 MB Download Share Delete │
├──────────────────────────────────────────────────────────────────────────────────────────────┤
│ ┌── GET ────┐ https://yourserver/api/org/proj/model/1/dataset/42 [Copy] │
│ │ # calls │ [Delete] │
│ └───────────┘ ?format= [json-zip ▼] │
└──────────────────────────────────────────────────────────────────────────────────────────────┘This expanded view shows the shareable URL, allows you to select different formats, and provides options to copy the URL or delete the endpoint.
Backup Datasets
A job that writes anonymized data back into the tap it reads from (destination Overwrite current tap) changes your source data in place. A backup dataset keeps the original rows the job overwrites, so you can restore them.
Creating a backup
In the To panel of the new job dialog, choose Overwrite current tap and check Generate a backup (This will create a backup dataset of the current tap.). The checkbox is only enabled with that destination.
| Requirement | Detail |
|---|---|
| Overwrite current tap destination | Needs the Overwrite current tap role and a tap that allows being overwritten |
| Generate a backup checkbox | Needs the Create backups role. Off by default |
The backup needs the Update or Merge load mode, which write back only the rows the job reads. With another load mode the job fails before touching the tap: The backup of the tap needs the update or merge load mode.
The job:
- Creates the backup dataset before writing anything, named
backup-<tap>-<model>-<n>in lowercase, where<n>is a sequence number for that tap and model. The dataset is linked to the job and to its rule. - Copies each row into it as it reads it from the tap, before the rule changes it.
- Saves every batch in the backup before writing that batch to the tap.
If the backup dataset cannot be created, the job stops without touching the tap: Backup creation failed: ... Aborting job to prevent data loss. If a batch cannot be saved in the backup, the job stops before that batch is written to the tap.
The job log shows these steps as backup messages: Creating backup dataset,
Backup dataset created: <name>, and one backed up <entity> (N rows read)
per table. The job details show the backup under Backup (or No backup
generated).
If the job is restarted, it reuses the backup it already made (Reusing existing backup dataset) instead of creating a new one and keeps what it already saved. A row whose primary key is already in the backup is not copied again, so the backup keeps its original values; rows without a primary key are copied again. Rerun starts a new job, which makes a new backup. See Jobs.
Backups page
Backup datasets are not listed on the Datasets page. They have their own Backups page in the model menu, after Datasets, with the subtitle Backup datasets that can be used to restore the original data in your data source. The menu item only appears when the model has at least one backup and you have the View sensitive data role, because backups contain real data.
┌───────────────────────────────────────────────────────────────────────────────────────────────┐
│ Backups │
│ Backup datasets that can be used to restore the original data in your data source. │
├───────────────────────────────────────────────────────────────────────────────────────────────┤
│ Name Rule Last updated Created by Size Schema │
├───────────────────────────────────────────────────────────────────────────────────────────────┤
│ ● [Rollback] backup-crm-customers-3 mask-pii 1 hour ago John Doe 2 GB v4 Latest │
│ ● [Rollback] backup-crm-customers-2 mask-pii 3 days ago John Doe 2 GB v3 │
└───────────────────────────────────────────────────────────────────────────────────────────────┘| Action | Description |
|---|---|
| Rollback | Restores the tap from the backup. Enabled when the job that made the backup is completed or failed, the backup is not empty, you have the Overwrite current tap role and the tap allows being overwritten |
| Rename | Changes the name of the backup |
| Delete | Deletes the backup |
| Copy | Opens the new job dialog to copy the backup into a new dataset |
In the table, Rename, Delete and Copy need the Delete datasets role. Backups cannot be downloaded or shared from the interface: the page of a backup has no download buttons, and without the View sensitive data role it shows an access denied page. Its toolbar has Rename, Delete and Rollback (instead of Load). Rollback is enabled there under the same conditions as in the table.
A backup holds the original, non-anonymized data of the tap. A Copy of a backup is a normal dataset: it is listed on the Datasets page and can be downloaded and shared like any other dataset.
Rolling back
Click Rollback on the Backups page or on the backup page. A confirmation shows what the rollback will do:
┌───────────────────────────────────────────────────────────────────┐
│ Are you sure you want to rollback this dataset? │
├───────────────────────────────────────────────────────────────────┤
│ This will restore the tap data from this backup dataset. │
│ The current tap data will be updated. │
│ │
│ Rollback Options │
│ Destination Overwrite current tap │
│ Load mode Update │
│ Dictionary None │
├───────────────────────────────────────────────────────────────────┤
│ [Cancel] [Yes, rollback] │
└───────────────────────────────────────────────────────────────────┘Yes, rollback starts a load job from the backup into the model tap right
away. It reuses the options of the job that made the backup, with two changes:
the load mode is Update, so the rows in the tap are updated with the values
in the backup, and no dictionary is used. The job
appears with the type rollback in the job lists. Starting a rollback needs
the Run load job and Overwrite current tap roles, and a tap that allows
being overwritten, the same as a job with the Overwrite current tap
destination. The server checks them too: without the roles the rollback is
denied, and if the tap does not allow being overwritten it fails with This tap
is not allowed to be overwritten.
The rollback is recorded in data lineage as a restore of the tap from the backup, with no rule and no transformation.
Job with backup Rollback
─────────────── ────────
tap ──copy──▶ backup-crm-customers-3 backup-crm-customers-3
tap ◀──anonymized rows── rule │ load, mode Update
▼
tap (original values)The rollback fails with Rollback dataset not found, Original job not found for this rollback dataset or Model does not have an associated tap when the backup, the job that made it, or the model tap no longer exist.