Best Practices für Datenmodelle data-model-best-practices
In diesem Dokument werden die wichtigsten Empfehlungen beim Entwerfen Ihres Adobe Campaign-Datenmodells erläutert.
Informationen zu den integrierten Tabellen in Campaign und deren Interaktion finden Sie in diesem Abschnitt .
Lesen Sie diese Dokumentation , um mit Campaign-Schemata zu beginnen. Erfahren Sie, wie Sie Erweiterungsschemata konfigurieren, um das konzeptionelle Datenmodell der Adobe Campaign-Datenbank in diesem Dokument zu erweitern.
Überblick overview
Das Adobe Campaign-System ist äußerst flexibel und kann über die ursprüngliche Implementierung hinaus erweitert werden. Obwohl die Möglichkeiten unbegrenzt sind, ist es wichtig, die richtigen Entscheidungen zu treffen und eine solide Grundlage zu schaffen, um mit der Entwicklung Ihres Datenmodells zu beginnen.
Dieses Dokument enthält gängige Anwendungsfälle und Best Practices, mit denen Sie erfahren, wie Sie Ihr Adobe Campaign-Tool ordnungsgemäß erstellen.
Architektur von Datenmodellen data-model-architecture
Adobe Campaign ist ein leistungsstarkes kanalübergreifendes System zur Kampagnenverwaltung, das es Ihnen ermöglicht, Online- und Offline-Strategien zu kombinieren, um personalisierte Kundenerlebnisse bereitzustellen.
Kundenorientierter Ansatz customer-centric-approach
Während die meisten E-Mail-Dienstleister für die Kundenkommunikation einen listenorientierten Ansatz verfolgen, setzt Adobe Campaign eine relationale Datenbank ein, um eine breitere Sicht auf die Kunden und ihre Eigenschaften zu nutzen.
Dieser kundenorientierte Ansatz wird in der Grafik unten dargestellt. Die graue Tabelle Empfänger stellt die Hauptkundentabelle dar, um die herum alles erstellt wird:
Um Beschreibungen der einzelnen Tabellen aufzurufen, navigieren Sie zu "Admin" > "Konfiguration" > "Datenschemata", wählen Sie eine Ressource aus der Liste und klicken Sie auf die Registerkarte Dokumentation.
Das Adobe Campaign-Standarddatenmodell wird in diesem Dokument vorgestellt.
Daten für Adobe Campaign data-for-campaign
Welche Daten sollten an Adobe Campaign gesendet werden? Es ist äußerst wichtig festzustellen, welche Daten Sie für Ihre Marketing-Aktivitäten benötigen.
Um zu entscheiden, ob ein Attribut in Adobe Campaign erforderlich ist, fragen Sie sich, ob es in eine der folgenden Kategorien passt:
- Für die Segmentierung verwendetes Attribut
- Für Datenverwaltungsprozesse verwendetes Attribut (z. B. Aggregatberechnung)
- Für die Personalisierung verwendetes Attribut
Wenn ein Attribut nicht in eine dieser Kategorien fällt, benötigen Sie es wahrscheinlich nicht in Adobe Campaign.
Auswahl von Datentypen data-types
Um eine gute Architektur und System-Performance sicherzustellen, befolgen Sie die folgenden Best Practices, wenn Sie Daten in Adobe Campaign einrichten.
- Eine große Tabelle sollte überwiegend numerische Felder aufweisen und Relationen zu Referenztabellen enthalten (bei Einsatz von Wertelisten).
- Mit dem Attribut expr können Sie ein Schema-Attribut in einer Tabelle als berechnetes Feld definieren (anstelle eines physischen definierten Werts). Dies ermöglicht den Zugriff auf Informationen in einem anderen Format (z. B. Alter und Geburtsdatum), ohne beide Werte speichern zu müssen. So lässt sich verhindern, dass Felder dupliziert werden. Die Empfängertabelle nutzt beispielsweise einen Ausdruck für die Domain, der bereits im E-Mail-Feld vorhanden ist.
- Wenn die Berechnung des Ausdrucks jedoch komplex ist, wird eine Verwendung des Attributs expr nicht empfohlen, da eine Ad-hoc-Berechnung Auswirkungen auf die Performance Ihrer Abfragen haben kann.
- Der Typ XML hilft dabei, eine Erstellung von zu vielen Feldern zu verhindern. Er benötigt jedoch Speicherplatz, da er eine CLOB-Spalte in der Datenbank verwendet. Außerdem können komplexe SQL-Abfragen entstehen, die die Performance beeinträchtigen.
- Die Länge eines Zeichenfolgenfelds sollte immer mit der Spalte definiert werden. Standardmäßig beträgt die maximale Länge in Adobe Campaign 255 Zeichen. Adobe empfiehlt jedoch, das Feld zu kürzen, wenn Sie bereits wissen, dass auch weniger ausreicht.
- Es ist akzeptabel, dass ein Feld in Adobe Campaign kürzer ist als im Quellsystem, wenn Sie sicher sind, dass die Länge im Quellsystem zu groß ist und nicht benötigt wird. Dies könnte eine kürzere Zeichenfolge oder kleinere Ganzzahl in Adobe Campaign bedeuten.
Auswahl von Feldern choice-of-fields
Felder müssen in einer Tabelle gespeichert werden, wenn sie Zielgruppenbestimmungs- oder Personalisierungszwecken dienen. Wenn also ein Feld nicht zum Senden einer personalisierten E-Mail verwendet oder als Kriterium in einer Abfrage verwendet wird, belegt es Speicherplatz, während es nutzlos ist.
Bei hybriden und On-Premise-Instanzen deckt FDA (Federated Data Access, eine optionale Funktion, die den Zugriff auf externe Daten ermöglicht) die Notwendigkeit ab, während eines Kampagnenprozesses ein Feld "spontan"hinzuzufügen. Sie müssen nicht alles importieren, wenn Sie über FDA verfügen. Weiterführende Informationen dazu finden Sie im Abschnitt Über den Federated Data Access.
Auswahl von Schlüsseln choice-of-keys
Zusätzlich zu dem in den meisten Tabellen standardmäßig definierten autopk sollten Sie einige logische oder geschäftliche Schlüssel hinzufügen (Kontonummer, Kundennummer usw.). Diese können später für Importe, Abstimmungen oder Daten-Packages verwendet werden. Weitere Informationen hierzu finden Sie unter Kennungen.
Effiziente Schlüssel sind unverzichtbar für hohe Performance. Numerische Datentypen sollten als Schlüssel für Tabellen stets bevorzugt werden.
Für SQLServer-Datenbanken können Sie die Verwendung von "geclustertem Index"in Erwägung ziehen, wenn eine Leistung erforderlich ist. Da Adobe dies nicht handhabt, müssen Sie es in SQL erstellen.
Dedizierte Tablespaces dedicated-tablespaces
Mit dem Tablespace-Attribut im Schema können Sie einen dedizierten Tablespace für eine Tabelle angeben.
Mit dem Installationsassistenten können Sie Objekte nach Typ (Daten, temporär und Index) speichern.
Dedizierte Tablespaces eignen sich besser für Partitionierung, Sicherheitsregeln und ermöglichen eine reibungslose und flexible Verwaltung, bessere Optimierung und Leistung.
Kennungen identifiers
Adobe Campaign-Ressourcen verfügen über drei Kennungen (IDs). Sie können auch eine zusätzliche Kennung hinzuzufügen.
Die folgende Tabelle beschreibt diese Kennungen und ihren Zweck.
- Die ID ist der physische Primärschlüssel einer Adobe Campaign-Tabelle. Bei nativen Tabellen ist dies eine generierte 32-Bit-Zahl aus einer Sequenz
- Diese Kennung ist in der Regel für eine bestimmte Adobe Campaign-Instanz eindeutig.
- Eine automatisch generierte ID kann in einer Schemadefinition sichtbar sein. Suchen Sie das Attribut autopk="true" .
- Automatisch erstellte Kennungen sollten nicht als Referenz in einem Workflow oder in einer Package-Definition verwendet werden.
- Es sollte nicht angenommen werden, dass die ID immer eine steigende Zahl sein wird.
- Die ID in einer nativen Tabelle ist eine 32-Bit-Zahl und dieser Typ sollte nicht geändert werden. Diese Zahl stammt aus einer "Sequenz", die im Abschnitt mit demselben Namen behandelt wird.
- Diese Information ist eine eindeutige Kennung eines Datensatzes in einer Tabelle. Der Wert kann manuell aktualisiert werden, üblicherweise mit einem erstellten Namen.
- Die Kennung behält ihren Wert bei, wenn sie in einer anderen Instanz von Adobe Campaign bereitgestellt wird, und darf nicht leer sein.
- Benennen Sie den von Adobe Campaign generierten Datensatznamen um, wenn das Objekt von einer Umgebung in eine andere bereitgestellt werden soll.
- Wenn ein Objekt beispielsweise über ein Namespace-Attribut verfügt (zum Beispiel schema), wird dieser gemeinsame Namespace für alle erstellten benutzerdefinierten Objekte genutzt. Einige reservierte Namespaces sollten nicht verwendet werden: nms, xtk, nl, ncl, crm, xxl.
- Wenn ein Objekt keinen Namespace aufweist (zum Beispiel workflow oder delivery), wird dieser Namespace-Begriff als Präfix eines internen Namensobjekts hinzugefügt: namespaceMyObjectName.
- Verwenden Sie keine Sonderzeichen wie Leerzeichen "", Semikolon ":" oder Bindestrich "-". Alle diese Zeichen würden durch einen Unterstrich (_) ersetzt werden. Beispielsweise würden "abc-def" und "abc:def" als "abc_def" gespeichert werden und sich gegenseitig überschreiben.
- Der Titel ist die Unternehmenskennung eines Objekts oder Datensatzes in Adobe Campaign.
- Dieses Objekt erlaubt Leerzeichen und Sonderzeichen.
- Der Titel garantiert nicht die Einzigartigkeit eines Datensatzes.
- Es wird empfohlen, eine Struktur für die Objekttitel festzulegen.
- Dies ist die benutzerfreundlichste Lösung, um einen Datensatz oder ein Objekt für einen Adobe Campaign-Benutzer zu identifizieren.
Benutzerdefinierte interne Schlüssel custom-internal-keys
Für jede in Adobe Campaign erstellte Tabelle sind Primärschlüssel erforderlich.
Die meisten Unternehmen importieren Datensätze aus externen Systemen. Während der physische Schlüssel der Empfängertabelle das "id"-Attribut ist, kann zusätzlich ein benutzerdefinierter Schlüssel festgelegt werden.
Dieser benutzerdefinierte Schlüssel ist der eigentliche Hauptschlüssel des Datensatzes im externen System, das Daten für Adobe Campaign bereitstellt.
Wenn eine vordefinierte Tabelle sowohl über ein autopk als auch über einen internen Schlüssel verfügt, wird der interne Schlüssel als eindeutiger Index in der physischen Datenbanktabelle festgelegt.
Beim Erstellen einer benutzerdefinierten Tabelle stehen Ihnen zwei Optionen zur Verfügung:
- Kombination aus einem automatisch erstellten Schlüssel (ID) und einem internen Schlüssel (benutzerdefiniert). Diese Option ist interessant, wenn Ihr Systemschlüssel ein zusammengesetzter Schlüssel oder keine Ganzzahl ist. Ganzzahlen bieten höhere Performance in umfangreichen Tabellen und in Verbindung mit anderen Tabellen.
- Verwendung des Primärschlüssels als Primärschlüssel des externen Systems. Diese Lösung wird in der Regel bevorzugt, da sie das Importieren und Exportieren von Daten durch einen einheitlichen Schlüssel zwischen verschiedenen Systemen vereinfacht. Autopk sollte deaktiviert werden, wenn der Schlüssel "id"heißt und mit externen Werten gefüllt werden soll (nicht automatisch generiert).
Sequenzen sequences
Der Primärschlüssel von Adobe Campaign ist eine automatisch generierte ID für alle nativen Tabellen und kann für benutzerdefinierte Tabellen identisch sein. Weiterführende Informationen hierzu finden Sie in diesem Abschnitt.
Dieser Wert stammt aus einer so genannten Sequenz, einem Datenbankobjekt, das zum Generieren einer Zahlensequenz verwendet wird.
Es gibt zwei Arten von Sequenzen:
- Freigegeben: Mehrere Tabellen wählten ihre ID aus derselben Sequenz aus. Das bedeutet, dass keine andere Tabelle, die dieselbe Sequenz hat, einen Datensatz mit der ID 'X' hätte, wenn eine ID 'X' von einer Tabelle verwendet wird. XtkNewId ist die standardmäßige freigegebene Sequenz, die in Adobe Campaign verfügbar ist.
- Dedicated: Nur eine Tabelle wählt ihre IDs aus der Sequenz aus. Der Sequenzname würde normalerweise den Tabellennamen enthalten.
Deshalb würde einem Kunden, der jährlich 6 Milliarden E-Mails mit einer Aufbewahrungsfrist von 180 Tagen für seine Protokolle sendet, innerhalb von 4 Monaten die IDs ausgehen. Um eine solche Herausforderung zu vermeiden, stellen Sie sicher, dass Sie Bereinigungsparameter entsprechend Ihren Volumina haben. Weiterführende Informationen hierzu finden Sie in diesem Abschnitt.
Wenn in Adobe Campaign eine benutzerdefinierte Tabelle mit einem Primärschlüssel als autoPK erstellt wird, sollte dieser Tabelle systematisch eine benutzerdefinierte dedizierte Sequenz zugeordnet werden.
Standardmäßig hat eine benutzerdefinierte Sequenz Werte zwischen +1.000 und +2,1 BB. Technisch gesehen ist es möglich, einen vollständigen Bereich von 4BB zu erhalten, indem negative IDs aktiviert werden. Dies sollte mit Vorsicht verwendet werden und beim Übergang von negativen zu positiven Werten geht eine ID verloren: Der Datensatz 0 wird normalerweise von Adobe Campaign in generierten SQL-Abfragen ignoriert.
Weitere Informationen zur Erschöpfung von Sequenzen finden Sie in diesem Video.
Indizes indexes
Indizes sind für die Leistung unverzichtbar. Wenn Sie einen Schlüssel im Schema deklarieren, erstellt Adobe automatisch einen Index für die Felder des Schlüssels. Sie können auch weitere Indizes für Abfragen deklarieren, die den Schlüssel nicht verwenden.
Adobe empfiehlt, zusätzliche Indizes zu definieren, da dies die Performance verbessern kann.
Beachten Sie jedoch Folgendes:
- Die Indexnutzung ist an Ihr Zugriffsmuster gebunden. Die Optimierung der Indizierung ist häufig ein wichtiger Bestandteil des Datenbankdesigns und muss von Experten durchgeführt werden. Das Hinzufügen von Indizes ist häufig ein iterativer Workflow, der mit der Datenbankwartung verbunden ist. Es wird Schritt für Schritt durchgeführt, um Leistungsprobleme zu beheben, wenn dies geschieht.
- Indizes erhöhen die Gesamtgröße der Tabelle (um den Index selbst zu speichern).
- Das Hinzufügen von Index zu Spalten kann die Leistung des Datenlesehilfen (SELECT) verbessern, kann aber die Leistung des Datenschreibzugriffs (UPDATE) verringern.
- Da sich dies auf die Leistung beim Einfügen von Daten auswirkt, sollten Indizes in Größe und Anzahl begrenzt sein.
- Fügen Sie bei Bedarf keine Indizes hinzu. Stellen Sie sicher, dass sie erforderlich ist und die Gesamtleistung Ihrer Abfragen erhöht (Test und Lernen).
- Im Allgemeinen ist ein Index effizient, wenn Sie wissen, dass Ihre Abfragen nicht mehr als 10 % der Datensätze zurückbringen.
- Wählen Sie die zu definierenden Indizes sorgfältig aus.
- Entfernen Sie keine nativen Indizes aus nativen Tabellen.
Beispiel
Die Verwaltung von Indizes kann sehr komplex werden. Daher ist es wichtig zu verstehen, wie sie funktionieren. Um diese Komplexität zu veranschaulichen, nehmen wir ein grundlegendes Beispiel, wie die Suche nach Empfängern durch Filterung des Vor- und Nachnamens. Gehen Sie dazu wie folgt vor:
-
Gehen Sie in den Ordner, in dem alle Empfänger der Datenbank aufgeführt sind. Weiterführende Informationen dazu finden Sie unter Verwalten von Profilen.
-
Klicken Sie mit der rechten Maustaste auf das Feld Vorname .
-
Wählen Sie Auf dieses Feld filtern aus.
-
Wiederholen Sie diesen Vorgang für das Feld Nachname .
Die beiden entsprechenden Filter werden am oberen Bildschirmrand hinzugefügt.
Sie können nun entsprechend den verschiedenen Filterbedingungen Suchfilter für die Felder Vorname und Nachname durchführen.
Um die Suche nach diesen Filtern zu beschleunigen, können Sie jetzt Indizes hinzufügen. Welche Indizes sollten jedoch verwendet werden?
Die folgende Tabelle zeigt, in welchen Fällen die drei unten beschriebenen Indizes verwendet werden oder nicht dem in der ersten Spalte angezeigten Zugriffsmuster entsprechen.
Relationen und Kardinalität links-and-cardinality
Relationen links
Achten Sie bei großen Tabellen auf die "eigene" Integrität. Das Löschen von Datensätzen mit großen Tabellen in der Integrität "own"kann die Instanz stoppen. Die Tabelle wird gesperrt; die Löschungen werden einzeln vorgenommen. Daher ist es am besten, bei untergeordneten Tabellen mit großen Volumen "neutrale" Integrität anzuwenden.
Das Deklarieren einer Relation als externer Join ist nicht gut für die Performance. Der Null-ID-Datensatz emuliert die externe Join-Funktion. Es ist nicht erforderlich, externe Joins zu deklarieren, wenn der Link die automatische Verknüpfung verwendet.
Obwohl es möglich ist, eine beliebige Tabelle in einem Workflow einzubinden, empfiehlt Adobe, allgemeine Relationen zwischen Ressourcen direkt in der Definition der Datenstruktur festzulegen.
Die Relation sollte entsprechend den tatsächlichen Daten in den Tabellen definiert werden. Eine falsche Definition könnte sich auf Daten auswirken, die über Relationen abgerufen wurden, z. B. durch unerwartetes Duplizieren von Datensätzen.
Benennen Sie die Relation konsequent nach der Tabelle: Der Name der Relation sollte Aufschluss über die ferne Tabelle geben.
Benennen Sie eine Relation nicht mit "id" als Suffix. Benennen Sie sie beispielsweise "transaction" anstelle von "transactionId".
Standardmäßig erstellt Adobe Campaign eine Relation mit dem Primärschlüssel der externen Tabelle. Aus Gründen der Klarheit ist es besser, den Join in der Relationsdefinition explizit zu definieren.
Den Attributen, die in einem Link verwendet werden, wird ein Index hinzugefügt.
Die Links, die erstellt wurden und zuletzt geändert wurden, sind in vielen Tabellen enthalten. Es ist möglich, den Index mithilfe des Attributs noDbIndex im Link zu deaktivieren, wenn diese Informationen nicht vom Unternehmen verwendet werden.
Kardinalität cardinality
Stellen Sie beim Entwerfen einer Relation sicher, dass der Zieldatensatz eindeutig ist, falls eine 1-1-Beziehung deklariert wurde. Andernfalls gibt der Join möglicherweise mehrere Datensätze zurück, wenn nur einer erwartet wird. Dies führt bei der Versandvorbereitung zu Fehlern, wenn "die Abfrage mehr Zeilen zurückgibt als erwartet". Verwenden Sie als Namen für die Relation denselben Namen wie beim Zielschema.
Definieren Sie eine Relation mit einer Kardinalität (1-N) im Schema auf der Seite (1). So sollte beispielsweise die Relation "Empfänger (1) - (N) Transaktion" im Transaktionsschema definiert werden.
Beachten Sie, dass eine Umkehrkardinalität einer Relation standardmäßig (N) lautet. Sie können eine Relation (1-1) definieren, indem Sie das Attribut revCardinality='single' zur Relationsdefinition hinzufügen.
Wenn die Umkehrrelation für den Anwender nicht sichtbar sein soll, können Sie sie mit der Relationsdefinition revLink='NONE' ausblenden. Ein typischer Anwendungsfall hierfür wäre die Definition einer Relation vom Empfänger zur letzten ausgeführten Transaktion. Sie müssen lediglich die Relation vom Empfänger zur letzten Transaktion sehen. In der Transaktionstabelle muss keine Umkehrrelation sichtbar sein.
Relationen, die einen externen Join vornehmen (1-0…1), sollten mit Vorsicht verwendet werden, da sie die System-Performance beeinträchtigen.
Datenbeibehaltung - Bereinigung und Bereinigung data-retention
Adobe Campaign ist weder ein Data Warehouse noch ein Reporting-Tool. Zur Sicherstellung hoher Performance von Adobe Campaign sollte daher das Datenbankwachstum kontrolliert werden. Dazu kann hilfreich sein, einige der unten aufgeführten Best Practices zu befolgen.
Standardmäßig haben Versand- und Trackinglogs von Adobe Campaign eine Aufbewahrungsdauer von 180 Tagen. Ein Bereinigungsprozess wird ausgeführt, um alle Protokolle zu entfernen, die älter sind.
- Wenn Sie die Logs länger aufbewahren möchten, sollte diese Entscheidung in Abhängigkeit von der Größe der Datenbank und der Menge der gesendeten Nachrichten sorgfältig getroffen werden. Zur Erinnerung: Die Adobe Campaign-Sequenz ist eine 32-Bit-Ganzzahl.
- Es wird empfohlen, nicht mehr als eine Milliarde Datensätze gleichzeitig in diesen Tabellen zu haben (etwa 50 % der verfügbaren 2,14 Milliarden IDs), um das Risiko des Verbrauchs aller verfügbaren IDs zu begrenzen. Dies erfordert, dass einige Kunden die Aufbewahrungsdauer unter 180 Tage senken.
Weitere Informationen zur Aufbewahrung von Daten finden Sie in den Richtlinien zum Datenschutz und zur Sicherheit von Campaign.
Weiterführende Informationen zum Campaign-Datenbasisbereinigungs-Workflow finden Sie in diesem Abschnitt.
Es gibt verschiedene Lösungen, um den Bedarf an Datensätzen in Adobe Campaign zu minimieren:
- Exportieren Sie die Daten in ein Data Warehouse außerhalb von Adobe Campaign.
- Generieren Sie aggregierte Werte, die weniger Platz einnehmen und dennoch für Ihre Marketing-Zwecke ausreichen. Sie benötigen beispielsweise nicht den vollständigen Verlauf von Kundentransaktionen in Adobe Campaign, um die letzten Käufe verfolgen zu können.
Sie können in einem Schema das Attribut "deleteStatus" deklarieren. Effizienter ist es, den Datensatz als gelöscht zu markieren und das Löschen in die Bereinigungsaufgabe zu verschieben.
Performance performance
Befolgen Sie die nachstehenden Best Practices, um eine bessere Performance sicherzustellen.
Allgemeine Empfehlungen general-recommendations
- Vermeiden Sie die Verwendung von Operationen wie "CONTAINS" in Abfragen. Wenn Sie wissen, wonach gefiltert werden soll, wenden Sie dieselbe Bedingung mit "EQUAL TO" oder anderen spezifischen Filteroperatoren an.
- Vermeiden Sie die Verknüpfung mit nicht indizierten Feldern beim Aufbau von Daten in Workflows.
- Vergewissern Sie sich, dass Prozesse wie Import und Export außerhalb der Geschäftszeiten ausgeführt werden.
- Stellen Sie sicher, dass ein Zeitplan für alle täglichen Aktivitäten vorhanden ist und halten Sie sich an ihn.
- Wenn einer oder mehrere der täglichen Prozesse fehlschlagen und sie am selben Tag noch ausgeführt werden müssen, stellen Sie sicher, dass beim Starten des manuellen Prozesses keine Konflikte auftreten, da dies die System-Performance beeinträchtigen könnte.
- Stellen Sie sicher, dass keine der täglichen Kampagnen während des Importvorgangs oder bei der Ausführung eines manuellen Prozesses ausgeführt wird.
- Verwenden Sie eine oder mehrere Referenztabellen, anstatt ein Feld in jeder Zeile zu duplizieren. Bei Verwendung von Schlüssel/Wert-Paaren ist es empfehlenswert, einen numerischen Schlüssel zu wählen.
- Eine kurze Zeichenfolge ist weiterhin zulässig. Falls Referenztabellen bereits in einem externen System vorhanden sind, erleichtert die Wiederverwendung derselben die Datenintegration mit Adobe Campaign.
1-zu-n-Beziehungen one-to-many-relationships
- Das Datendesign beeinflusst Benutzerfreundlichkeit und Funktionalität. Wenn Sie Ihr Datenmodell mit zahlreichen 1-zu-n-Beziehungen entwickeln, wird es für Benutzer schwieriger, in der Anwendung eine sinnvolle Logik zu erstellen. Für technisch nicht versierte Marketing-Experten kann es schwierig sein, eine 1-zu-n-Filterlogik zu entwerfen und zu verstehen.
- Es wird empfohlen, alle wichtigen Felder in einer Tabelle zu vereinen, da Benutzer so leichter Abfragen erstellen können. Unter Umständen kann die Performance auch verbessert werden, wenn einige Felder in mehreren Tabellen dupliziert werden, wenn dadurch ein Join vermieden werden kann.
- Bestimmte integrierte Funktionen können nicht auf 1-zu-n Beziehungen verweisen, z. B. die Angebotsgewichtungsformel und Sendungen.
Große Tabellen large-tables
Adobe Campaign setzt auf Datenbank-Engines von Drittanbietern. Je nach Anbieter ist für die Performance-Optimierung bei größeren Tabellen möglicherweise ein bestimmtes Design erforderlich.
Im Folgenden finden Sie einige verbreitete Best Practices, die beim Entwerfen Ihres Datenmodells mit großen Tabellen und komplexen Joins befolgt werden sollten.
- Wenn Sie zusätzliche benutzerdefinierte Empfängertabellen verwenden, stellen Sie sicher, dass Sie für jedes Versand-Mapping über eine dedizierte Protokolltabelle verfügen.
- Reduzieren Sie die Anzahl der Spalten, indem Sie beispielsweise die nicht verwendeten Spalten ermitteln.
- Optimieren Sie die Datenmodellrelationen, indem Sie komplexe Joins vermeiden, wie z. B. Joins mit mehreren Bedingungen und/oder mit mehreren Spalten.
- Verwenden Sie für Join-Schlüssel immer numerische Daten anstelle von Zeichenfolgen.
- Reduzieren Sie die Tiefe der Protokollaufbewahrung so weit wie möglich. Wenn Sie einen tieferen Verlauf benötigen, können Sie Berechnungen aggregieren und/oder benutzerdefinierte Protokolltabellen bearbeiten, um einen größeren Verlauf zu speichern.
Größe von Tabellen size-of-tables
Die Tabellengröße ist eine Kombination aus der Anzahl der Datensätze und der Anzahl der Spalten pro Datensatz. Beide können sich auf die Performance von Abfragen auswirken.
- Eine kleine Tabelle entspricht der Größe der Versandtabelle.
- Eine mittelgroße Tabelle entspricht der Größe der Empfängertabelle. Sie weist einen Datensatz pro Kunde auf.
- Eine große Tabelle entspricht der Größe der Tabelle "Umfassendes Protokoll". Sie enthält mehrere Datensätze pro Kunde.
Wenn Ihre Datenbank z. B. 10 Millionen Empfänger umfasst, enthält die Tabelle "Umfassendes Protokoll" etwa 100 bis 200 Millionen Nachrichten und die Tabelle "Versand" einige Tausend Datensätze.
In PostgreSQL sollte eine Zeile nicht größer als 8 KB sein, um den Mechanismus TOAST zu vermeiden. Versuchen Sie daher, die Anzahl der Spalten und die Größe jeder Zeile so weit wie möglich zu reduzieren, um eine optimale Systemleistung (Speicher und CPU) zu gewährleisten.
Die Anzahl der Zeilen wirkt sich ebenfalls auf die Performance aus. Die Adobe Campaign-Datenbank dient nicht zum Speichern von Verlaufsdaten, die nicht aktiv für Zielgruppenbestimmungs- oder Personalisierungszwecke verwendet werden. Es handelt sich dabei um eine operative Datenbank.
Um Performance-Probleme im Zusammenhang mit der hohen Zeilenanzahl zu verhindern, sollten Sie nur die erforderlichen Datensätze in der Datenbank speichern. Alle anderen Datensätze sollten Sie in das Data Warehouse eines Drittanbieters exportieren und aus der Adobe Campaign-Betriebsdatenbank entfernen.
Im Folgenden finden Sie Best Practices zur Größe von Tabellen:
- Planen Sie große Tabellen mit weniger Feldern und mehr numerischen Daten.
- Verwenden Sie nicht den umfangreichen Spaltentyp (z. B. Int64), um kleine Zahlen wie boolesche Werte zu speichern.
- Entfernen Sie nicht verwendete Spalten aus der Tabellendefinition.
- Behalten Sie keine alten oder inaktiven Daten in Ihrer Adobe Campaign-Datenbank bei (Export und Bereinigung).
Hier ein Beispiel:
In diesem Beispiel:
- Die Tabellen Transaktion und Transaktionselement sind groß: mehr als 10 Millionen.
- Die Tabellen Produkt und Store sind kleiner: weniger als 10.000.
- Die Produktbeschriftung und der Verweis wurden in die Tabelle Produkt eingefügt.
- Die Tabelle Transaktionselement enthält nur einen Link zur Tabelle Produkt, die numerisch ist.