Struct Mask (StructMaskGenerator)
The Struct Mask generator applies selected generators to specific StructFields within a StructType in a Spark database.
Link object structure
For the Struct Mask generator, there is a link object for each path expression value to assign a sub-generator to.
The generator does not itself support consistency or differential privacy.
The metadata
object is populated from the JsonMaskMetadata
object, and includes:
pathExpression
, which is the expression that identifies the value to apply the sub-generator to.The types of values to apply the sub-generator to.
The
subGeneratorMetadata
object, which identifies and configures the selected sub-generator.
{
"schema": "string",
"table": "string",
"column": "string"
"metadata": {
"generatorId": "StructMaskGenerator",
"customValueProcessor": "string" //If custom value processor applied
"pathExpression": "string",
"jsonFilterTypes": [ enum ],
"subGeneratorMetadata": {
"presetId": "string",
"generatorId": "string",
//Metadata for the selected sub-generator
"customValueProcessor": "string", //If custom value processor applied to the sub-generator
}
}
Example replacement
In the following example replacement for the StructMask generator:
The value at the path expression
$.address.city
is assigned the Address generator. The generator is configured to produce a city value. Consistency is disabled.The value at the path expression
$.address.zip
is also assigned the Address generator. The generator is configured to produce a zip code value. Consistency is disabled.
{
"name": "value",
"schema": "",
"table": "simple_struct",
"links": [
{
"schema": "",
"table": "simple_struct",
"column": "value",
"metadata": {
"generatorId": "StructMaskGenerator",
"presetId": "StructMaskGenerator",
"pathExpression": "$.address.city",
"jsonFilterTypes": [
0
],
"subGeneratorMetadata": {
"presetId": "AddressGenerator",
"generatorId": "AddressGenerator",
"addressType": "City",
"isConsistent": false
}
}
},
{
"schema": "",
"table": "simple_struct",
"column": "value",
"metadata": {
"generatorId": "StructMaskGenerator",
"presetId": "StructMaskGenerator",
"pathExpression": "$.address.zip",
"jsonFilterTypes": [
0
],
"subGeneratorMetadata": {
"presetId": "AddressGenerator",
"generatorId": "AddressGenerator",
"addressType": "ZipCode",
"isConsistent": false
}
}
}
]
}
Last updated
Was this helpful?