Este documento descreve as principais recomendações ao projetar o modelo de dados do Adobe Campaign.
Para obter uma melhor compreensão das tabelas integradas do Campaign e sua interação, consulte esta seção seção.
Leia esta documentação para começar a usar os esquemas do Campaign. Saiba como configurar schemas de extensão para estender o modelo de dados conceituais do banco de dados do Adobe Campaign em este documento.
O sistema Adobe Campaign é extremamente flexível e pode ser estendido além da implementação inicial. No entanto, embora as possibilidades sejam infinitas, é fundamental tomar decisões sábias e criar bases fortes para começar a projetar seu modelo de dados.
Este documento fornece casos de uso comuns e práticas recomendadas para aprender como arquitetar apropriadamente sua ferramenta Adobe Campaign.
O Adobe Campaign é um poderoso sistema de gerenciamento de campanhas em vários canais que pode ajudar você a alinhar suas estratégias online e offline para criar experiências personalizadas de clientes.
Embora a maioria dos provedores de serviços de email esteja se comunicando com os clientes por meio de uma abordagem centrada em listas, o Adobe Campaign depende de um banco de dados relacional para aproveitar uma visão mais ampla dos clientes e seus atributos.
Essa abordagem centrada no cliente é mostrada no gráfico abaixo. O Recipient tabela em cinza representa a tabela principal do cliente em torno da qual tudo está sendo criado:
Para acessar a descrição de cada tabela, acesse Admin > Configuration > Data schemas, selecione um recurso na lista e clique no botão Documentation guia .
O modelo de dados padrão do Adobe Campaign é apresentado em este documento.
O Adobe Campaign Classic permite criar uma tabela de cliente personalizada. No entanto, na maioria dos casos, é recomendável utilizar o padrão Tabela de recipients que já tem tabelas e recursos adicionais pré-criados.
Quais dados devem ser enviados para o Adobe Campaign? É importante determinar os dados necessários para suas atividades de marketing.
O Adobe Campaign não é um data warehouse nem uma ferramenta de relatórios. Portanto, não tente importar todos os clientes possíveis e suas informações associadas para o Adobe Campaign ou importe dados que serão usados apenas para criar relatórios.
Para decidir se um atributo seria necessário ou não no Adobe Campaign, pergunte a si mesmo se ele se enquadra em uma dessas categorias:
Se não estiver caindo em nenhum desses, você provavelmente não precisará desse atributo no Adobe Campaign.
Para garantir uma boa arquitetura e o desempenho do sistema, siga as práticas recomendadas abaixo para configurar os dados no Adobe Campaign.
Um campo precisa ser armazenado em uma tabela se tiver uma finalidade de direcionamento ou personalização. Em outras palavras, se um campo não for usado para enviar um email personalizado ou como um critério em uma query, ele ocupará espaço em disco, enquanto será inútil.
Para instâncias híbridas e no local, o FDA (Federated Data Access, um recurso opcional que permite acessar dados externos) cobre a necessidade de adicionar um campo "instantaneamente" durante um processo de campanha. Você não precisa importar tudo se tiver FDA. Para obter mais informações, consulte Sobre o Federated Data Access.
Além do autopk definido por padrão na maioria das tabelas, você deve considerar adicionar algumas chaves lógicas ou comerciais (número de conta, número de cliente e assim por diante). Ele pode ser usado posteriormente para importações/reconciliação ou pacotes de dados. Para obter mais informações, consulte Identificadores.
Chaves eficientes são essenciais para o desempenho. Os tipos de dados numéricos devem sempre ser preferidos como chaves para tabelas.
Para o banco de dados do SQLServer, você pode considerar o uso de "índice clusterizado" se o desempenho for necessário. Como o Adobe não lida com isso, é necessário criá-lo no SQL.
O atributo tablespace no schema permite especificar um tablespace dedicado para uma tabela.
O assistente de instalação permite armazenar objetos por tipo (dados, temporários e índice).
Os tablespaces dedicados são melhores para particionamento, regras de segurança e permitem administração fluida e flexível, melhor otimização e desempenho.
Os recursos do Adobe Campaign têm três identificadores e é possível adicionar um identificador adicional.
A tabela a seguir descreve esses identificadores e sua finalidade.
Identifier | Descrição | Práticas recomendadas |
---|---|---|
ID |
|
|
Nome (ou nome interno) |
|
|
Rótulo |
|
|
As chaves primárias são necessárias para cada tabela criada no Adobe Campaign.
A maioria das organizações está importando registros de sistemas externos. Embora a chave física da tabela Recipient seja o atributo "id", é possível determinar uma chave personalizada além disso.
Essa chave personalizada é a chave primária de registro real no sistema externo que alimenta o Adobe Campaign.
Quando uma tabela pronta para uso tiver um autopk e uma chave interna, a chave interna será definida como um índice exclusivo na tabela do banco de dados físico.
Ao criar uma tabela personalizada, você tem duas opções:
Um autopk não deve ser usado como referência em workflows.
A chave primária do Adobe Campaign é uma id gerada automaticamente para todas as tabelas prontas para uso e pode ser a mesma para tabelas personalizadas. Para obter mais informações, consulte esta seção.
Esse valor é obtido do que é chamado de sequência, que é um objeto de banco de dados usado para gerar uma sequência numérica.
Há dois tipos de sequências:
A sequência é um valor inteiro de 32 bits, com um número máximo finito de valores disponíveis: 2,14 bilhões. Depois de atingir o valor máximo, a sequência volta para 0, para reciclar ids.
Se os dados antigos não tiverem sido removidos, o resultado será uma violação de chave exclusiva, que se tornará um bloqueador para a integridade e o uso da plataforma. A Adobe Campaign não conseguiria enviar comunicações (quando afetasse a tabela de logs do delivery) e os desempenhos seriam altamente afetados.
Portanto, um cliente enviando 6 bilhões de emails anualmente com um período de retenção de 180 dias para seus logs acabaria com as ids em 4 meses. Para evitar esse desafio, certifique-se de ter configurações de limpeza de acordo com seus volumes. Para obter mais informações, consulte esta seção.
Quando uma tabela personalizada está sendo criada no Adobe Campaign com uma chave primária como um autoPK, uma sequência dedicada personalizada deve ser sistematicamente associada a essa tabela.
Por padrão, uma sequência personalizada terá valores que variam de +1.000 a +2,1BB. Tecnicamente, é possível obter um intervalo completo de 4BB habilitando ids negativas. Isso deve ser usado com cuidado e uma id será perdida quando o número passar de negativo para positivo: o registro 0 normalmente é ignorado pela Adobe Campaign em consultas SQL geradas.
Para saber mais sobre a exaustão das sequências, assista este vídeo.
Os índices são essenciais para o desempenho. Ao declarar uma chave no schema, o Adobe criará automaticamente um índice nos campos da chave. Você também pode declarar mais índices para consultas que não usam a chave.
O Adobe recomenda definir índices adicionais, pois pode melhorar o desempenho.
No entanto, lembre-se do seguinte:
O gerenciamento de índices pode se tornar muito complexo, portanto é importante entender como eles funcionam. Para ilustrar essa complexidade, vamos tomar um exemplo básico como pesquisar recipients filtrando no nome e sobrenome. Para fazer isso:
Vá para a pasta que lista todos os recipients no banco de dados. Para obter mais informações, consulte Gerenciamento de perfis.
Clique com o botão direito do mouse no First name campo.
Selecione Filter on this field.
Repita essa operação para a Last name campo.
Os dois filtros correspondentes são adicionados na parte superior da tela.
Agora é possível executar a filtragem de pesquisa no First name e Last name de acordo com as várias condições de filtro.
Agora, para acelerar a pesquisa nesses filtros, você pode adicionar índices. Mas que índices devem ser utilizados?
Esse exemplo se aplica a clientes hospedados que usam um banco de dados PostgreSQL.
A tabela a seguir mostra em quais casos os três índices descritos abaixo são usados ou não de acordo com o padrão de acesso exibido na primeira coluna.
Critérios de pesquisa | Índice 1 (Nome + Sobrenome) | Índice 2 (somente nome) | Índice 3 (somente sobrenome) | Comentários |
---|---|---|---|---|
Nome igual a "Johnny" | Usado | Usado | Não usado | Como o nome está na primeira posição no índice 1, ele será usado assim mesmo: não há necessidade de adicionar um critério no sobrenome. |
Nome igual a "Johnny" E Sobrenome igual a "Smith" | Usado | Não usado | Não usado | Como ambos os atributos são pesquisados na mesma consulta, somente o índice que combina ambos os atributos será usado. |
Sobrenome igual a "Smith" | Não usado | Não usado | Usado | A ordem dos atributos no índice é levada em conta. Se você não corresponder a essa ordem, o índice poderá não ser usado. |
O primeiro nome começa com "Joh" | Usado | Usado | Não usado | "Pesquisa à esquerda" habilitará índices. |
O nome termina com "nny" | Não usado | Não usado | Não usado | A "pesquisa correta" desativará os índices e uma verificação completa será realizada. Alguns tipos de índice específicos podem lidar com esse caso de uso, mas não estão disponíveis por padrão no Adobe Campaign. |
O primeiro nome contém "John" | Não usado | Não usado | Não usado | Esta é uma combinação de pesquisas "esquerda" e "direita". Por causa do último, ele desativará os índices e uma verificação completa será executada. |
Nome igual a "john" | Não usado | Não usado | Não usado | Os índices fazem distinção entre maiúsculas e minúsculas. Para torná-lo não diferencia maiúsculas de minúsculas, você deve criar um índice específico que inclua uma função SQL como "upper(firstname)". Você deve fazer o mesmo com outras transformações de dados, como "unaccent(firstname)". |
Cuidado com a "própria" integridade em tabelas grandes. Excluir registros que tenham tabelas largas na integridade "própria" pode interromper a instância. A tabela está bloqueada e as exclusões são feitas uma por uma. Portanto, é melhor usar integridade "neutra" em tabelas secundárias que têm grandes volumes.
Declarar um link como uma associação externa não é bom para o desempenho. O registro de id zero emula a funcionalidade de associação externa. Não é necessário declarar associações externas se o link usar o autopk.
Embora seja possível unir qualquer tabela em um workflow, o Adobe recomenda definir links comuns entre recursos diretamente na definição da estrutura de dados.
O link deve ser definido de acordo com os dados reais nas tabelas. Uma definição incorreta pode afetar dados recuperados por meio de links, por exemplo, registros duplicados inesperadamente.
Nomeie seu link de forma consistente com o nome da tabela: o nome do link deve ajudar a entender o que é a tabela distante.
Não nomeie um link com "id" como sufixo. Por exemplo, nomeie-a como "transaction" em vez de "transactionId".
Por padrão, o Adobe Campaign criará um link usando a chave primária da tabela externa. Para mais clareza, é preferível definir explicitamente a associação na definição do link.
Um índice será adicionado aos atributos usados em um link.
Os links criados por e último modificado por estão presentes em muitas tabelas. É possível desativar o índice usando o atributo noDbIndex no link, se essas informações não estiverem sendo usadas pela empresa.
Ao projetar um link, verifique se o registro de destino é exclusivo quando uma relação 1-1 foi declarada. Caso contrário, a associação poderá retornar vários registros quando apenas um for esperado. Isso resulta em erros durante a preparação do delivery quando "a query retorna mais linhas do que o esperado". Defina o nome do link com o mesmo nome do schema de destino.
Defina um link com uma cardinalidade (1-N) no schema no lado (1). Por exemplo, a relação Recipient (1) - (N) Transaction deve ser definida no schema de transações.
Observe que uma cardinalidade reversa de um link é (N) por padrão. É possível definir um link (1-1) adicionando o atributo revCardinality='single' à definição do link.
Se o link reverso não deve estar visível para o usuário, você pode ocultá-lo com a definição do link revLink='NENHUM". Um bom caso de uso para isso é definir um link do recipient para a última transação concluída, por exemplo. Você só precisa ver o link do recipient para a última transação e nenhum link reverso é necessário para ficar visível da tabela de transações.
Os links que executam uma associação externa (1-0.1) devem ser usados com cuidado, pois afetarão o desempenho do sistema.
O Adobe Campaign não é um data warehouse nem uma ferramenta de relatórios. Portanto, para garantir um bom desempenho da solução Adobe Campaign, o crescimento do banco de dados deve permanecer sob controle. Para isso, siga as práticas recomendadas abaixo.
Por padrão, o delivery e os logs de rastreamento do Adobe Campaign têm uma duração de retenção de 180 dias. Um processo de limpeza é executado para remover qualquer log anterior.
Saiba mais sobre a retenção de dados no Privacidade e diretrizes de segurança da campanha.
Saiba mais sobre o fluxo de trabalho de limpeza da base de dados do Campaign nesta seção.
As tabelas personalizadas não são removidas com o processo de limpeza padrão. Embora isso possa não ser necessário no primeiro dia, não se esqueça de criar um processo de limpeza para suas tabelas personalizadas, pois isso pode levar a desafios de desempenho.
Existem algumas soluções para minimizar a necessidade de registros no Adobe Campaign:
Você pode declarar o atributo "deleteStatus" em um schema. É mais eficiente marcar o registro como excluído e, em seguida, adiar a exclusão na tarefa de limpeza.
Para garantir melhor desempenho a qualquer momento, siga as práticas recomendadas abaixo.
O Adobe Campaign depende de mecanismos de banco de dados de terceiros. Dependendo do provedor, a otimização do desempenho para tabelas maiores pode exigir um design específico.
Abaixo estão algumas práticas recomendadas comuns que devem ser seguidas ao projetar seu modelo de dados usando tabelas grandes e associações complexas.
O tamanho da tabela é uma combinação do número de registros e do número de colunas por registro. Ambos podem afetar o desempenho das consultas.
No PostgreSQL, uma linha não deve exceder 8 KB para evitar TOSSE mecanismo. Portanto, tente reduzir ao máximo o número de colunas e o tamanho de cada linha para preservar o desempenho ideal do sistema (memória e CPU).
O número de linhas também afeta o desempenho. O banco de dados do Adobe Campaign não foi projetado para armazenar dados históricos que não são usados ativamente para fins de direcionamento ou personalização - esse é um banco de dados operacional.
Para evitar qualquer problema de desempenho relacionado ao alto número de linhas, mantenha os registros necessários no banco de dados. Qualquer outro registro deve ser exportado para um data warehouse de terceiros e removido do banco de dados operacional do Adobe Campaign.
Estas são algumas práticas recomendadas relacionadas ao tamanho das tabelas:
Aqui está um exemplo:
Neste exemplo: