About Shuffle Rules
Published 22 March 2018
Shuffle rules are designed to randomly re-distribute the data in a table column. This effect is similar to the shuffling of a deck of cards (hence the name Shuffle rule). Each Shuffle rule affects only the specified columns in the target table. All other columns in the table remain unaffected.
For example if a EMP table originally contained the data...
EMP_ID EMP_FIRSTNAME EMP_LASTNAME 1 Bill Smith 2 Sally Jones 3 William Green 4 Ben White 5 Jane Doe 6 Amanda Smith 7 Fred Black 8 Jim Archer
and a Shuffle rule was applied to the EMP_LASTNAME column then after executing the Masking Set the content of the EMP table might look like...
EMP_ID EMP_FIRSTNAME EMP_LASTNAME 1 Bill Black 2 Sally White 3 William Smith 4 Ben Jones 5 Jane Archer 6 Amanda Green 7 Fred Smith 8 Jim Doe
The contents of the EMP_LASTNAME column have been re-arranged in a random order but the data in the other columns (EMP_ID and EMP_FIRSTNAME) has remained the same.
Important Note: It is possible to configure a Shuffle rule to operate on more than one column. In this case the columns are kept together when shuffling. If multiple columns are configured within the same Shuffle rule they will not independently shuffled. The values in the collection of columns will be kept together as they are shuffled among the table rows. If it is required to shuffle multiple columns in a table independently of each other then multiple Shuffle rules must be used.
One of the interesting benefits of Shuffle rules is that if applied against a column of number data they can scramble the contents of a table column while still preserving the total sum of the column. Since no new data has been added, (the numbers have just been moved around), the total of all of the numbers will remain the same.
One of the drawbacks of Shuffle rules is that the original data remains in place. Sometimes data is useful by itself even if it is not associated with the other data in the row. For example a Shuffle rule is probably not appropriate for a column of email addresses or credit card numbers.
There can be any number of Shuffle rules on any columns in any table in a schema. If you apply a Shuffle rule to a column that is used in a primary key or unique index then the index will have to be dropped while the Shuffle rule is executing because the shuffle process will not guarantee uniqueness until the shuffling has been complete.
Shuffle rules can use a Where Clause option to operate on a subset of the rows in a table. Shuffle rules should not be used against tables containing very small amounts of data. If there are too few rows, the shuffle process will still work, but the small number of rows makes it easier to manually "guess" which column data was originally associated with each row.
How to Create a New Shuffle Rule