Du er her:
Normalisere data med UNION-bruksområde
Normaliser data som hentes inn i Data 360, med streaming-datatransformasjoner.
La oss se på et eksempel. Kildeobjektet CRMContacts inneholder opptil tre telefonnumre for hver kunde.
| CustomerId | Navn | MobilePhone | HomePhone | Arbeidstelefon |
|---|---|---|---|---|
| C1 | John | 408-512-2234 | 650-342-4612 | |
| C2 | Peter | 310-453-3421 | 915-870-9900 |
Hvis datasjøobjektet CRMContacts tilordnes direkte til datamodellobjektet Telefonnummer til kontaktpunkt, kan bare ett kontaktpunkt – Mobiltelefon eller Hjemmebane eller Arbeidstelefon – tilordnes. Resultatet er at bare ett av de tre telefonnumrene er tilgjengelig i produktområder som bruker datamodellobjektet, som beregnet innsikt, identitetsløsning og segmentering.
Slik bruker du en strømmedatatatransformasjon til å gjøre alle tre telefonnumrene tilgjengelige.
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 <> ""
Etter at datatransformasjonen har blitt kjørt, inneholder mål-DLO-en én post for hver type telefonnummer.
| PhoneId | CustomerId | Telefonnummer | PhoneType |
|---|---|---|---|
| C1_Mobile | C1 | 408-512-2234 | Mobiltelefon |
| C1_Arbeid | C1 | 650-342-4612 | Arbejde |
| C2_Home (Hjem) | C2 | 310-453-3421 | Hjem |
| C2_Work | C2 | 915-870-9900 | Arbejde |
Deretter kan du tilordne DLO-en for telefonnettsteder for mål til DMO-en for telefonnettsteder for kontaktpunkter. DMO-en for telefonnummer til kontaktpunkt inneholder nå alle tre telefonnumrene for hver kunde.
For å kunne bruke UNION-operatoren i en strømmedatatatransformasjon må hver SELECT:
- Referer til samme kildedatasjøobjekt. I eksemplet ovenfor bruker alle tre
SELECT-setninger det samme kildeobjektet CRMContacts. - Tilordne til de samme feltene for mål-DLO. Hver
SELECT-setning må ha samme skjema. I vårt eksempel tilordnes alle de treSELECT-settene til det samme feltsettet:PhoneId,CustomerId,PhoneNumberogPhoneType. - Generer en unik verdi for primærnøkkelfeltet. Hvis ikke-unike verdier genereres for primærnøkkelfeltet, velges én av de ikke-unike verdiene tilfeldig. I vårt eksempel genererer
CONCAT()-funksjonen unike verdier for primærnøkkelfeltet i mål-DLO. - Ha et unikt felt tilordnet til en primærnøkkel, eller et sett felt tilordnet til en primærnøkkel i et uttrykk.
UNION kan brukes med maksimalt fem SELECT.
