Este documento describe las recomendaciones clave al diseñar el modelo de datos de Adobe Campaign.
Para comprender mejor las tablas integradas de Campaña y su interacción, consulte la sección modelo de datos de Campaign Classic.
Lea esta documentación para empezar a usar esquemas de Campaña. Obtenga información sobre cómo configurar esquemas de extensión para ampliar el modelo de datos conceptuales de la base de datos de Adobe Campaign en este documento.
El sistema Adobe Campaign es extremadamente flexible y puede ampliarse más allá de la implementación inicial. Sin embargo, aunque las posibilidades son infinitas, es fundamental tomar decisiones acertadas y construir bases sólidas para el inicio del diseño del modelo de datos.
Este documento proporciona casos de uso comunes y optimizaciones para aprender a diseñar correctamente la herramienta Adobe Campaign.
Adobe Campaign Standard es un potente sistema de gestión de la campaña entre canales que puede ayudarle a alinear sus estrategias en línea y sin conexión para crear experiencias personalizadas con los clientes.
Aunque la mayoría de los proveedores de servicio de correo electrónico se comunican a los clientes mediante un enfoque centrado en la lista, Adobe Campaign depende de una base de datos relacional para aprovechar una vista más amplia de los clientes y sus atributos.
Este enfoque centrado en el cliente se muestra en el gráfico siguiente. La tabla Destinatario en gris representa la tabla principal del cliente en torno a la cual se está generando todo:
Para acceder a la descripción de cada tabla, vaya a Admin > Configuration > Data schemas, seleccione un recurso en la lista y haga clic en la ficha Documentation.
El modelo de datos predeterminado de Adobe Campaign se presenta en este documento.
Adobe Campaign Classic permite crear una tabla de cliente personalizada. Sin embargo, en la mayoría de los casos, se recomienda aprovechar la tabla de Destinatario estándar, que ya tiene tablas y características adicionales prediseñadas.
¿Qué datos se deben enviar a Adobe Campaign? Es fundamental determinar los datos requeridos para sus actividades de mercadotecnia.
Adobe Campaign no es ni un almacén de datos ni una herramienta de sistema de informes. Por lo tanto, no intente importar todos los clientes posibles y la información asociada a Adobe Campaign, ni importar datos que solo se utilizarán para generar informes.
Para tomar la decisión de si un atributo sería necesario o no en Adobe Campaign, pregunte si se incluiría en una de estas categorías:
Si no cae en ninguno de estos, lo más probable es que no necesite este atributo en Adobe Campaign.
Para garantizar una buena arquitectura y rendimiento de su sistema, siga las optimizaciones que se describen a continuación para configurar los datos en Adobe Campaign.
Se requiere que un campo se almacene en una tabla si tiene un objetivo o un propósito de personalización. En otras palabras, si un campo no se utiliza para enviar un correo electrónico personalizado o como criterio en una consulta, ocupa espacio en disco mientras que es inútil.
Para instancias híbridas y locales, FDA (Acceso de datos federado, una función opcional que permite acceder a datos externos) cubre la necesidad de agregar un campo "sobre la marcha" durante un proceso de campaña. No es necesario importar todo si tiene FDA. Para obtener más información sobre esto, consulte Acerca de Acceso de datos federado.
Además de la autopk definida de forma predeterminada en la mayoría de las tablas, debe considerar la posibilidad de agregar algunas claves lógicas o comerciales (número de cuenta, número de cliente, etc.). Puede utilizarse posteriormente para importaciones/conciliación o paquetes de datos. Para obtener más información sobre esto, consulte Identifiers.
Las claves eficientes son esenciales para el rendimiento. Siempre se debe preferir los tipos de datos numéricos como claves para las tablas.
Para la base de datos de SQLServer, podría considerar el uso de "índice agrupado" si se necesita rendimiento. Como Adobe no gestiona esto, debe crearlo en SQL.
El atributo tablespace del esquema permite especificar un tablespace dedicado para una tabla.
El asistente de instalación permite almacenar objetos por tipo (datos, temporales e índice).
Los tablespaces dedicados son mejores para el particionamiento, las reglas de seguridad y permiten una administración fluida y flexible, una mejor optimización y un mejor rendimiento.
Los recursos de Adobe Campaign tienen tres identificadores y es posible agregar un identificador adicional.
En la tabla siguiente se describen estos identificadores y su finalidad.
Identifier | Descripción | Prácticas recomendadas |
---|---|---|
Id |
|
|
Nombre (o nombre interno) |
|
|
Etiqueta |
|
|
Las claves principales son necesarias para cada tabla creada en Adobe Campaign.
La mayoría de las organizaciones están importando registros de sistemas externos. Aunque la clave física de la tabla de Destinatario es el atributo "id", también es posible determinar una clave personalizada.
Esta clave personalizada es la clave principal de registro real en el sistema externo que alimenta a Adobe Campaign.
Cuando una tabla lista para usar tiene una autoprueba y una clave interna, la clave interna se configurará como un índice único en la tabla de la base de datos física.
Al crear una tabla personalizada, tiene dos opciones:
No debe utilizarse una autopsia como referencia en flujos de trabajo.
La clave principal de Adobe Campaign es una ID generada automáticamente para todas las tablas integradas y puede ser la misma para las tablas personalizadas. Para obtener más información, consulte esta sección.
Este valor se toma de lo que se denomina una secuencia, que es un objeto de base de datos utilizado para generar una secuencia numérica.
Existen dos tipos de secuencias:
La secuencia es un valor entero de 32 bits, con un número máximo finito de valores disponibles: 2.140 millones. Después de alcanzar el valor máximo, la secuencia regresa a 0 para reciclar los identificadores.
Si no se han depurado los datos antiguos, el resultado será una infracción de clave única, que se convertirá en un bloqueador del estado y uso de la plataforma. Adobe Campaign no podría enviar comunicaciones (cuando repercuta en la tabla de registro de envíos) y las prestaciones se verían muy afectadas.
Por lo tanto, un cliente que envía 6.000 millones de correos electrónicos anualmente con un período de retención de 180 días para sus registros se quedaría sin ID en 4 meses. Para evitar este desafío, asegúrese de tener la configuración de purga según los volúmenes. Para obtener más información, consulte esta sección.
Cuando se crea una tabla personalizada en Adobe Campaign con una clave principal como autoPK, se debe asociar sistemáticamente una secuencia dedicada personalizada con esa tabla.
De forma predeterminada, una secuencia personalizada tendrá valores que oscilarán entre +1000 y +2,1BB. Técnicamente, es posible obtener una gama completa de 4BB habilitando identificadores negativos. Debe utilizarse con cuidado y se perderá una identificación al pasar de números negativos a positivos: adobe campaign classic suele ignorar el registro 0 en las consultas SQL generadas.
Temas relacionados:
Los índices son esenciales para el rendimiento. Cuando se declara una clave en el esquema, Adobe creará automáticamente un índice en los campos de la clave. También puede declarar más índices para consultas que no utilicen la clave.
Adobe recomienda definir índices adicionales, ya que puede mejorar el rendimiento.
Sin embargo, tenga en cuenta lo siguiente:
La administración de índices puede llegar a ser muy compleja, por lo que es importante comprender cómo funcionan. Para ilustrar esta complejidad, veamos un ejemplo básico, como buscar destinatarios, filtrando el nombre y los apellidos. Para ello:
Vaya a la carpeta que lista todos los destinatarios de la base de datos. Para obtener más información sobre esto, consulte Administración de perfiles.
Haga clic con el botón secundario en el campo First name.
Seleccione Filter on this field.
Repita esta operación para el campo Last name.
Los dos filtros correspondientes se agregan en la parte superior de la pantalla.
Ahora puede realizar filtros de búsqueda en los campos First name y Last name según las distintas condiciones de filtro.
Ahora, para acelerar la búsqueda en estos filtros, puede agregar índices. Pero, ¿qué índices deben utilizarse?
Este ejemplo se aplica a los clientes alojados que utilizan una base de datos PostgreSQL.
La siguiente tabla muestra en qué casos se utilizan o no los tres índices descritos a continuación según el patrón de acceso mostrado en la primera columna.
Criterios de búsqueda | Índice 1 (Nombre + Apellido) | Índice 2 (sólo nombre) | Índice 3 (Apellido solamente) | Comentarios |
---|---|---|---|---|
El nombre es igual a "Johnny" | Utilizado | Utilizado | No utilizado | Como el nombre está en la primera posición del índice 1, se utilizará de todas formas: no es necesario agregar un criterio al apellido. |
El nombre es igual a "Johnny" Y el apellido es igual a "Smith" | Utilizado | No utilizado | No utilizado | Como ambos atributos se buscan en la misma consulta, solo se utilizará el índice que combina ambos atributos. |
El apellido es igual a "Smith" | No utilizado | No utilizado | Utilizado | Se tiene en cuenta el orden de los atributos en el índice. Si no coincide con este orden, puede que no se utilice el índice. |
Inicios de nombre con "Joh" | Utilizado | Utilizado | No utilizado | "Búsqueda izquierda" habilitará los índices. |
El nombre termina con "nny" | No utilizado | No utilizado | No utilizado | La "búsqueda correcta" deshabilitará los índices y se realizará un análisis completo. Algunos tipos de índice específicos pueden gestionar este caso de uso, pero no están disponibles de forma predeterminada en Adobe Campaign. |
El nombre contiene "John" | No utilizado | No utilizado | No utilizado | Es una combinación de búsquedas "izquierda" y "derecha". Debido a esto último, deshabilitará los índices y se realizará un análisis completo. |
El nombre es igual a "john" | No utilizado | No utilizado | No utilizado | Los índices distinguen entre mayúsculas y minúsculas. Para que no distinga entre mayúsculas y minúsculas, debe crear un índice específico que incluya una función SQL como "top(firstname)". Debe hacer lo mismo con otras transformaciones de datos como "unacento(nombre de pila)". |
Tenga cuidado con la integridad "propia" de las tablas grandes. La eliminación de registros que tienen tablas anchas con integridad "propia" puede detener la instancia. La tabla está bloqueada y las eliminaciones se realizan una por una. Así que es mejor usar integridad "neutral" en tablas secundarias que tienen grandes volúmenes.
Declarar un vínculo como una unión externa no es bueno para el rendimiento. El registro de id cero emula la funcionalidad de unión externa. No es necesario declarar las uniones externas si el enlace utiliza la autopk.
Aunque es posible unir cualquier tabla en un flujo de trabajo, Adobe recomienda definir vínculos comunes entre los recursos directamente en la definición de la estructura de datos.
El vínculo debe definirse en consonancia con los datos reales de las tablas. Una definición incorrecta podría afectar a los datos recuperados mediante vínculos, por ejemplo duplicando registros de forma inesperada.
Asigne un nombre coherente al vínculo con el nombre de la tabla: el nombre del vínculo debe ayudar a comprender qué es la tabla distante.
No asigne un nombre a un vínculo con "id" como sufijo. Por ejemplo: ponle el nombre "transaction" en lugar de "transactionId".
De forma predeterminada, Adobe Campaign creará un vínculo con la clave principal de la tabla externa. Para una mayor claridad, es preferible definir explícitamente la combinación en la definición del vínculo.
Se agregará un índice a los atributos utilizados en un vínculo.
El los vínculos creados por y modificados por última vez están presentes en muchas tablas. Es posible desactivar el índice mediante el atributo noDbIndex del vínculo, si la empresa no utiliza esta información.
Al diseñar un vínculo, asegúrese de que el registro de destinatario sea único cuando se haya declarado una relación 1-1. De lo contrario, la combinación puede devolver varios registros cuando solo se espera uno. Esto provoca errores durante la preparación del envío cuando "la consulta devuelve más filas de las esperadas". Configure el nombre del vínculo con el mismo nombre que el esquema de destinatario.
Defina un vínculo con una cardinalidad (1-N) en el esquema del lado (1). Por ejemplo, el Destinatario de relación (1) - (N) La transacción debe definirse en el esquema de la transacción.
Tenga en cuenta que la cardinalidad inversa de un vínculo es (N) de forma predeterminada. Es posible definir un vínculo (1-1) agregando el atributo revCardinality='single' a la definición del vínculo.
Si el vínculo inverso no debe ser visible para el usuario, puede ocultarlo con la definición del vínculo revLink='NONE'. Un buen caso de uso para esto es definir un vínculo desde el destinatario hasta la última transacción completada, por ejemplo. Solo es necesario ver el vínculo desde el destinatario hasta la última transacción y no es necesario que el vínculo inverso esté visible desde la tabla de transacciones.
Los vínculos que realizan una unión externa (1-0…1) deben utilizarse con cuidado, ya que afectarán al rendimiento del sistema.
Adobe Campaign no es ni un almacén de datos ni una herramienta de sistema de informes. Por lo tanto, para garantizar un buen rendimiento de la solución Adobe Campaign, el crecimiento de la base de datos debe mantenerse bajo control. Para lograrlo, puede ser útil seguir algunas de las prácticas recomendadas a continuación.
De forma predeterminada, el envío y los registros de seguimiento de Adobe Campaign tienen una duración de retención de 180 días. Se ejecuta un proceso de limpieza para eliminar cualquier registro anterior al anterior.
Obtenga más información sobre la retención de datos en pautas de seguridad y privacidad de Campaña.
Obtenga más información sobre el flujo de trabajo de limpieza de la base de datos de Campaña en esta sección.
Las tablas personalizadas no se purgan con el proceso de limpieza estándar. Si bien esto puede no ser necesario en el primer día, no olvide crear un proceso de purga para las tablas personalizadas, ya que esto podría provocar problemas de rendimiento.
Existen algunas soluciones para minimizar la necesidad de registros en Adobe Campaign:
Puede declarar el atributo "deleteStatus" en un esquema. Es más eficaz marcar el registro como eliminado y posponer la eliminación en la tarea de limpieza.
Para garantizar un mejor rendimiento en cualquier momento, siga las optimizaciones a continuación.
Adobe Campaign depende de motores de base de datos de terceros. Según el proveedor, la optimización del rendimiento para tablas más grandes puede requerir un diseño específico.
A continuación se detallan algunas prácticas recomendadas comunes que deben seguirse al diseñar el modelo de datos mediante tablas grandes y combinaciones complejas.
El tamaño de la tabla es una combinación del número de registros y el número de columnas por registro. Ambos pueden afectar al rendimiento de las consultas.
En PostgreSQL, una fila no debe superar los 8 KB para evitar el mecanismo TOAST. Por lo tanto, intente reducir en la medida de lo posible el número de columnas y el tamaño de cada fila para mantener un rendimiento óptimo del sistema (memoria y CPU).
El número de filas también afecta al rendimiento. La base de datos de Adobe Campaign no está diseñada para almacenar datos históricos que no se utilizan activamente con fines de segmentación o personalización, es decir, una base de datos operativa.
Para evitar cualquier problema de rendimiento relacionado con el elevado número de filas, mantenga sólo los registros necesarios en la base de datos. Cualquier otro registro debe exportarse a un almacén de datos de terceros y eliminarse de la base de datos operativa de Adobe Campaign.
Estas son algunas de las prácticas recomendadas con respecto al tamaño de las tablas:
Este es un ejemplo.
En este ejemplo: