Loading
About Salesforce Data 360
Normalizar dados com o caso de uso UNION

Normalizar dados com o caso de uso UNION

Normalize os dados ingeridos no Data 360 com transformações de dados de streaming.

Vamos ver um exemplo. O objeto CRMContacts do data lake de origem contém até três números de telefone para cada cliente.

CustomerId Nome MobilePhone HomePhone WorkPhone
C1 John 408-512-2234   650-342-4612
C2 Peter   310-453-3421 915-870-9900

Se o objeto de data lake CRMContacts estiver diretamente mapeado para o objeto de modelo de dados Telefone do ponto de contato, apenas um ponto de contato (MobilePhone ou HomePhone ou WorkPhone) poderá ser mapeado. Por isso, apenas um dos três números de telefone está disponível em áreas de produto que consomem o objeto de modelo de dados, como percepções calculadas, resolução de identidade e segmentação.

Veja como usar uma transformação de dados de streaming para disponibilizar todos os três números de telefone.

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 <> ""

Após a execução da transformação de dados, o DLO de destino contém um registro para cada tipo de número de telefone.

PhoneId CustomerId PhoneNumber PhoneType
C1_Mobile C1 408-512-2234 Dispositivo móvel
C1_Work C1 650-342-4612 Trabalho
C2_Home C2 310-453-3421 Início
C2_Work C2 915-870-9900 Trabalho

Em seguida, você pode mapear o DLO de destino de Telefones para o DMO de Telefone do ponto de contato. Agora o DMO de Telefone do ponto de contato contém todos os três números de telefone para cada cliente.

Para usar o operador UNION em uma transformação de dados de streaming, cada instrução SELECT deve:

  • Fazer referência ao mesmo objeto do data lake de origem. No exemplo acima, todas as três instruções SELECT usam o mesmo objeto CRMContacts do data lake de origem.
  • Mapeie para os mesmos campos do DLO de destino. Cada instrução SELECT deve ter o mesmo esquema. Em nosso exemplo, todas as três instruções SELECT são mapeadas para o mesmo conjunto de campos: PhoneId, CustomerId, PhoneNumber e PhoneType.
  • Gere um valor exclusivo para o campo de chave primária. Se valores não exclusivos forem gerados para o campo de chave primária, um dos valores não exclusivos será selecionado aleatoriamente. Em nosso exemplo, a função CONCAT() gerará valores exclusivos para o campo de chave primária no DLO de destino.
  • Tenha um campo exclusivo mapeado para uma chave primária ou um conjunto de campos mapeado para uma chave primária em uma expressão.

UNION pode ser usado com no máximo cinco instruções SELECT.

 
Carregando
Salesforce Help | Article