Sample BDT Policy File
The following is a sample BDT policy:
{
"id": "5ec94388-ae95-4c98-8803-b004f83efaa", /* Transformation policy id. */
"name": "FileTransformation", /* Name of the policy. */
"source": { /* Details of the data source. */
"@type": "CSV_FILE", /* Source type. Supports CSV_FILE, FIXED_LENGTH_FILE, ORACLE, SQL_SERVER, MYSQL, DB2, HANA. */
"filepath": "input.csv", /* The filepath relative to the inputDir or outputDir path in the config file. */
"delimiter": ",", /* The character that is used to divide one column from the next in the input file. */
"qualifier": "\"", /* The character to enclose fields that contain a delimiter character. This is used when source is a file and the delimiter character is itself a part of the data to be transformed. So to tell BDT that this is not a delimiter, user can enclose input data by a qualifier and mention qualifier here in this field. */
"unescapeInput": false, /* True or false. Default value is false. If "true", delimiter and qualifier characters in input preceded by a backslash (\) are considered as normal characters and part of the input data. */
"columnCount": "5", /* Number of columns in the input file. */
"hasHeaderRow": false /* True or false. Default value is false. If "true", the utility will treat the first row as header row. Values from this row will be treated as column names. The same column names should be mentioned in the transformation action. If "false", the utility will treat all the rows as data to be transformed. */
},
"destination": { /* Details of the data destination. */
"@type": "CSV_FILE", /* Destination type. Supports CSV_FILE, FIXED_LENGTH_FILE, ORACLE, SQL_SERVER, MYSQL, DB2, HANA. */
"filepath": "output.csv" /* The filepath relative to the inputDir or outputDir path in the config file. */
},
"tables": [ /* List of the table to transform. */
{
"sourceTable": "demoTable", /* Name of the source table. */
"destinationTable": "demoTableEnc", /* Name of the destination table. */
"columns": [ /* List of the columns that should be transformed. */
{
"name": "COLUMN2", /* Name of the column. */
"action": "ENCRYPT", /* Specifies the action to be taken. Supports ENCRYPT, DECRYPT, TOKENIZE, DETOKENIZE, REKEY. */
"config": [
{
"@type": "FPE", /* Config type. Supports AES_CBC_PAD, AES_CTR, FPE, FF1, TOKENIZE, DESede. */
"key": "KEY-NEW", /* Name of the encryption key. */
"tweak": "010ACD5B99F34CF8", /* FPE tweak. */
"characterSet": "digits" /* Name of the charset. */
}
]
},
{
"name": "COLUMN3", /* Name of the column. */
"action": "ENCRYPT", /* Specifies the action to be taken. Supports ENCRYPT, DECRYPT, TOKENIZE, DETOKENIZE, REKEY. */
"config": [
{
"@type": "FPE", /* Config type. Supports AES_CBC_PAD, AES_CTR, FPE, FF1, TOKENIZE, DESede. */
"key": "KEY-NEW", /* Name of the encryption key. */
"tweak": "010ACD5B99F34CF8", /* FPE tweak. */
"characterSet": "digits" /* Name of the charset. */
}
]
}
],
"subset": { /* Table-specific data filter criteria. Filter input data based on this criteria. */
"limit": 1000, /* Maximum number of rows to be transformed. */
"recurrency": 2, /* Select every nth row for transformation. Default value is 1. */
"filters": [{ /* Subset-specific filters to be used. */
"selector": "COLUMN1", /* Name of the column. */
"operator": "!=", /* Specifies the operator to use. */
"expression": "CA" /* Expression to evaluate filter on selector using specified operator. */
}]
}
}
],
"createBadRecordFile": true /* True or false. Default value is false. Set to "true" to create a ".failed file", otherwise set to "false". */
}