You are a data steward for a health care insurer, and you need to encrypt personal information about your insurance policy holders. The schema of the data source might vary, so you need to use a dynamic mapping.
You need a dynamic mapping that reads data from a source, encrypts all string data using a Data Masking transformation, and writes the modified data to a target. Since the Data Masking transformation does not support dynamic functionality, you need to use a Macro transformation to enable dynamic functionality for a mapplet that contains the Data Masking transformation. The Macro transformation allows mapplet transformation logic to act as dynamic mapping logic by accepting input with any number of string ports and passing each string input port through a copy of the data masking mapplet.
To use the Macro transformation, you perform the following steps:
Configure the mapplet.
Configure the dynamic mapping with the Macro transformation.
Run the mapping.
Configure the mapplet
Before you configure the Macro transformation, you create a mapplet that performs the data encryption. The mapplet includes an Input transformation, a Data Masking transformation, and an Output transformation. The Input transformation has one port of type string that connects to the input group of the Data Masking transformation. In the Data Masking transformation, you set a masking type for the port and then connect the output port to the Output transformation.
The following image shows the mapplet:
Configure the mapping
After you configure the mapplet, you configure the dynamic mapping. You create a mapping that reads from a parameterized source and configure the mapping to get the column names at run time. Then you add a Macro transformation to the dynamic mapping and select the data masking mapplet as the macro instruction.
You connect the Read transformation port group to the input port
StringInput
and to the input passthrough port
InputPassThrough
. You configure the input rule for
StringInput
to include only string type ports.
Finally, you add a Write transformation to the mapping and configure it to define ports by the mapping flow. You connect the Macro transformation output group to the Write transformation dynamic input port.
The following image shows the dynamic mapping:
Run the mapping
When you run the mapping, the mapping determines the ports from the data source. The Macro transformation creates a copy of the mapplet for each string input port and passes each string port through a copy of the mapplet. The Data Masking transformation encrypts the string data, and passes the output back to the mapping through the Macro transformation. The mapping writes the encrypted string data and the unchanged decimal data to the target.