data-analytics-demos/bigquery-data-governance/sql-scripts/governed_data_enriched/transform_customer.sql (33 lines of code) (raw):
CREATE OR REPLACE TABLE `${project_id}.${bigquery_governed_data_enriched_dataset}.customer`
CLUSTER BY customer_id
AS
WITH random_credit_card AS
(
SELECT customer_id,
CAST(ROUND(1 + RAND() * (4 - 1)) AS INT64) as fake_credit_card_random
FROM `${project_id}.${bigquery_governed_data_raw_dataset}.customer`
)
SELECT customer.customer_id,
customer.first_name,
customer.last_name,
customer.email,
CONCAT(SUBSTRING(customer.phone,1,5), ' ', SUBSTRING(customer.phone,7,3), '-', SUBSTRING(customer.phone,10,4)) AS phone,
CASE WHEN customer.gender = 'Male' THEN 'M'
WHEN customer.gender = 'Female' THEN 'F'
ELSE 'U'
END as gender,
customer.ip_address,
customer.ssn,
customer.address,
customer.city,
customer.state,
customer.zip,
CASE random_credit_card.fake_credit_card_random
WHEN 1 THEN '371449635398431' -- American Express test number
WHEN 2 THEN '30569309025904' -- Diners Club test number
WHEN 3 THEN '5555555555554444' -- MasterCard test number
WHEN 4 THEN '4111111111111111' -- Visa test number
END AS credit_card_number
FROM `${project_id}.${bigquery_governed_data_raw_dataset}.customer` AS customer
INNER JOIN random_credit_card
ON customer.customer_id = random_credit_card.customer_id;