Enviar atualizações parciais de linha para Real-Time Customer Profile usando Data Prep

WARNING
A assimilação de mensagens de atualização de entidade do Experience Data Model (XDM) (com operações PATCH JSON) para atualizações de perfil por meio da entrada do DCS foi descontinuada. Como alternativa, você pode assimilar dados brutos na entrada do DCS e especificar os mapeamentos de dados necessários para transformar seus dados em mensagens compatíveis com XDM para atualizações de Perfil.

A transmissão de sobreposições em Data Prep permite enviar atualizações de linhas parciais para dados de Real-Time Customer Profile, além de criar e estabelecer novos links de identidade com uma única solicitação de API.

Ao fazer a transmissão de upserts, você pode reter o formato dos dados enquanto traduz esses dados para Real-Time Customer Profile solicitações de PATCH durante a assimilação. Com base nas entradas que você fornece, o Data Prep permite enviar uma única carga de API e traduzir os dados para Real-Time Customer Profile PATCH e Identity Service solicitações CREATE.

NOTE
Para aproveitar a funcionalidade de substituição, é recomendável desativar as configurações compatíveis com XDM durante a assimilação de dados e remapear a carga de entrada usando o Mapeador de Preparo de Dados.

Este documento fornece informações sobre como fazer streaming de upserts no Data Prep.

Introdução

Esta visão geral requer uma compreensão funcional dos seguintes componentes do Adobe Experience Platform:

  • Data Prep: Data Prep permite que os engenheiros de dados mapeiem, transformem e validem dados de e para o Experience Data Model (XDM).
  • Identity Service: obtenha uma melhor visão de clientes individuais e de seu comportamento ao unir as identidades de vários dispositivos e sistemas.
  • Perfil do cliente em tempo real: fornece um perfil de cliente unificado em tempo real com base em dados agregados de várias fontes.
  • Fontes: o Experience Platform permite que os dados sejam assimilados de várias fontes e, ao mesmo tempo, fornece a capacidade de estruturar, rotular e aprimorar os dados recebidos usando os serviços da plataforma.

Usar upserts de streaming em Data Prep streaming-upserts-in-data-prep

NOTE
As seguintes fontes oferecem suporte ao uso de upserts de transmissão:

Streaming substitui o fluxo de trabalho de alto nível

Os upserts de streaming em Data Prep funcionam da seguinte forma:

  • Primeiro, você deve criar e habilitar um conjunto de dados para consumo de Profile. Consulte o manual sobre habilitação de um conjunto de dados para Profile para obter mais informações.

  • Se novas identidades precisarem ser vinculadas, você também deverá criar um conjunto de dados adicional com o mesmo esquema do seu conjunto de dados Profile.

  • Depois que os conjuntos de dados forem preparados, você deverá criar um fluxo de dados para mapear a solicitação recebida para o conjunto de dados Profile.

  • Em seguida, você deve atualizar a solicitação de entrada para incluir os cabeçalhos necessários. Esses cabeçalhos definem:

    • A operação de dados que precisa ser executada com Profile: create, merge e delete.
    • A operação de identidade opcional a ser executada com Identity Service: create.

Configurar o conjunto de dados de identidade

Se novas identidades precisarem ser vinculadas, você deverá criar e transmitir um conjunto de dados adicional na carga recebida. Ao criar um conjunto de dados de identidade, você deve garantir que os seguintes requisitos sejam atendidos:

  • O conjunto de dados de identidade deve ter seu esquema associado como o conjunto de dados Profile. Uma incompatibilidade de esquemas pode levar a um comportamento inconsistente do sistema.
  • No entanto, você deve garantir que o conjunto de dados de identidade seja diferente do conjunto de dados Profile. Se os conjuntos de dados forem iguais, os dados serão substituídos em vez de atualizados.
  • Embora o conjunto de dados inicial deva ser habilitado para Profile, o conjunto de dados de identidade não deve ser habilitado para Profile. Caso contrário, os dados também serão substituídos em vez de atualizados. No entanto, o conjunto de dados de identidade deve ser habilitado para Identity Service.

Campos obrigatórios nos esquemas associados ao conjunto de dados de identidade identity-dataset-required-fileds

Se o esquema contiver campos obrigatórios, a validação do conjunto de dados deverá ser suprimida para permitir que Identity Service receba apenas as identidades. Você pode suprimir a validação aplicando o valor disabled ao parâmetro acp_validationContext. Consulte o exemplo abaixo:

curl -X POST 'https://platform.adobe.io/data/foundation/catalog/dataSets/62257bef7a75461948ebcaaa' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '{
    "tags": {
        "acp_validationContext": [
            "disabled"
        ],
        "unifiedProfile": [
            "enabled:false"
        ],
        "unifiedIdentity": [
            "enabled:true"
        ]
    }
}'
TIP
Não é necessário fazer qualquer configuração adicional se o esquema associado ao conjunto de dados de identidade não tiver campos obrigatórios.

Estrutura de carga de entrada

A seguir é mostrado um exemplo de uma estrutura de payload de entrada que estabelece novos links de identidade.

Carga com configuração de identidade

{
  "header": {
    "flowId": "923e2ac3-3869-46ec-9e6f-7012c4e23f69",
    "imsOrgId": "{ORG_ID}",
    "datasetId": "621fc19ab33d941949af16c8",
    "operations": {
        "data": "create" (default)/"merge"/"delete",
        "identity": "create",
        "identityDatasetId": "621fc19ab33d941949af16d9"
    }
  }
... //The raw data attributes are included here as the key/value pairs of the "body" property.
}
Parâmetro
Descrição
flowId
Uma ID exclusiva para identificar um fluxo de dados. Esta ID de fluxo de dados deve corresponder à conexão de origem criada com Amazon Kinesis, Azure Event Hubs ou HTTP API. Esse fluxo de dados também deve ter um conjunto de dados habilitado para Profile como o conjunto de dados de destino. Observação: a ID do conjunto de dados de destino habilitado para Profile também é usada como seu parâmetro datasetId.
imsOrgId
A ID que corresponde à sua organização.
datasetId
A ID do conjunto de dados de destino habilitado para Profile do seu fluxo de dados. Observação: esta é a mesma ID que a ID do conjunto de dados de destino habilitado para Profile encontrada em seu fluxo de dados.
operations
Este parâmetro descreve as ações que Data Prep executará com base na solicitação recebida.
operations.data
Define as ações que devem ser executadas em Real-Time Customer Profile.
operations.identity
Define as operações permitidas nos dados por Identity Service.
operations.identityDatasetId
(Opcional) A ID do conjunto de dados de identidade que será necessária somente se novas identidades precisarem ser vinculadas.

Operações suportadas

As seguintes operações são suportadas por Real-Time Customer Profile:

Operações
Descrição
create
A operação padrão. Isso gera um método de criação de entidade XDM para Real-Time Customer Profile.
merge
Isso gera um método de atualização de entidade XDM para Real-Time Customer Profile.
delete
Isso gera um método de exclusão de entidade XDM para Real-Time Customer Profile e remove permanentemente os dados de Profile store.

As seguintes operações são suportadas por Identity Service:

Operações
Descrições
create
A única operação permitida para este parâmetro. Se create for passado como valor para operations.identity, Data Prep gerará uma solicitação de criação de entidade XDM para Identity Service. Se a identidade já existir, ela será ignorada. Observação: se operations.identity estiver definido como create, então identityDatasetId também deve ser especificado. A mensagem de criação da entidade XDM gerada internamente pelo componente Data Prep será gerada para esta ID de conjunto de dados.

Carga sem configuração de identidade

Se novas identidades não precisarem ser vinculadas, você poderá omitir os parâmetros identity e identityDatasetId nas operações. Isso envia dados somente para Real-Time Customer Profile e ignora o Identity Service. Consulte a carga abaixo para obter um exemplo:

{
  "header": {
    "flowId": "923e2ac3-3869-46ec-9e6f-7012c4e23f69",
    "imsOrgId": "{ORG_ID}",
    "datasetId": "621fc19ab33d941949af16c8",
    "operations": {
        "data": "create"/"merge"/"delete",
    }
  }
... //The raw data attributes are included here as the key/value pairs of the "body" property.
}

Transmitir dinamicamente as identidades principais

Para atualizações XDM, o esquema deve ser habilitado para Profile e conter uma identidade primária. Você pode especificar a identidade principal de um esquema XDM de duas maneiras:

  • Designar um campo estático como a identidade principal no esquema XDM;
  • Designe um dos campos de identidade como a identidade primária por meio do grupo de campos do mapa de identidade no esquema XDM.

Designar um campo estático como o campo de identidade principal no esquema XDM

No exemplo abaixo, state, homePhone.number e outros atributos são substituídos por seus respectivos valores fornecidos na Profile com a identidade primária de sampleEmail@gmail.com. Uma mensagem de atualização de entidade XDM é gerada pelo componente de streaming Data Prep. Real-Time Customer Profile então confirma que a mensagem de atualização do XDM deve substituir o registro do perfil.

NOTE
Neste exemplo, as identidades não serão vinculadas, pois não há operações definidas para a identidade.
curl -X POST 'https://dcs.adobedc.net/collection/9aba816d350a69c4abbd283eb5818ec3583275ffce4880ffc482be5a9d810c4b' \
  -H 'Content-Type: application/json' \
  -H 'x-adobe-flow-id: d5262d48-0f47-4949-be6d-795f06933527' \
  -d '{
    "header": {
        "flowId" : "d5262d48-0f47-4949-be6d-795f06933527",
        "imsOrgId": "{ORG_ID}",
        "datasetId": "62259f817f62d71947929a7b",
        "operations": {
         "data": "create"
     }
    },
    {
        "body": {
        "homeAddress": {
            "country": "US",
            "state": "GA",
            "region": "va7"
        },
        "homePhone": {
            "number": "123.456.799"
        },
        "identityMap": {
            "Email": [{
                "id": "sampleEmail@gmail.com",
                "primary": true
            }]
        },
      "personalEmail": {
            "address": "sampleEmail@gmail.com",
            "primary": true
       },
      "personID": "346576345",
      "_id": "346576345",
      "timestamp": "2021-05-05T17:51:45.1880+02",
      "workEmail": "sampleWorkEmail@gmail.com"
  }
}'

Designar um dos campos de identidade como a identidade primária por meio do grupo de campos do mapa de identidade no esquema XDM

Neste exemplo, o cabeçalho contém o atributo operations com as propriedades identity e identityDatasetId. Isso permite que os dados sejam mesclados com Real-Time Customer Profile e também que as identidades sejam passadas para Identity Service.

curl -X POST 'https://dcs.adobedc.net/collection/9aba816d350a69c4abbd283eb5818ec3583275ffce4880ffc482be5a9d810c4b' \
  -H 'Content-Type: application/json' \
  -H 'x-adobe-flow-id: d5262d48-0f47-4949-be6d-795f06933527' \
  -d '{
    "header": {
        "flowId" : "d5262d48-0f47-4949-be6d-795f06933527",
        "imsOrgId": "{ORG_ID}",
        "datasetId": "62259f817f62d71947929a7b",
        "operations": {
            "data": "merge",
            "identity": "create",
            "identityDatasetId": "6254a93b851ecd194b64af9e"
      }
    },
    {
       "body": {
        "homeAddress": {
            "country": "US",
            "state": "GA",
            "region": "va7"
        },
        "homePhone": {
            "number": "123.456.799"
        },
        "identityMap": {
            "Email": [{
                "id": "sampleEmail@gmail.com",
                "primary": true
            }]
        },
      "personalEmail": {
            "address": "sampleEmail@gmail.com",
            "primary": true
       },
      "personID": "346576345",
      "_id": "346576345",
      "timestamp": "2021-05-05T17:51:45.1880+02",
      "workEmail": "sampleWorkEmail@gmail.com"
  }
 }'

Limitações conhecidas e principais considerações

A seguir, uma lista de limitações conhecidas a serem consideradas ao transmitir upserts com Data Prep:

  • O método de streaming upserts deve ser usado somente ao enviar atualizações de linhas parciais para Real-Time Customer Profile. As atualizações de linha parciais são não consumidas pelo data lake.
  • O método de upserts de transmissão não oferece suporte à atualização, substituição e remoção de identidades. Novas identidades serão criadas se não existirem. Portanto, a operação identity sempre deve ser definida como criar. Se uma identidade já existir, a operação será no-op.
  • Atualmente, o método de upserts por transmissão não oferece suporte ao Adobe Experience Platform Web SDK e ao Adobe Experience Platform Mobile SDK.

Próximas etapas

Após a leitura deste documento, você deve entender como fazer streaming de upserts no Data Prep para enviar atualizações parciais de linhas aos seus dados do Real-Time Customer Profile, além de criar e vincular identidades com uma única solicitação de API. Para obter mais informações sobre outros recursos do Data Prep, leia a Data Prep visão geral. Para saber como usar conjuntos de mapeamento na API Data Prep, leia o Data Prep guia do desenvolvedor.

recommendation-more-help
461cc884-c234-4a0c-ac75-6efbaafc1394