Questo documento illustra i consigli chiave durante la progettazione del modello dati di Adobe Campaign.
Per informazioni sulle tabelle integrate di Campaign e sulla loro interazione, consulta questa sezione sezione.
Leggete questa documentazione per iniziare a utilizzare gli schemi di Campaign. Scopri come configurare gli schemi di estensione per estendere il modello dati concettuale del database di Adobe Campaign in questo documento.
Il sistema Adobe Campaign è estremamente flessibile e può essere esteso oltre l’implementazione iniziale. Tuttavia, anche se le possibilità sono infinite, è fondamentale prendere decisioni sagge e creare solide basi per iniziare a progettare il modello di dati.
Questo documento fornisce casi d’uso comuni e best practice per scoprire come progettare correttamente lo strumento Adobe Campaign.
Adobe Campaign è un potente sistema di gestione delle campagne cross-channel 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 con i clienti tramite un approccio incentrato sugli elenchi, Adobe Campaign si basa su un database relazionale per sfruttare una visione più ampia dei clienti e dei loro attributi.
Questo approccio incentrato sul cliente è illustrato nel grafico seguente. Il Destinatario la tabella in grigio rappresenta la principale tabella clienti intorno alla quale viene creato tutto:
Per accedere alla descrizione di ogni tabella, vai a Admin > Configuration > Data schemas, seleziona una risorsa dall’elenco e fai clic su Documentation scheda.
Il modello dati predefinito di 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 sfruttare lo standard Tabella destinatari che dispone già di tabelle e funzionalità aggiuntive predefinite.
Quali dati devono essere inviati ad Adobe Campaign? È fondamentale determinare i dati necessari per le attività di marketing.
Adobe Campaign non è né un data warehouse né uno strumento di reporting. Pertanto, non cercare di importare in Adobe Campaign tutti i possibili clienti e le relative informazioni associate, né importare dati che verranno utilizzati solo per creare rapporti.
Per decidere se un attributo sia necessario o meno in Adobe Campaign, chiediti se rientra in una di queste categorie:
Se non rientra in nessuno di questi, molto probabilmente non avrai bisogno di 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 on-premise, FDA (Federated Data Access, una funzione opzionale che consente di accedere ai dati esterni) soddisfa la necessità di aggiungere un campo "al volo" durante un processo di campagna. Non è necessario importare tutto se si dispone di FDA. Per ulteriori informazioni, consulta Informazioni su Federated Data Access.
Oltre al autopk definite per impostazione predefinita nella maggior parte delle tabelle, è consigliabile aggiungere alcune chiavi logiche o aziendali (numero di conto, numero di client e così via). Può essere utilizzato successivamente per importazioni/riconciliazione o pacchetti di dati. Per ulteriori informazioni, consulta Identificatori.
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, è consigliabile utilizzare "indice cluster" se sono necessarie le prestazioni. Poiché Adobe non gestisce questo elemento, è necessario crearlo in SQL.
L'attributo tablespace nello schema consente di specificare una tablespace dedicata per una tabella.
L'installazione guidata consente di memorizzare gli oggetti per tipo (dati, temporaneo 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.
Le risorse Adobe Campaign hanno tre identificatori ed è possibile aggiungere un identificatore aggiuntivo.
La tabella seguente descrive tali identificatori e il loro scopo.
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 importa record da sistemi esterni. Anche se la chiave fisica della tabella dei destinatari è l’attributo "id", è possibile determinare una chiave personalizzata in aggiunta.
Questa chiave personalizzata è la chiave primaria del record effettivo nel sistema esterno che alimenta Adobe Campaign.
Quando una tabella preconfigurata dispone sia di un blocco automatico che di una chiave interna, la chiave interna viene impostata come indice univoco nella tabella del database fisico.
Durante la creazione di una tabella personalizzata, sono disponibili due opzioni:
Non utilizzare l’autopk come riferimento nei flussi di lavoro.
La chiave primaria di 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 preso da ciò che viene chiamato sequenza, 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 allo 0 per riciclare gli ID.
Se i vecchi dati non sono stati eliminati, si verifica una violazione di chiave univoca, che diventa un bloccante per l’integrità e l’utilizzo della piattaforma. Adobe Campaign non sarebbe in grado di inviare comunicazioni (quando influisce sulla tabella dei registri di consegna) e le prestazioni sarebbero fortemente influenzate.
Pertanto, un cliente che invia 6 miliardi di e-mail all’anno con un periodo di conservazione di 180 giorni per i propri registri terminerebbe gli ID in 4 mesi. Per evitare questo problema, assicurati di disporre delle impostazioni di eliminazione in base ai volumi. Per ulteriori informazioni, consulta questa sezione.
Quando si crea una tabella personalizzata in Adobe Campaign con una chiave primaria come autoPK, a tale tabella deve essere associata sistematicamente una sequenza dedicata personalizzata.
Per impostazione predefinita, una sequenza personalizzata avrà valori compresi tra +1.000 e +2,1BB. Tecnicamente, è possibile ottenere una gamma completa di 4BB abilitando gli ID negativi. Questo deve essere utilizzato con cautela e un ID andrà perso quando si passa da numeri negativi a numeri positivi: il record 0 viene in genere ignorato da Adobe Campaign nelle query SQL generate.
Per ulteriori informazioni sull’esaurimento delle sequenze, consulta questo video.
Gli indici sono essenziali per le prestazioni. Quando dichiari una chiave nello schema, Adobe creerà automaticamente un indice sui campi della chiave. È inoltre possibile dichiarare più indici per le query che non utilizzano la chiave.
L’Adobe consiglia di definire indici aggiuntivi in quanto possono migliorare le prestazioni.
Tuttavia, tieni presente quanto segue:
La gestione degli indici può diventare molto complessa, pertanto è importante comprenderne il funzionamento. Per illustrare questa complessità, prendiamo un esempio di base, ad esempio la ricerca dei destinatari filtrando il nome e il cognome. Per eseguire questa operazione:
Passare alla cartella in cui sono elencati tutti i destinatari del database. Per ulteriori informazioni, consulta Gestione dei profili di .
Fare clic con il pulsante destro del mouse First name campo.
Seleziona Filter on this field.
Ripeti questa operazione per Last name campo.
I due filtri corrispondenti vengono aggiunti nella parte superiore dello schermo.
È ora possibile eseguire il filtro di ricerca sulla First name e Last name in base alle varie condizioni del filtro.
Ora per velocizzare la ricerca su questi filtri, puoi aggiungere indici. Ma quali indici dovrebbero essere utilizzati?
Questo esempio si applica ai clienti in hosting 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 |
---|---|---|---|---|
Il nome è uguale a "Johnny" | Utilizzato | Utilizzato | Non utilizzato | Poiché il nome si trova in prima posizione nell’indice 1, verrà utilizzato comunque: non è necessario aggiungere un criterio al cognome. |
Il nome è uguale a "Johnny" E il cognome è uguale a "Smith" | Utilizzato | Non utilizzato | Non utilizzato | Poiché nella stessa query vengono cercati entrambi gli attributi, verrà utilizzato solo l’indice che combina entrambi gli attributi. |
Cognome è uguale a "Smith" | Non utilizzato | Non utilizzato | Utilizzato | Viene preso in considerazione l’ordine degli attributi nell’indice. Se non si corrisponde a questo ordine, l’indice potrebbe non essere utilizzato. |
Il nome inizia con "Joh" | Utilizzato | Utilizzato | Non utilizzato | "Ricerca a sinistra" abiliterà gli indici. |
Il nome termina con "ny" | Non utilizzato | Non utilizzato | Non utilizzato | Con la funzione "Right search" (Ricerca a destra) gli indici vengono disattivati e viene eseguita un'analisi completa. Alcuni tipi di indice specifici possono gestire questo caso d’uso, ma non sono disponibili per impostazione predefinita in Adobe Campaign. |
Il nome contiene "John" | Non utilizzato | Non utilizzato | Non utilizzato | Si tratta di una combinazione di ricerche "sinistra" e "destra". A causa di quest’ultimo, disabiliterà gli indici e verrà eseguita un’analisi completa. |
Il nome è uguale a "John" | Non utilizzato | Non utilizzato | Non utilizzato | Gli indici fanno distinzione tra maiuscole e minuscole. Per evitare la distinzione tra maiuscole e minuscole, è necessario creare un indice specifico che includa una funzione SQL come "upper(firstname)". Fai lo stesso con altre trasformazioni di dati, ad esempio "unaccent(first name)". |
Presta attenzione alla "propria" integrità sulle tabelle di grandi dimensioni. L’eliminazione di record con tabelle di grandi dimensioni e integrità "propria" può arrestare l’istanza. La tabella è bloccata e le eliminazioni vengono eseguite una alla volta. Quindi è meglio usare l'integrità "neutra" su tavoli di bambini che hanno grandi volumi.
Dichiarare un collegamento come join esterno non è un vantaggio in termini di prestazioni. Il record con ID zero emula la funzionalità di join esterno. Non è necessario dichiarare join esterni se il collegamento utilizza l'autopk.
Anche se è possibile unire qualsiasi tabella in un flusso di lavoro, l’Adobe consiglia di definire collegamenti comuni tra le risorse direttamente nella definizione della struttura dati.
Il collegamento deve essere definito in allineamento con i dati effettivi nelle tabelle. Una definizione errata potrebbe influire sui dati recuperati tramite collegamenti, ad esempio duplicando in modo imprevisto i record.
Assegna al collegamento un nome coerente con il nome della tabella: il nome del collegamento dovrebbe aiutare a comprendere cosa è la tabella lontana.
Non denominare un collegamento con "id" come suffisso. Ad esempio, denominalo "transaction" invece di "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.
I collegamenti creato da e modificato da ultimo sono presenti in molte tabelle. È possibile disattivare l’indice utilizzando l’attributo noDbIndex sul collegamento, se queste informazioni non sono utilizzate dall’azienda.
Quando progetti un collegamento, accertati che il record di destinazione sia univoco quando è stata dichiarata una relazione 1-1. In caso contrario, il join può restituire più record quando ne è previsto solo uno. Ciò genera errori durante la preparazione della consegna quando "la query restituisce più righe del previsto". Imposta il nome del collegamento sullo stesso nome dello schema di destinazione.
Definisci un collegamento con una cardinalità (1-N) nello schema sul lato (1). Ad esempio, la relazione Destinatario (1) - (N) Transazione deve essere definita nello schema della transazione.
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, puoi nasconderlo con la definizione di collegamento revLink=’NESSUNO". Un buon caso d’uso consiste nel definire, ad esempio, un collegamento tra il destinatario e l’ultima transazione completata. È sufficiente visualizzare il collegamento tra il destinatario e l'ultima transazione e non è necessario che dalla tabella delle transazioni sia visibile alcun collegamento inverso.
I collegamenti che eseguono un join esterno (1-0…1) devono essere utilizzati con cautela in quanto influiscono 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 deve rimanere sotto controllo. Per ottenere questo risultato, segui alcune delle best practice riportate di seguito.
Per impostazione predefinita, i registri di consegna e tracciamento di Adobe Campaign hanno una durata di conservazione di 180 giorni. Viene eseguito un processo di pulizia per rimuovere tutti i registri più vecchi di quello.
Ulteriori informazioni sulla conservazione dei dati in Linee guida per la privacy e la sicurezza di Campaign.
Ulteriori informazioni sul flusso di lavoro di pulizia del database di Campaign in questa sezione.
Le tabelle personalizzate non vengono eliminate con il processo di pulizia standard. Anche se questo potrebbe non essere necessario il primo giorno, non dimenticare di creare un processo di eliminazione per le tabelle personalizzate, in quanto ciò potrebbe comportare 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ù efficiente contrassegnare il record come eliminato, quindi posticipare 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 tabelle di grandi dimensioni può richiedere una progettazione specifica.
Di seguito sono riportate alcune best practice comuni da seguire durante 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 BRINDISI meccanismo. Pertanto, prova a ridurre il più possibile il numero di colonne e le dimensioni di ogni riga per mantenere prestazioni ottimali del sistema (memoria e CPU).
Il numero di righe influisce anche sulle prestazioni. Il database di Adobe Campaign non è progettato per memorizzare dati storici che non vengono utilizzati attivamente a scopo di targeting o personalizzazione; si tratta di un database operativo.
Per evitare problemi di prestazioni relativi al numero elevato di righe, conserva nel database solo i record necessari. Qualsiasi altro record deve essere esportato in un data warehouse di terze parti e rimosso dal database operativo di Adobe Campaign.
Di seguito sono riportate alcune best practice relative alle dimensioni delle tabelle:
Ecco un esempio:
In questo esempio: