Skip to main content

In TimeXtender, the synchronization of data sources and objects is necessary to ensure that the Ingest Instance metadata matches up with that in the data source. Synchronization can be performed either as a task for the entire data source or on specific data source objects.

This article describes the difference between the synchronize task and synchronizing objects in an Ingest Instance, and when to use each feature respectively.

Synchronize Task

The synchronize task on the data source level synchronizes the structure of the source with the metadata stored in the Ingest Instance. For example, if a column is added in the source, and the Ingest Instance is configured to include all the columns from that data source table, then executing the synchronize task will ensure that the column is also added to the Ingest Instance metadata. Furthermore, when the transfer task is subsequently executed the new column will also be included. If a column is renamed in the data source, then executing the synchronize task will ensure that an invalid column name error is not thrown the next time the transfer task is executed. 

Synchronize Prepare Instance Objects

Synchronize objects in the Ingest Instance identifies Prepare instances that are impacted by structural changes in the Ingest Instance. For example, if a column is renamed in the source, and the synchronization task has been run, the Ingest Instance transfer task will succeed, but the Prepare Instance table execution (with a mapping to this field that has undergone the name change) will fail with the following error.

In this example, the “Name” column in the Currency table was renamed to “CName”. As a result, the “Name” column no longer exists in the Ingest Instance, and the next execution of the table will fail because the mapping of the field has been broken in the Prepare Instance table. Perform the following steps to resolve this type of error.

  1. Open the Prepare Instance that contains the objects to be synchronized.
  2. Right-click on the Ingest Instance and select Synchronize (<Prepare Instance Name>). 
  3. TimeXtender will identify any columns in the Prepare Instances that were affected by a change in their field name.

     

  4. In the Synchronize window, fix the broken mapping by selecting the new field name from the drop down menu. Click OK.

     

  5. Additionally, if the renamed field selected in the Synchronize window has a different data type than the target column, then TimeXtender will suggest a data type for the synchronization. Once selected, the data type of the field in the Prepare Instance table will be updated accordingly. Review the data type change and click OK.
    The data type suggestion can also be reviewed by right-clicking on the Prepare Instance data area or table, clicking Advanced, and then selecting Synchronize Data Types.

 

If a field is renamed at the source, my prepare instance is cooked no matter what? Is there a way to avoid it?


Hi @ofirb please follow the steps below is changed in the source:

If a field name is changed in the source you will get an error message similar to below when you execute the transfer task in the Ingest instance

As the transfer task completed with errors, there will be no new data in the Ingest instance storage (however old data from previous transfer task executions will still be available).

If you execute the Prepare table then it will complete successfully, but the data in the table will be based on the “old” data from previous loads in Ingest instance storage

Execute the synchronize task, and then the transfer task. The transfer task will now complete successfully again.

However the Prepare table will return an error message similar to below

To resolve this, right-click on the Ingest instance and select Synchronize (iPrepare Instance Name])

This will open the following menu. Select the new field name from the dropdown and click OK to update the mapping for Prepare field based on the new field name in the source

After this the prepare table will execute successfully again.

If you have any improvement suggestions please submit a product idea here: https://support.timextender.com/ideas


Reply