In questo documento vengono delineate le raccomandazioni chiave durante la progettazione del modello dati Adobe Campaign .
Per una migliore comprensione delle tabelle integrate di Campaign e della loro interazione, fare riferimento alla sezione Campaign Classic data model.
Leggi questa documentazione per iniziare a usare gli schemi delle campagne. Scoprite come configurare gli schemi di estensione per estendere il modello di dati concettuali del database Adobe Campaign in questo documento.
sistema Adobe Campaign è estremamente flessibile e può essere esteso oltre l'implementazione iniziale. Tuttavia, mentre le possibilità sono infinite, è fondamentale prendere decisioni sagge e creare solide basi per iniziare a progettare il modello dati.
Questo documento contiene esempi di utilizzo comuni e procedure ottimali per apprendere come architettare correttamente lo strumento Adobe Campaign .
Adobe Campaign Standard è un potente sistema di gestione delle campagne multicanale che consente di allineare le strategie online e offline per creare esperienze cliente personalizzate.
Mentre la maggior parte dei provider di servizi e-mail comunica ai clienti tramite un approccio incentrato sugli elenchi, Adobe Campaign si affida a un database relazionale per sfruttare una visione più ampia dei clienti e dei loro attributi.
Questo approccio incentrato sul cliente è riportato nel grafico seguente. La tabella Recipient in grigio rappresenta la tabella cliente principale intorno alla quale viene creato tutto:
Per accedere alla descrizione di ciascuna tabella, passare a Admin > Configuration > Data schemas, selezionare una risorsa dall'elenco e fare clic sulla scheda Documentation.
Il modello dati predefinito Adobe Campaign è presentato in questo documento.
Adobe Campaign Classic consente di creare una tabella cliente personalizzata. Tuttavia, nella maggior parte dei casi, si consiglia di utilizzare la tabella destinatari standard che dispone già di tabelle e funzionalità aggiuntive preconfigurate.
Quali dati devono essere inviati a Adobe Campaign? È fondamentale determinare i dati richiesti per le attività di marketing.
Adobe Campaign non è né un data warehouse né uno strumento di reporting. Pertanto, non cercare di importare tutti i possibili clienti e le relative informazioni in Adobe Campaign, né di importare dati che verranno utilizzati solo per creare rapporti.
Per decidere se un attributo sarebbe necessario o meno in Adobe Campaign, chiedetevi se rientrerebbe in una delle seguenti categorie:
Se non si rientra in nessuno di questi, molto probabilmente non sarà necessario questo attributo in Adobe Campaign.
Per garantire una buona architettura e prestazioni del sistema, segui le best practice riportate di seguito per configurare i dati in Adobe Campaign.
Un campo deve essere memorizzato in una tabella se ha uno scopo di targeting o personalizzazione. In altre parole, se un campo non viene utilizzato per inviare un'e-mail personalizzata o come criterio in una query, occupa spazio su disco mentre è inutile.
Per le istanze ibride e locali, FDA (Federated Data Access, una funzione opzionale che consente di accedere ai dati esterni) copre la necessità di aggiungere un campo "on-the-fly" durante un processo della campagna. Non è necessario importare tutto se si dispone di FDA. Per ulteriori informazioni, vedere Informazioni su Federated Data Access.
Oltre al autopk definito per impostazione predefinita nella maggior parte delle tabelle, è consigliabile aggiungere alcune chiavi logiche o aziendali (numero di conto, numero di cliente e così via). Può essere utilizzato successivamente per le importazioni/riconciliazione o per i pacchetti di dati. Per ulteriori informazioni, vedere Identificatori.
Le chiavi efficienti sono essenziali per le prestazioni. I tipi di dati numerici devono sempre essere preferiti come chiavi per le tabelle.
Per il database SQLServer, è possibile utilizzare "indice cluster" se sono necessarie prestazioni. Poiché Adobe non è in grado di gestire questo problema, è necessario crearlo in SQL.
L'attributo tablespace nello schema consente di specificare una tablespace dedicata per una tabella.
La procedura guidata di installazione consente di memorizzare gli oggetti per tipo (dati, temporanei e indice).
Le tablespace dedicate sono migliori per il partizionamento, le regole di sicurezza e consentono un'amministrazione fluida e flessibile, una migliore ottimizzazione e prestazioni.
risorse Adobe Campaign hanno tre identificatori ed è possibile aggiungere un identificatore aggiuntivo.
La tabella seguente descrive questi identificatori e la loro funzione.
Identificatore | Descrizione | Best practice |
---|---|---|
Id |
|
|
Nome (o nome interno) |
|
|
Etichetta |
|
|
Le chiavi primarie sono necessarie per ogni tabella creata in Adobe Campaign.
La maggior parte delle organizzazioni sta importando record da sistemi esterni. Anche se la chiave fisica della tabella Recipient è l'attributo "id", è possibile determinare anche una chiave personalizzata.
Questa chiave personalizzata è la chiave primaria del record effettiva nel sistema esterno di alimentazione Adobe Campaign.
Quando una tabella out-of-the-box ha sia un pilota automatico che una chiave interna, la chiave interna sarà impostata come un indice univoco nella tabella del database fisico.
Quando si crea una tabella personalizzata, sono disponibili due opzioni:
Un'autopsia non deve essere utilizzata come riferimento nei flussi di lavoro.
chiave primaria Adobe Campaign è un ID generato automaticamente per tutte le tabelle pronte all'uso e può essere lo stesso per le tabelle personalizzate. Per ulteriori informazioni, consulta questa sezione.
Questo valore viene ricavato da una sequenza, ovvero da un oggetto di database utilizzato per generare una sequenza numerica.
Esistono due tipi di sequenze:
La sequenza è un valore intero a 32 bit, con un numero massimo finito di valori disponibili: 2,14 miliardi. Una volta raggiunto il valore massimo, la sequenza torna a 0 per riciclare gli ID.
Se i vecchi dati non sono stati eliminati, il risultato sarà una violazione chiave univoca, che diventa un blocco per lo stato e l'utilizzo della piattaforma. Adobe Campaign non sarebbe in grado di inviare comunicazioni (quando ha un impatto sulla tabella di log di consegna) e le prestazioni sarebbero fortemente influenzate.
Di conseguenza, un cliente che invia 6 miliardi di e-mail ogni anno con un periodo di conservazione di 180 giorni per i propri registri avrebbe esaurito gli ID in 4 mesi. Per evitare una simile situazione, accertatevi di avere le impostazioni di rimozione in base ai volumi. Per ulteriori informazioni, consulta questa sezione.
Quando viene creata una tabella personalizzata in Adobe Campaign con una chiave primaria come autoPK, una sequenza dedicata personalizzata deve essere sistematicamente associata a tale tabella.
Per impostazione predefinita, una sequenza personalizzata avrà valori compresi tra +1.000 e +2.1BB. Tecnicamente, è possibile ottenere una gamma completa di 4BB abilitando ID negativi. Questo dovrebbe essere utilizzato con cura e un ID andrà perso quando si passa da numeri negativi a numeri positivi: il record 0 viene in genere ignorato da Adobe Campaign Classic nelle query SQL generate.
Argomenti correlati:
Gli indici sono essenziali per le prestazioni. Quando si dichiara una chiave nello schema, Adobe crea automaticamente un indice sui campi della chiave. È inoltre possibile dichiarare altri indici per le query che non utilizzano la chiave.
Adobe consiglia di definire indici aggiuntivi in quanto potrebbero migliorare le prestazioni.
Tuttavia, tenete presente quanto segue:
La gestione degli indici può diventare molto complessa, quindi è importante capire come funzionano. Per illustrare questa complessità, prendiamo un esempio di base, ad esempio la ricerca dei destinatari tramite filtro sul nome e il cognome. Per eseguire questa operazione:
Passate alla cartella in cui sono elencati tutti i destinatari presenti nel database. Per ulteriori informazioni, consulta Gestione dei profili di .
Fare clic con il pulsante destro del mouse sul campo First name.
Seleziona Filter on this field.
Ripetere questa operazione per il campo Last name.
I due filtri corrispondenti vengono aggiunti nella parte superiore dello schermo.
Ora è possibile eseguire il filtraggio delle ricerche nei campi First name e Last name in base alle diverse condizioni del filtro.
Ora, per velocizzare la ricerca su questi filtri, è possibile aggiungere indici. Ma quali indici dovrebbero essere utilizzati?
Questo esempio si applica ai clienti ospitati che utilizzano un database PostgreSQL.
La tabella seguente mostra in quali casi i tre indici descritti di seguito vengono utilizzati o meno in base al pattern di accesso visualizzato nella prima colonna.
Criteri di ricerca | Indice 1 (Nome + Cognome) | Indice 2 (solo nome) | Indice 3 (solo cognome) | Commenti |
---|---|---|---|---|
Nome uguale a "Johnny" | Usato | Usato | Non utilizzato | Poiché il primo nome si trova nella prima posizione dell'indice 1, verrà comunque utilizzato: non è necessario aggiungere un criterio per il cognome. |
Il nome è uguale a "Johnny" E il cognome è uguale a "Smith" | Usato | Non utilizzato | Non utilizzato | Poiché entrambi gli attributi vengono ricercati nella stessa query, verrà utilizzato solo l'indice che combina entrambi gli attributi. |
Cognome uguale a "Smith" | Non utilizzato | Non utilizzato | Usato | Si tiene conto dell'ordine degli attributi nell'indice. Se l'ordine non corrisponde, l'indice potrebbe non essere utilizzato. |
Il nome inizia con "Joh" | Usato | Usato | Non utilizzato | "Ricerca a sinistra" consente gli indici. |
Il nome termina con "nny" | Non utilizzato | Non utilizzato | Non utilizzato | "Right search" disattiverà gli indici e verrà eseguita una scansione completa. Alcuni tipi di indice specifici potrebbero gestire questo caso di utilizzo, ma non sono disponibili per impostazione predefinita in Adobe Campaign. |
Il nome contiene "John" | Non utilizzato | Non utilizzato | Non utilizzato | Questa è una combinazione di ricerche "a sinistra" e "a destra". A causa di quest'ultimo, disabiliterà gli indici e verrà eseguita una scansione completa. |
Nome uguale a "john" | Non utilizzato | Non utilizzato | Non utilizzato | Per gli indici viene fatta distinzione tra maiuscole e minuscole. Per evitare la distinzione tra maiuscole e minuscole, è necessario creare un indice specifico che includa una funzione SQL come "high(firstname)". È necessario eseguire le stesse operazioni con altre trasformazioni di dati, ad esempio "unaccentuate(firstname)". |
Attenzione all'integrità "propria" sui grandi tavoli. L'eliminazione di record con tabelle ampie con integrità "propria" può arrestare l'istanza. La tabella è bloccata e le eliminazioni vengono effettuate una per una. Quindi è meglio utilizzare l'integrità "neutra" sui tavoli secondari che hanno grandi volumi.
La dichiarazione di un collegamento come join esterno non è valida per le prestazioni. Il record id zero emula la funzionalità di join esterno. Non è necessario dichiarare giunti esterni se il collegamento utilizza l'autopsia.
Sebbene sia possibile unire qualsiasi tabella in un flusso di lavoro, Adobe consiglia di definire collegamenti comuni tra le risorse direttamente nella definizione della struttura dati.
Il collegamento deve essere definito in linea con i dati effettivi nelle tabelle. Una definizione errata potrebbe avere un impatto sui dati recuperati tramite collegamenti, ad esempio la duplicazione inattesa di record.
Denominate il collegamento in modo coerente con il nome della tabella: il nome del collegamento deve essere utile per comprendere la tabella lontana.
Non assegnate un nome a un collegamento con "id" come suffisso. Ad esempio, denominatelo "transaction" anziché "transactionId".
Per impostazione predefinita, Adobe Campaign crea un collegamento utilizzando la chiave primaria della tabella esterna. Per maggiore chiarezza, è preferibile definire esplicitamente il join nella definizione del collegamento.
Un indice verrà aggiunto agli attributi utilizzati in un collegamento.
Il i collegamenti creati da e modificati da ultimo sono presenti in molte tabelle. È possibile disattivare l'indice utilizzando l'attributo noDbIndex sul collegamento, se queste informazioni non vengono utilizzate dall'azienda.
Quando progettate un collegamento, accertatevi che il record di destinazione sia univoco quando è stata dichiarata una relazione 1-1. In caso contrario, il join potrebbe restituire più record quando ne è previsto solo uno. Ciò genera errori durante la preparazione della consegna quando "la query restituisce più righe del previsto". Impostate il nome del collegamento con lo stesso nome dello schema di destinazione.
Definire un collegamento con una cardinalità (1-N) nello schema sul lato (1). Ad esempio, la transazione destinatario relazione (1) - (N) deve essere definita nello schema della transazione.
Nota: per impostazione predefinita, la cardinalità inversa di un collegamento è (N). È possibile definire un collegamento (1-1) aggiungendo l'attributo revCardinality='single' alla definizione del collegamento.
Se il collegamento inverso non deve essere visibile all'utente, è possibile nasconderlo con la definizione del collegamento revLink='NONE'. Un buon esempio per questo è definire un collegamento tra il destinatario e l'ultima transazione completata, ad esempio. Devi solo visualizzare il collegamento dal destinatario all'ultima transazione e non è necessario alcun collegamento inverso per essere visibile dalla tabella delle transazioni.
I collegamenti che eseguono un join esterno (1-0.1) devono essere utilizzati con attenzione in quanto influiranno sulle prestazioni del sistema.
Adobe Campaign non è né un data warehouse né uno strumento di reporting. Pertanto, per garantire buone prestazioni della soluzione Adobe Campaign , la crescita del database dovrebbe rimanere sotto controllo. A tal fine, seguire alcune delle best practice riportate di seguito può essere di aiuto.
Per impostazione predefinita, registri di consegna e tracciamento Adobe Campaign hanno una durata di conservazione di 180 giorni. Viene eseguito un processo di pulizia per rimuovere eventuali file di registro precedenti.
Ulteriori informazioni sulla conservazione dei dati sono disponibili in Campaign Privacy and Security guidelines.
Ulteriori informazioni sul flusso di lavoro di pulizia della base dati della campagna in questa sezione.
Le tabelle personalizzate non vengono eliminate con il processo di pulizia standard. Anche se questo potrebbe non essere necessario al primo giorno, non dimenticare di creare un processo di eliminazione per le tabelle personalizzate, in quanto ciò potrebbe causare problemi di prestazioni.
Esistono alcune soluzioni per ridurre al minimo la necessità di record in Adobe Campaign:
È possibile dichiarare l'attributo "deleteStatus" in uno schema. È più efficace contrassegnare il record come eliminato, quindi rimandare l'eliminazione nell'attività di pulizia.
Per garantire prestazioni migliori in qualsiasi momento, segui le best practice riportate di seguito.
Adobe Campaign si basa su motori di database di terze parti. A seconda del provider, l'ottimizzazione delle prestazioni per le tabelle più grandi potrebbe richiedere una progettazione specifica.
Di seguito sono riportate alcune best practice comuni da seguire per la progettazione del modello dati utilizzando tabelle di grandi dimensioni e join complessi.
La dimensione della tabella è una combinazione del numero di record e del numero di colonne per record. Entrambi possono influire sulle prestazioni delle query.
In PostgreSQL, una riga non deve superare gli 8 KB per evitare il meccanismo TOAST. Pertanto, cercare di ridurre il più possibile il numero di colonne e la dimensione di ogni riga per mantenere le prestazioni ottimali del sistema (memoria e CPU).
Anche il numero di righe influisce sulle prestazioni. Il database Adobe Campaign non è progettato per memorizzare i dati storici non utilizzati attivamente per il targeting o la personalizzazione; si tratta di un database operativo.
Per evitare problemi di prestazioni relativi al numero elevato di righe, conservare solo i record necessari nel database. Qualsiasi altro record deve essere esportato in un data warehouse di terze parti e rimosso dal database operativo Adobe Campaign .
Di seguito sono riportate alcune best practice relative alle dimensioni delle tabelle:
Esempio:
In questo esempio: