Skip to main content
Version: v4

Data Masking Functions

Canner Enterprise provides built-in data masking functions, so users can mask personal data directly while analyzing it, protecting sensitive data.

The supported types of personal data include:

  • Address
  • Phone number
  • Name
  • Date of birth
  • National ID number
  • Email

Data masking functions​

In Canner Enterprise, you can use redact to replace raw data, for example replacing a mobile number with * characters. The following forms are currently supported.

1. redact(string, pattern, replacement)​

If the input matches the regular expression or built-in pattern, it is replaced.

regular expression

demo=> select redact('johndoe@example.com','^(.*)@(.*)$', '*****@***.com');
redact
---------------
*****@***.com
(1 row)

built-in pattern

See all built-in patterns at the end of this page.

demo=> select redact('johndoe@example.com','EMAIL_NAME', '*****');
redact
-------------------
*****@example.com
(1 row)

2. redact(string, struct)​

You can define a JSON object with patterns as keys and replacement values as values. Any part of the input matching a pattern is replaced.

demo=> select redact('johndoe@example.com','{"EMAIL_NAME":"*****","EMAIL_DOMAIN_LAST_3_PRESERVED":"yyds."}');
redact
----------------
*****@yyds.com
(1 row)

Built-in patterns​

CategoryPattern NameInputOutputReplacement
AddressTAIWAN_ADDRESS_WITH_CITY_AND_DISTRICT_AND_STREET_KEPT台北市中正區忠孝東路一段1號台北市中正區忠孝東路一段**
AddressTAIWAN_ADDRESS_WITH_CITY_AND_DISTRICT_KEPT台北市中正區忠孝東路一段1號台北市中正區**
AddressTAIWAN_ADDRESS_WITH_CITY_KEPT台北市中正區忠孝東路一段1號台北市**
AddressADDRESS_WITH_COUNTRY_ZIPCODE_STATE_KEPT725 5th Ave, New York, NY 10022, United States*, *, NY 10022, United States*
AddressADDRESS_WITH_COUNTRY_KEPT725 5th Ave, New York, NY 10022, United States*, *, * *, United States*
Phone NumberTAIWAN_PHONE_NUMBER091234567809**
Phone NumberPHONE_NUMBER_WITH_LAST_3_KEPT886912345678*678*
Phone NumberPHONE_NUMBER_WITH_LAST_4_KEPT02 2321 4311*4311*
Phone NumberPHONE_NUMBER_WITH_COUNTRY_CODE_KEPT+886912345678+886**
NameCHINESE_NAME_SECOND_CHAR王大錘王*錘*
NameCHINESE_NAME_LAST_PRESERVED王大錘*錘*
NameCHINESE_NAME_FIRST_PRESERVED王大錘王**
NameLAST_NAME_PRESERVEDJohn Doe* Doe*
NameFIRST_NAME_PRESERVEDJohn DoeJohn **
Date of BirthDATE_OF_BIRTH_WITH_MONTH_AND_DAY_KEPT_ROC_ERA84/04/01*/04/01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_AND_DAY_KEPT_ROC_ERA84/04/0184/*/01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_AND_MONTH_KEPT_ROC_ERA84/04/0184/04/**
Date of BirthDATE_OF_BIRTH_WITH_DAY_KEPT_ROC_ERA84/04/01*/*/01*
Date of BirthDATE_OF_BIRTH_WITH_MONTH_KEPT_ROC_ERA84/04/01*/04/**
Date of BirthDATE_OF_BIRTH_WITH_YEAR_KEPT_ROC_ERA84/04/0184/*/**
Date of BirthDATE_OF_BIRTH_WITH_MONTH_AND_DAY_KEPT_ISO_86011970-01-01*-01-01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_AND_DAY_KEPT_ISO_86011970-01-011970-*-01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_AND_MONTH_KEPT_ISO_86011970-01-011970-01-**
Date of BirthDATE_OF_BIRTH_WITH_DAY_KEPT_ISO_86011970-01-01*-*-01*
Date of BirthDATE_OF_BIRTH_WITH_MONTH_KEPT_ISO_86011970-01-01*-01-**
Date of BirthDATE_OF_BIRTH_WITH_YEAR_KEPT_ISO_86011970-01-011970-*-**
Date of BirthDATE_OF_BIRTH_WITH_MONTH_AND_DAY_KEPT1970/01/01*/01/01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_AND_DAY_KEPT1970/01/011970/*/01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_AND_MONTH_KEPT1970/01/011970/01/**
Date of BirthDATE_OF_BIRTH_WITH_MONTH_KEPT1970/01/01*/01/**
Date of BirthDATE_OF_BIRTH_WITH_DAY_KEPT1970/01/01*/*/01*
Date of BirthDATE_OF_BIRTH_WITH_YEAR_KEPT1970/01/011970/*/**
Identification NumberTAIWAN_ID_NUMBER_KEEP_LETTER_AND_LAST_4_PRESERVEDF123456789F*6789*
Identification NumberTAIWAN_ID_NUMBER_LETTER_PRESERVEDF123456789F**
EmailEMAIL_DOMAIN_LAST_3_PRESERVEDjohndoe@example.comjohndoe@*com*
EmailEMAIL_DOMAIN_LAST_1_PRESERVEDjohndoe@example.comjohndoe@*m*
EmailEMAIL_DOMAIN_FIRST_3_PRESERVEDjohndoe@example.comjohndoe@exa**
EmailEMAIL_DOMAIN_FIRST_1_PRESERVEDjohndoe@example.comjohndoe@e**
EmailEMAIL_DOMAINjohndoe@example.comjohndoe@**
EmailEMAIL_NAME_LAST_3_PRESERVEDjohndoe@example.com*doe@example.com*
EmailEMAIL_NAME_LAST_1_PRESERVEDjohndoe@example.com*e@example.com*
EmailEMAIL_NAMEjohndoe@example.com*@example.com*
EmailEMAIL_NAME_FIRST_1_PRESERVEDjohndoe@example.comj*@example.com*
EmailEMAIL_NAME_FIRST_3_PRESERVEDjohndoe@example.comjoh*@example.com*