Use this reference to understand how the Simplified Exporter structures output files. It covers the two export modes — full table exports and incremental exports — along with chunking behaviour, the JSONL format, metadata headers, and standard fields. The exporter supports ActiveObjects (AO) tables, shared core tables, and ID mapping files.
Export files use JSONL (Newline-Delimited JSON) format for efficient streaming and processing.
The first line of every export file contains metadata about the export:
| Field | Type | Value / Description |
|---|---|---|
columns | array of objects | List of column definitions (see below) |
columns[].name | string | Name of the column |
columns[].type | string | Data type of the column (e.g. varchar, boolean, number) |
columns[].size | integer | Column size or precision; -1 indicates unlimited |
columns[].nullable | boolean | Whether the column accepts null values |
primaryKeys | array of strings | List of primary key column names (e.g. ["id"]) |
table | string | Name of the exported table/entity |
rowCount | integer | Total number of data records (excluding metadata row) |
exportTime | string | Timestamp indicating when the export file was generated. |
metadata | boolean | Always true for the metadata header row. |
Example Metadata line (formatted for readability)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72{ "table": "AO_6FF49D_DOMAIN_SCAN", "columns": [ { "name": "BLOCKED_DOMAINS_COUNT", "type": "number", "size": 64, "nullable": true }, { "name": "DISTINCT_DOMAINS_COUNT", "type": "number", "size": 64, "nullable": true }, { "name": "EXECUTION_TIME", "type": "number", "size": 64, "nullable": true }, { "name": "FINISHED_AT", "type": "number", "size": 64, "nullable": true }, { "name": "ID", "type": "varchar", "size": -1, "nullable": false }, { "name": "LOOKUP_METHOD", "type": "varchar", "size": -1, "nullable": true }, { "name": "STARTED_AT", "type": "number", "size": 64, "nullable": true }, { "name": "STATUS", "type": "varchar", "size": -1, "nullable": true }, { "name": "DELETED", "type": "boolean", "size": 1, "nullable": false }, { "name": "TXN_SEQUENCE", "type": "integer", "size": 19, "nullable": false } ], "primaryKeys": [ "ID" ], "rowCount": 0, "exportTime": "2026-04-17T05:30:07.477354Z", "metadata": true }
Each subsequent line is a complete data record. The metadata flag is only present (and true) on the header row; data records do not include it.
Example Data Record line (formatted for readability)
1 2 3 4 5 6 7 8 9 10 11 12 13{ "BLOCKED_DOMAINS_COUNT":0, "DISTINCT_DOMAINS_COUNT":1, "EXECUTION_TIME":3923, "FINISHED_AT":1773982903301, "ID":"821a09b3-8593-4c4b-a636-e483564f4d01", "LOOKUP_METHOD":"UMS", "STARTED_AT":1773982899378, "STATUS":"FINISHED", "DELETED":false, // Added by migration platform "TXN_SEQUENCE":0 // Added by migration platform }
Note: Exports include DELETED and TXN_SEQUENCE values for all data records.
Files may be a full table export for an initial snapshot, or incremental changes after the snapshot. The file format
is identical for both types of exports, the only difference is the incremental will make use of the DELETED and
TXN_SEQUENCE columns to flag changes.
Complete snapshot of all table data at export time.
DELETED and TXN_SEQUENCE fieldsDELETED: false and TXN_SEQUENCE: 0 for all recordsCaptures only changes since last export using Change Data Capture.
DELETED indicates operation type, TXN_SEQUENCE tracks change orderWhen consuming incremental export files, the row with the highest TXN_SEQUENCE value for a key, should be retained. Each row
is a complete data record for that key in the table. There is no need to retain data for earlier TXN_SEQUENCE rows
for that key, or reconstruct changes.
Exports are automatically split into multiple files to manage file sizes:
Every exported record includes two standard fields:
booleanfalsetrue for DELETE operations, false for INSERT/UPDATEinteger (large integer)0The migration platform provides two fields for all data records. These are "DELETED" and "TXN_SEQUENCE". These two values are provided as multiple data types are incrementally exported from the DC instance. While parallelising the import of the export file specification files, you can use the TXN_SEQUENCE field to know which entry is the latest for that migration.
Example SQL
1 2 3 4 5 6 7 8 9INSERT INTO event_file_data (cloud_url, table_name, primary_key, value, deleted, txn_sequence, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT ON CONSTRAINT pk_event_file_data DO UPDATE SET value = EXCLUDED.value, deleted = EXCLUDED.deleted, txn_sequence = EXCLUDED.txn_sequence, updated_at = EXCLUDED.updated_at WHERE EXCLUDED.txn_sequence > event_file_data.txn_sequence;
Rate this page: