Campaign: Transferencias de datos lentas de Adobe Campaign a Databricks (DBX)
Este artículo describe un problema de rendimiento en el que las transferencias de datos de Adobe Campaign a Databricks son significativamente más lentas de lo esperado. El comportamiento se produce cuando Campaign no puede utilizar su mecanismo de carga masiva y, en su lugar, vuelve a una estrategia de inserción fila a fila más lenta.
Descripción description
En algunos flujos de trabajo de Adobe Campaign, los datos escritos en Databricks pueden ser extremadamente lentos, incluso cuando otras rutas de transferencia de bases de datos funcionan normalmente.
Los síntomas típicos incluyen:
- Las transferencias de Adobe Campaign o fuentes de datos federadas a Databricks tardan mucho más de lo esperado.
- Es posible que los flujos de datos inversos o alternativos sigan funcionando normalmente.
- El problema se puede reproducir en varios flujos de trabajo o entornos.
- Los registros de flujo de trabajo o auditoría contienen una advertencia similar a:
No se encontró la cuenta de almacenamiento usada para la carga masiva. Usando estrategia de carga masiva predeterminada
Esta advertencia indica que Campaign no pudo encontrar la configuración de almacenamiento vinculada necesaria para la ruta de carga masiva. Como resultado, el conector vuelve a un método de inserción fila a fila predeterminado sobre ODBC.
Resolución resolution
El rendimiento lento de transferencia de datos observado al escribir datos de Adobe Campaign en Databricks es una consecuencia directa de que la cuenta externa de Databricks no tiene una cuenta de almacenamiento en la nube vinculada (Azure Blob o AWS S3) configurada.
Causa raíz
Cuando Campaign escribe datos en Databricks, intenta utilizar una ruta de carga masiva que depende de una cuenta de almacenamiento en la nube vinculada como área de ensayo intermedia. El proceso está diseñado de la siguiente manera:
- Campaign serializa los datos salientes como archivos CSV comprimidos.
- Campaign carga estos archivos en la cuenta de almacenamiento en la nube vinculada (Azure Blob o S3).
- Campaign emite un comando Databricks COPY INTO, que indica a Databricks que introduzca los archivos clasificados directamente desde el almacenamiento en la nube.
- Databricks lee los archivos en paralelo a velocidad nativa.
Cuando no se configura ninguna cuenta de almacenamiento vinculada, Campaign no puede utilizar esta ruta de carga masiva. El sistema registra la siguiente advertencia:
No se encontró la cuenta de almacenamiento usada para la carga masiva. Usando estrategia de carga masiva predeterminada
Esta advertencia se puede ver en el registro de auditoría del flujo de trabajo. Después de esta advertencia, Campaign vuelve a enviar instrucciones INSERT individuales de nivel de fila a través de la conexión ODBC. Cada fila requiere un recorrido de ida y vuelta de red independiente para el almacén de SQL de Databricks, lo que da como resultado un rendimiento que se degrada linealmente con el volumen de datos.
Este comportamiento de reserva no es un “modo más lento” degradado; no es adecuado para volúmenes de datos a escala de producción. Sólo existe como mecanismo de último recurso.
Por lo tanto, añadir una cuenta de almacenamiento vinculada (Azure Blob o AWS S3) a la cuenta externa de Databricks resolverá este problema de rendimiento. Con una cuenta de almacenamiento configurada, Campaign utilizará la ruta de carga masiva COPIAR EN, que es el mecanismo de ingesta de datos recomendado por Databricks.