Ti trovi qui:
Caso d'uso Normalizzazione dei dati con UNION
Normalizzare i dati inseriti in Data 360 con le trasformazioni dati in streaming.
Vediamo un esempio. Il DLO di origine CRMContacts contiene fino a tre numeri di telefono per ogni cliente.
| CustomerId | Nome | MobilePhone | HomePhone | WorkPhone |
|---|---|---|---|---|
| C1 | John | 408-512-2234 | 650-342-4612 | |
| C2 | Peter | 310-453-3421 | 915-870-9900 |
se l'oggetto data lake CRMContacts viene mappato direttamente all'oggetto modello di dati Telefono punto di contatto, è possibile mappare un solo punto di contatto: MobilePhone o HomePhone o WorkPhone. Di conseguenza, solo uno dei tre numeri di telefono è disponibile nelle aree dei prodotti che utilizzano l'oggetto modello di dati, ad esempio approfondimenti calcolati, risoluzione dell'identità e segmentazione.
Di seguito viene descritto come utilizzare una trasformazione dati in streaming per rendere disponibili tutti e tre i numeri di telefono.
SELECT CONCAT(CRMContacts.CustomerId, "_Mobile") as PhoneId,
CRMContacts.CustomerId as CustomerId,
CRMContacts.MobilePhone as PhoneNumber,
"Mobile" as PhoneType
FROM CRMContacts
WHERE ISNOTNULL(CRMContacts.MobilePhone) AND CRMContacts.MobilePhone <> ""
UNION
SELECT CONCAT(CRMContacts.CustomerId, "_Home") as PhoneId,
CRMContacts.CustomerId as CustomerId, CRMContacts.HomePhone as PhoneNumber,
"Home" as PhoneType
FROM CRMContacts
WHERE ISNOTNULL(CRMContacts.HomePhone) AND CRMContacts.HomePhone <> ""
UNION
SELECT CONCAT(CRMContacts.CustomerId, "_Work") as PhoneId,
CRMContacts.CustomerId as CustomerId,
CRMContacts.WorkPhone as PhoneNumber,
"Work" as PhoneType
FROM CRMContacts
WHERE ISNOTNULL(CRMContacts.WorkPhone) AND CRMContacts.WorkPhone <> ""
Dopo l'esecuzione della trasformazione dati, il DLO di destinazione contiene un record per ogni tipo di numero di telefono.
| PhoneId | CustomerId | PhoneNumber | PhoneType |
|---|---|---|---|
| C1_Mobile | C1 | 408-512-2234 | Cellulare |
| C1_Work | C1 | 650-342-4612 | Lavoro |
| C2_Home | C2 | 310-453-3421 | Pagina iniziale |
| C2_Work | C2 | 915-870-9900 | Lavoro |
Quindi, è possibile mappare il DLO Telefoni di destinazione al DMO Telefono punto di contatto. Il DMO Telefono punto di contatto ora contiene tutti e tre i numeri di telefono per ogni cliente.
Per utilizzare l'operatore UNION in una trasformazione dati in streaming, ogni istruzione SELECT deve:
- Fare riferimento allo stesso oggetto data lake di origine. Nell'esempio precedente, tutte e tre le istruzioni
SELECTutilizzano lo stesso oggetto data lake di origine CRMContacts. - Mappare agli stessi campi per il DLO di destinazione. Ogni istruzione
SELECTdeve avere lo stesso schema. Nel nostro esempio, tutte e tre le istruzioniSELECTvengono mappate allo stesso insieme di campi:PhoneId,CustomerId,PhoneNumberePhoneType. - Generare un valore univoco per il campo della chiave principale. Se per il campo della chiave principale vengono generati valori non univoci, uno dei valori non univoci viene selezionato in modo casuale. Nel nostro esempio, la funzione
CONCAT()genera valori univoci per il campo chiave principale nel DLO di destinazione. - Avere un campo univoco mappato a una chiave principale o un insieme di campi mappati a una chiave principale in un'espressione.
UNION può essere utilizzato con un massimo di cinque istruzioni SELECT.
