TDM enables the user to provision tables in a TDM task. The user can select 1 of the following 2 options:
The user can store the tables in Fabric for a later use or set the task's retention period to Do not retain in order to load the tables directly to the target environment without saving them to Fabric. Note that the table and DB schema names must be identical in the source and target DBs.
Each table is stored in Fabric as a separate LUI in the TDM_TableLevel LU, and each execution is stored as a separate LUI (a separate data snapshot). For example: running 2 executions of a task that extract Product_Mapping table. Each execution creates a separate LUI (snapshot).
The LUI format is as follows:
[source environment name]|[DB interface name]|[DB schema name]|[table name]|[task execution id]
Examples:
SRC|CRM_DB|public|case_note|102822
SRC|CRM_DB|public|case_note|102826
SRC|BILLING_DB|public|contract_offer_mapping|102826
Each LUI contains the following tables:
TDM_REF_ROOT
A dynamic SQLite table created with the structure of the source table and contains the extracted table records. The dynamic SQLite table naming convention is:
__t_<source table name>
/*sqlite*/ insert into TDM_TableLevel.__t_case_note (case_id,note_id,note_date,note_text) values(?,?,?,?);
Notes:
A TDM implementation has the following steps:
Import and deploy the TDM_TableLevel LU.
This step is required for Entities & referential data tasks. The list of referential tables available for a TDM task for a Business entity and referential data is populated in the RefList MTable object. Populate the RefList with the list of available related tables for each LU. The following settings should be populated for each record:
lu_name - populated by the LU name to enable a selection of the related table in a TDM task based on the task's LUs.
id - populated by an increment number.
reference_table_name - populated by the table name in the source environment.
schema_name - populated by the source DB schema's name that stores the table.
interface_name - the table's source interface.
target_ref_table_name - this is an optional parameter. It can be populated when the table names are different in the source and target. If empty, the target table name will be taken from the reference_table_name field.
target_schema_name - populated by the target DB schema's name that stores the table.
target_interface_name - the name of the table's target interface.
table_pk_list - an optional setting. Populated by the list of the target's PK fields in the RefList object. These fields can be later used to customize the load flow to run an Upsert on the target table.
truncate_indicator - by default, the TDM runs a delete on the table in the target environment before loading it. If you have a permission to run a truncate on the target table and you need to use the truncate instead of the delete (e.g., the target DB is Cassandra), set this indicator to true.
count_indicator - is set to true, by default, for counting the number of records in the source or target, in order to monitor the task execution. Set the indicator to false, if required, in order to avoid counting the records in the target.
count_flow - an optional setting. Populate this setting to run a project's Broadway flow to get the count (number of records) in the source or target.
Click here for more information about MTable objects.
The TDM table flow uses Fabric Catalog masking. You can edit the PII settings in the Catalog if needed.
Running the discovery for the DB interfaces. Note that once job is completed, the interface metadata will be retrieved from the Catalog.
The TableLevelInterfaces MTable enables to either disable a tables' selection from a given DB or set a special handling for the tables that belong to a given DB.
By default, the MTable is populated with the TDM DBs to disable a selection of TDM tables by a TDM task. It is possible to populate additional DB interfaces in order to exclude them from the table selection in the TDM task or in order to set a special handling for their tables. A separate record needs to be set for each DB interface. The following settings should be populated for each record:
TDM enables the user to provision tables in a TDM task. The user can select 1 of the following 2 options:
The user can store the tables in Fabric for a later use or set the task's retention period to Do not retain in order to load the tables directly to the target environment without saving them to Fabric. Note that the table and DB schema names must be identical in the source and target DBs.
Each table is stored in Fabric as a separate LUI in the TDM_TableLevel LU, and each execution is stored as a separate LUI (a separate data snapshot). For example: running 2 executions of a task that extract Product_Mapping table. Each execution creates a separate LUI (snapshot).
The LUI format is as follows:
[source environment name]|[DB interface name]|[DB schema name]|[table name]|[task execution id]
Examples:
SRC|CRM_DB|public|case_note|102822
SRC|CRM_DB|public|case_note|102826
SRC|BILLING_DB|public|contract_offer_mapping|102826
Each LUI contains the following tables:
TDM_REF_ROOT
A dynamic SQLite table created with the structure of the source table and contains the extracted table records. The dynamic SQLite table naming convention is:
__t_<source table name>
/*sqlite*/ insert into TDM_TableLevel.__t_case_note (case_id,note_id,note_date,note_text) values(?,?,?,?);
Notes:
A TDM implementation has the following steps:
Import and deploy the TDM_TableLevel LU.
This step is required for Entities & referential data tasks. The list of referential tables available for a TDM task for a Business entity and referential data is populated in the RefList MTable object. Populate the RefList with the list of available related tables for each LU. The following settings should be populated for each record:
lu_name - populated by the LU name to enable a selection of the related table in a TDM task based on the task's LUs.
id - populated by an increment number.
reference_table_name - populated by the table name in the source environment.
schema_name - populated by the source DB schema's name that stores the table.
interface_name - the table's source interface.
target_ref_table_name - this is an optional parameter. It can be populated when the table names are different in the source and target. If empty, the target table name will be taken from the reference_table_name field.
target_schema_name - populated by the target DB schema's name that stores the table.
target_interface_name - the name of the table's target interface.
table_pk_list - an optional setting. Populated by the list of the target's PK fields in the RefList object. These fields can be later used to customize the load flow to run an Upsert on the target table.
truncate_indicator - by default, the TDM runs a delete on the table in the target environment before loading it. If you have a permission to run a truncate on the target table and you need to use the truncate instead of the delete (e.g., the target DB is Cassandra), set this indicator to true.
count_indicator - is set to true, by default, for counting the number of records in the source or target, in order to monitor the task execution. Set the indicator to false, if required, in order to avoid counting the records in the target.
count_flow - an optional setting. Populate this setting to run a project's Broadway flow to get the count (number of records) in the source or target.
Click here for more information about MTable objects.
The TDM table flow uses Fabric Catalog masking. You can edit the PII settings in the Catalog if needed.
Running the discovery for the DB interfaces. Note that once job is completed, the interface metadata will be retrieved from the Catalog.
The TableLevelInterfaces MTable enables to either disable a tables' selection from a given DB or set a special handling for the tables that belong to a given DB.
By default, the MTable is populated with the TDM DBs to disable a selection of TDM tables by a TDM task. It is possible to populate additional DB interfaces in order to exclude them from the table selection in the TDM task or in order to set a special handling for their tables. A separate record needs to be set for each DB interface. The following settings should be populated for each record: