Skip to main content
Solved

History table

  • January 7, 2026
  • 1 reply
  • 57 views

Forum|alt.badge.img+1

I have a source table in ODX. The source only keeps record for the last 3 months. 

UUID ColumnA ColumnB ColumnC Date
1234 Xiaomi Mobile phone 125 GB 01.01.2025
5678 Apple iPad 1 TB 01.02.2025
9101 Samsung Mobile phone 256 GB 01.03.2025

 

When i am in month 4, the forst row is unavailable in the source

UUID ColumnA ColumnB ColumnC Date
5678 Apple iPad 1 TB 01.02.2025
9101 Samsung Mobile phone 256 GB 01.03.2025
11121 Google Pixel Mobile phone 256 GB

01.04.2025

 

I want to keep the history in DSA forever.
I know that if i create a history table and use UUID as unique key, i will be able to keep the history.
The question is: what if i accedently execute the table on 01.04.2025! Will i lose everything before 01.02.2025? Or will executing the table keep the history intact !

What if there are changes in the source and there is either a new column or the column name changes? I need to then deply the table. Will that keep the history?

UUID ColumnA NewName ColumnC NewColumn Date
5678 Apple iPad 1 TB Blue 01.02.2025
9101 Samsung Mobile phone 256 GB Orange 01.03.2025
11121 Google Pixel Mobile phone 256 GB Black

01.04.2025

Are there any additional steps i can take to keep the history ?

Best answer by rory.smith

Hi,

a default History table will protect your valid table from record deletion in the source. You can run it as many times as you want past the record deletion date and the record will not be deleted from the History table.

If your table has a primary key in the underlying layer (Ingest / ODX / BU) that key will be chosen by default as the Natural Key for history. Usually this is what you want, but different scenarios may require some thought there. A (default) History table will add new records, update the type 1 fields’ values if they change and update record metadata. If a Natural Key disappears from the source, that record in the History table will remain untouched (forever). You can also set an option to use Soft Deletes, which will add a field that indicates whether a record has been deleted in the source. This does come with a performance cost as this requires extracting the full set of key fields from the source table to check explicitly for deletion.

As History tables will often be the only place that you have certain data, it does mean being careful with changes to them as you cannot reload data that is no longer there in the source.

1 reply

rory.smith
TimeXtender Xpert
Forum|alt.badge.img+8
  • TimeXtender Xpert
  • Answer
  • January 7, 2026

Hi,

a default History table will protect your valid table from record deletion in the source. You can run it as many times as you want past the record deletion date and the record will not be deleted from the History table.

If your table has a primary key in the underlying layer (Ingest / ODX / BU) that key will be chosen by default as the Natural Key for history. Usually this is what you want, but different scenarios may require some thought there. A (default) History table will add new records, update the type 1 fields’ values if they change and update record metadata. If a Natural Key disappears from the source, that record in the History table will remain untouched (forever). You can also set an option to use Soft Deletes, which will add a field that indicates whether a record has been deleted in the source. This does come with a performance cost as this requires extracting the full set of key fields from the source table to check explicitly for deletion.

As History tables will often be the only place that you have certain data, it does mean being careful with changes to them as you cannot reload data that is no longer there in the source.