Campaign: Databricks realiza consultas intermitentemente muy lentas

Este artículo describe cómo mitigar el tiempo de espera en consultas de flujo de trabajo largas mediante Databricks FDA.

Descripción description

Un cliente ha estado utilizando un FDA de Databricks para consultas de flujo de trabajo y sus consultas son intermitentemente muy lentas y fallan debido al límite de tiempo de espera de 1 hora (un resultado de la caducidad del token de OAuth después de 1 hora). Los registros de flujo de trabajo mostraron mensajes:

Error de ODBC ODB-240000: [ Simba] [ Hardy] (115) Error de conexión: Se devolvió una respuesta de error no autorizada/prohibida, pero no se recibió un mensaje de token caducado SQLState: 08S01

y

Error de ODBC ODB-240000: el token de autenticación ha caducado.  El usuario debe volver a autenticarse. SQLState: 08001

Resolución resolution

La caducidad en sí no está controlada por la configuración del flujo de trabajo de Campaign ni por el archivo de configuración serverConf.xml. En esta configuración, ACC se conecta a Databricks a través del controlador ODBC Simba utilizando OAuth en nmsaccountName. El secreto de aplicación/credencial de larga duración puede ser válido hasta 2031, pero el token de acceso emitido para una conexión ODBC puede tener una duración mucho más corta, normalmente de 60 minutos.

Opciones de mitigación:

  • El administrador de Databricks puede revisar la integración/aplicación de OAuth que utiliza Adobe Campaign y aumentar el TTL del token de acceso, por ejemplo, actualizando la directiva de acceso al token de OAuth de Databricks, como access_token_ttl_in_minutes. Esto debe hacerlo el administrador del cliente/Databricks y debe seguir su política de seguridad, ya que los tokens de acceso de larga duración aumentan la exposición si se filtran.
  • Después de cambiar la directiva de tokens, permita el tiempo de propagación en el lado de Databricks y vuelva a realizar la prueba con una conexión ACC/ODBC nueva. Las conexiones abiertas existentes pueden seguir utilizando el token anterior emitido antes del cambio de directiva.
  • Operacionalmente, divida u optimice las consultas del flujo de trabajo ACC para que cada instrucción SQL DBX individual se complete muy por debajo de la duración del token. Esta es la mitigación preferida y más segura, ya que también aborda la ejecución lenta/en cola intermitente de DBX en lugar de extender solamente la ventana de error.
  • En el lado de los bloques de datos, compruebe el historial de consultas del almacén SQL para las ejecuciones lentas y ajuste la ruta del almacén/consulta: tiempo de cola, concurrencia, clústeres de escalado/máximo, inicios en frío, plan de consulta, estadísticas/diseño de tabla y volumen de datos para los predicados/uniones.
  • Si el cliente requiere instrucciones SQL DBX que puedan ejecutarse legítimamente más allá de la duración del token de acceso de OAuth, debe confirmar con Databricks/Simba si el modo OAuth utilizado por el controlador ODBC admite la actualización de tokens para instrucciones de larga ejecución/abiertas en su configuración. Si no es así, es posible que se requiera aumentar el TTL del token o utilizar otro modo de autenticación compatible.

Por lo tanto, la mitigación práctica a corto plazo es aumentar el TTL del token de acceso de OAuth de Databricks para la integración de ACC, mientras que la corrección a largo plazo es reducir el tiempo de ejecución de la consulta DBX/puesta en cola para que los flujos de trabajo no dependan de tokens que sobrevivan a llamadas SQL de muy larga ejecución.

recommendation-more-help
experience-cloud-kcs-help-kbarticles