Campanha: consultas de Databricks intermitentemente muito lentas

Este artigo descreve como reduzir o tempo limite em consultas longas de fluxo de trabalho usando o Databricks FDA.

Descrição description

Um cliente tem usado um FDA do Databricks para consultas de fluxo de trabalho e suas consultas são intermitentemente muito lentas e estão falhando devido ao limite de tempo de 1 hora (um resultado da expiração do token OAuth após 1 hora). Os logs de fluxo de trabalho exibiram mensagens:

ODB-240000 ODBC erro: [ Simba] [ Hardy] (115) Falha na conexão com erro: resposta de erro não autorizada/proibida retornada, mas nenhuma mensagem de token expirada recebeu SQLState: 08S01

e

Erro ODBC ODB-240000: o token de autenticação expirou.  O usuário deve autenticar novamente. SQLState: 08001

Resolução resolution

A expiração em si não é controlada pelas configurações do fluxo de trabalho do Campaign ou pelo arquivo de configuração serverConf.xml. Nesta configuração, o ACC se conecta aos Databricks por meio do driver ODBC Simba usando OAuth em nmsaccountName. O segredo da credencial/aplicativo de vida longa pode ser válido até 2031, mas o token de acesso emitido para uma conexão ODBC ainda pode ter uma vida útil muito mais curta, geralmente de 60 minutos.

Opções de atenuação:

  • O administrador de Databricks pode revisar o aplicativo/integração do OAuth usado pelo Adobe Campaign e aumentar o TTL do token de acesso, por exemplo, atualizando a política de acesso do token OAuth dos Databricks, como access_token_ttl_in_minutes. Isso deve ser feito pelo administrador do cliente/Databricks e deve seguir sua política de segurança, já que tokens de acesso de vida mais longa aumentam a exposição se vazados.
  • Depois de alterar a política de token, permita o tempo de propagação no lado dos Databricks e teste novamente com uma nova conexão ACC/ODBC. As conexões abertas existentes podem continuar usando o token anterior emitido antes da alteração de política.
  • Operacionalmente, divida ou otimize as consultas do workflow ACC para que cada instrução DBX SQL individual seja concluída bem abaixo do tempo de vida do token. Essa é a mitigação mais segura e preferencial, pois também aborda a execução intermitente do DBX lenta/enfileirada, em vez de estender apenas a janela de falha.
  • No lado dos Databricks, verifique o histórico de consultas do warehouse SQL para as execuções lentas e ajuste o caminho do warehouse/consulta: tempo de enfileiramento, simultaneidade, clusters de dimensionamento/máximo, inicializações inativas, plano de consulta, estatísticas/layout de tabela e volume de dados para os predicados/junções.
  • Se o cliente precisar de instruções SQL do DBX que possam ser executadas legitimamente por mais tempo do que o tempo de vida do token de acesso OAuth, ele deverá confirmar com o Databricks/Simba se o modo OAuth usado pelo driver ODBC oferece suporte à atualização do token para instruções abertas/de longa duração em sua configuração. Caso contrário, talvez seja necessário aumentar o TTL do token ou usar outro modo de autenticação compatível.

Portanto, a mitigação prática de curto prazo é aumentar o TTL do token de acesso OAuth do Databricks para a integração do ACC, enquanto a correção de longo prazo é reduzir o tempo de execução/enfileiramento de consultas do DBX para que os workflows não dependam de tokens que sobrevivam a chamadas SQL de execução muito longa.

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