TDM enables users to provision tables in a TDM task. To do this, users can select one of the following two options:
Users can either store the extracted tables in Fabric for later use, or set the task retention period to Do not retain in order to load the tables directly into the target environment without persisting them in Fabric.
Each table is stored in Fabric within the TDM_TableLevel LU. Each task execution stores every table as a separate LU Instance (LUI), representing an independent data snapshot.
For example, running two executions of a task that extracts the Product_Mapping table results in two separate LUIs in the TDM_TableLevel LU.
[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
Starting with TDM 9.5 onwards, the performance of table-level tasks has been improved by processing table partitions in parallel, significantly reducing execution time for large tables.
Each table partition is handled as a separate LUI by the task execution batch process for extract or extract & load processes.
LUI format:
[source environment name]|[DB interface name]|[DB schema name]|[table name]|[task execution id]|[partition number]
Example:
Each LUI contains the following tables:
TDM_REF_ROOT
A dynamic SQLite table, which has the same structure as the source table and contains the extracted table records. The naming convention for this table is:
__t_<source table name>
/*sqlite*/ insert into TDM_TableLevel.__t_case_note (case_id,note_id,note_date,note_text) values(?,?,?,?);
Note:
Import the TDM_TableLevel LU and deploy it.
This step is required for:
The RefList MTable contains the following fields:
lu_name — Populated by the LU name to allow selection of the related table in a TDM task based on the task's LUs. Alternatively, if you wish to run the table in a table-level task, populate the lu_name with TDM_TableLevel.
id — An incrementing number.
reference_table_name — Populated with the table name in the source environment.
interface_name — The table's source interface.
schema_name — Populated with the name of the source DB schema that stores the table.
target_ref_table_name — An optional parameter. Populate it when the table names in the source and target differ. If not provided, the target table name is taken from the reference_table_name field.
target_interface_name — The table's target interface.
target_schema_name — Populated with the name of the target DB that stores the table.
table_pk_list — An optional setting. Populated with the list of the target table's PK fields in the RefList object. These fields can be used later for customizing the load flow to run an Upsert on the target table.
truncate_indicator — By default, TDM runs a delete on the table in the target environment before loading it. If you have permission to run a truncate on the target table and need to use the truncate instead of delete (e.g., the target DB is Cassandra), set this indicator to true.
count_indicator — This setting is set to true by default, enabling counting the number of records in the source or target, as a way to monitor task execution. Set this indicator to false, if required, to disable counting records in the target.
count_flow - Populated with the name of a customized flow that returns the table record count. The flow must expose a single external output parameter named tableCount.
Note that starting with TDM V9.4 onwards, the schema_name and target_schema_name fields can be populated with either of the following options:
Schema name
Global name. Add a @ sign before and after the Global name to indicate that the schema name should be taken from the Global's value. For example: @CUSTOMER_SCHEMA_NAME@. Using a Global to populate the schema is useful when different environments have different schema names.
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 when required.
Run the Discovery job on the table's interfaces. Following the job completion, the interface metadata is retrieved from the Catalog.
The TableLevelInterfaces MTable enables implementors to exclude interfaces from the table-level tasks or define special handling rules for a given interface.
By default, this MTable is populated with the TDM and POSTGRESQL_ADMIN interfaces in order to prevent the TDM tasks from selecting the TDM tables. It is possible to populate additional DB interfaces, either to exclude them from table selection in the TDM task or to apply special handling to their tables. Each DB interface requires its own record. The following settings should be populated for each record:
TDM enables customization of the default task execution logic for a specific interface type, interface, schema, or table, including the following capabilities:
TDM enables users to provision tables in a TDM task. To do this, users can select one of the following two options:
Users can either store the extracted tables in Fabric for later use, or set the task retention period to Do not retain in order to load the tables directly into the target environment without persisting them in Fabric.
Each table is stored in Fabric within the TDM_TableLevel LU. Each task execution stores every table as a separate LU Instance (LUI), representing an independent data snapshot.
For example, running two executions of a task that extracts the Product_Mapping table results in two separate LUIs in the TDM_TableLevel LU.
[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
Starting with TDM 9.5 onwards, the performance of table-level tasks has been improved by processing table partitions in parallel, significantly reducing execution time for large tables.
Each table partition is handled as a separate LUI by the task execution batch process for extract or extract & load processes.
LUI format:
[source environment name]|[DB interface name]|[DB schema name]|[table name]|[task execution id]|[partition number]
Example:
Each LUI contains the following tables:
TDM_REF_ROOT
A dynamic SQLite table, which has the same structure as the source table and contains the extracted table records. The naming convention for this table is:
__t_<source table name>
/*sqlite*/ insert into TDM_TableLevel.__t_case_note (case_id,note_id,note_date,note_text) values(?,?,?,?);
Note:
Import the TDM_TableLevel LU and deploy it.
This step is required for:
The RefList MTable contains the following fields:
lu_name — Populated by the LU name to allow selection of the related table in a TDM task based on the task's LUs. Alternatively, if you wish to run the table in a table-level task, populate the lu_name with TDM_TableLevel.
id — An incrementing number.
reference_table_name — Populated with the table name in the source environment.
interface_name — The table's source interface.
schema_name — Populated with the name of the source DB schema that stores the table.
target_ref_table_name — An optional parameter. Populate it when the table names in the source and target differ. If not provided, the target table name is taken from the reference_table_name field.
target_interface_name — The table's target interface.
target_schema_name — Populated with the name of the target DB that stores the table.
table_pk_list — An optional setting. Populated with the list of the target table's PK fields in the RefList object. These fields can be used later for customizing the load flow to run an Upsert on the target table.
truncate_indicator — By default, TDM runs a delete on the table in the target environment before loading it. If you have permission to run a truncate on the target table and need to use the truncate instead of delete (e.g., the target DB is Cassandra), set this indicator to true.
count_indicator — This setting is set to true by default, enabling counting the number of records in the source or target, as a way to monitor task execution. Set this indicator to false, if required, to disable counting records in the target.
count_flow - Populated with the name of a customized flow that returns the table record count. The flow must expose a single external output parameter named tableCount.
Note that starting with TDM V9.4 onwards, the schema_name and target_schema_name fields can be populated with either of the following options:
Schema name
Global name. Add a @ sign before and after the Global name to indicate that the schema name should be taken from the Global's value. For example: @CUSTOMER_SCHEMA_NAME@. Using a Global to populate the schema is useful when different environments have different schema names.
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 when required.
Run the Discovery job on the table's interfaces. Following the job completion, the interface metadata is retrieved from the Catalog.
The TableLevelInterfaces MTable enables implementors to exclude interfaces from the table-level tasks or define special handling rules for a given interface.
By default, this MTable is populated with the TDM and POSTGRESQL_ADMIN interfaces in order to prevent the TDM tasks from selecting the TDM tables. It is possible to populate additional DB interfaces, either to exclude them from table selection in the TDM task or to apply special handling to their tables. Each DB interface requires its own record. The following settings should be populated for each record:
TDM enables customization of the default task execution logic for a specific interface type, interface, schema, or table, including the following capabilities: