Sample BigQuery Remote Function

Sample BigQuery Remote Function definitions and calls for tokenization data elements.

Method: Tokenization

Type: ALPHA

BigQuery Data Types

Protegrity Max Size

STRING

16M (16,777,216 bytes)

External Function Sample Definitions:

CREATE FUNCTION PTY_PROTECT_ALPHA ( val STRING ) 
  RETURNS STRING 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_ALPHA"),("op_type", "PROTECT")]
  );
CREATE FUNCTION PTY_UNPROTECT_ALPHA ( val STRING ) 
  RETURNS STRING 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_ALPHA"),("op_type", "PROTECT")]
  );

Sample EF Calls:

SELECT PTY_PROTECT_ALPHA ('Hello World')
SELECT PTY_UNPROTECT_ALPHA('rfDtw sLMJK');

Method: Tokenization

Type: NUMERIC

BigQuery Data Types

Protegrity Max Size

NUMERIC

 

DECIMAL

INTEGER

FLOAT64

External Function Sample Definitions:

CREATE FUNCTION PTY_PROTECT_NUMERIC ( val NUMERIC ) 
  RETURNS NUMERIC  
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_NUMERIC"),("op_type", "PROTECT")]
  );
CREATE FUNCTION PTY_UNPROTECT_NUMERIC ( val NUMERIC) 
  RETURNS NUMERIC 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_NUMERIC"),("op_type", "PROTECT")]
  );

Sample EF Calls:

SELECT PTY_PROTECT_NUMERIC ('123456789');
SELECT PTY_UNPROTECT_NUMERIC ('752513497');

Method: Tokenization

Type: DATE YYYY-MM-DD

BigQuery Data Types

Protegrity Max Size

DATE (any supported format)

10 bytes

External Function Sample Definitions:

CREATE FUNCTION PTY_PROTECT_DATEYYYYMMDD ( val date ) 
  RETURNS DATE 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_DATEYYYYMMDD"),("op_type", "PROTECT")]
  );
CREATE FUNCTION PTY_UNPROTECT_DATEYYYYMMDD ( val date ) 
  RETURNS DATE 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_DATEYYYYMMDD"),("op_type", "UNPROTECT")]
  );

Sample EF Calls:

SELECT PTY_PROTECT_DATEYYYYMMDD ('2020-12-31');
SELECT PTY_UNPROTECT_DATEYYYYMMDD('0653-06-01');
SELECT PTY_PROTECT_DATEYYYYMMDD ('31-DEC-2020');
SELECT PTY_UNPROTECT_DATEYYYYMMDD('01-JUN-0653');
SELECT PTY_PROTECT_DATEYYYYMMDD('12/31/2020');
SELECT PTY_UNPROTECT_DATEYYYYMMDD('06/01/0653');

Method: Tokenization

Type: DATETIME

BigQuery Data Types

Protegrity Max Size

DATE

10 bytes

DATETIME

29 bytes

External Function Sample Definitions:

CREATE FUNCTION PTY_PROTECT_DATETIME ( val DATETIME ) 
  RETURNS DATETIME 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_DATETIME"),("op_type", "PROTECT")]
  );
CREATE FUNCTION PTY_UNPROTECT_DATETIME ( val DATETIME ) 
              RETURNS DATETIME 
              REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
              OPTIONS (
    endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
    user_defined_context = [("data_element", "TOK_DATETIME"),("op_type", "UNPROTECT")]
              );

Sample EF Calls:

SELECT PTY_PROTECT_DATETIME('2010-10-25');
SELECT PTY_UNPROTECT_DATETIME('0845-04-04');
SELECT PTY_PROTECT_DATETIME('2010-10-25 10:45:33');
SELECT PTY_UNPROTECT_DATETIME('0845-04-04 10:45:33');
SELECT PTY_PROTECT_DATETIME('2010-10-25 10:45:33.123');
SELECT PTY_UNPROTECT_DATETIME('0845-04-04 10:45:33.123');

Method: Tokenization

Type: DECIMAL

BigQuery Data Types

Protegrity Max Size

DECIMAL

38 digits

External Function Sample Definitions:

CREATE FUNCTION PTY_PROTECT_DECIMAL ( val DECIMAL ) 
  RETURNS DECIMAL 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_DECIMAL"),("op_type", "PROTECT")]
  );
CREATE FUNCTION PTY_UNPROTECT_DECIMAL ( val decimal ) 
  RETURNS decimal 
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_DECIMAL"),("op_type", "UNPROTECT")]
  );

Sample EF Calls:

SELECT PTY_PROTECT_DECIMAL (12345678.99);
SELECT PTY_UNPROTECT_DECIMAL (21872469.760000);

Method: Tokenization

Type: INTEGER

BigQuery Data Types

Protegrity Max Size

NUMERIC

INTEGER

External Function Sample Definitions:

CREATE FUNCTION PTY_PROTECT_INTEGER ( val INTEGER ) 
  RETURNS INTEGER
  REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
  OPTIONS (
      endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
      user_defined_context = [("data_element", "TOK_INTEGER"),("op_type", "PROTECT")]
  );
CREATE FUNCTION PTY_UNPROTECT_INTEGER ( val INTEGER ) 
              RETURNS INTEGER
              REMOTE WITH CONNECTION `location.cloud-resource-connection-id`
              OPTIONS (
    endpoint ='https://<location-project-id>.cloudfunctions.net/<protect-function-name>',
    user_defined_context = [("data_element", "TOK_INTEGER"),("op_type", "UNPROTECT")]
              );

Sample EF Calls:

SELECT PTY_PROTECT_INTEGER (123456789);
SELECT PTY_UNPROTECT_INTEGER (1104108887);
When values are…then use the following Data Element:
Between -32768 and 32767INTEGER (2 bytes)
Between -2147483648 and 2147483647INTEGER (4 bytes)
Between -9223372036854775808 and 9223372036854775807INTEGER (8 bytes)
< -9223372036854775808 or > 9223372036854775807DECIMAL

When in doubt, use DECIMAL for any numeric range.


Last modified : April 27, 2026