Campanha: transferências lentas de dados do Adobe Campaign para o Databricks (DBX)
Este artigo descreve um problema de desempenho em que as transferências de dados do Adobe Campaign para o Databricks são significativamente mais lentas do que o esperado. O comportamento ocorre quando o Campaign não pode usar seu mecanismo de carregamento em massa e, em vez disso, retorna a uma estratégia de inserção linha por linha mais lenta.
Descrição description
Em alguns workflows do Adobe Campaign, os dados gravados nos Databricks podem ser extremamente lentos, mesmo quando outros caminhos de transferência de banco de dados são executados normalmente.
Os sintomas típicos incluem:
- As transferências do Adobe Campaign ou de fontes de dados federadas para os Databricks levam muito mais tempo do que o esperado.
- Fluxos de dados reversos ou alternativos ainda podem ser executados normalmente.
- O problema pode ser reproduzido em vários workflows ou ambientes.
- O fluxo de trabalho ou os logs de auditoria contêm um aviso semelhante a:
Conta de armazenamento usada para carregamento em massa não encontrada. Usando estratégia de carregamento em massa padrão
Esse aviso indica que o Campaign não pôde localizar a configuração de armazenamento vinculado necessária para o caminho de carregamento em massa. Como resultado, o conector volta a um método de inserção padrão linha por linha no ODBC.
Resolução resolution
O desempenho lento da transferência de dados observado ao gravar dados do Adobe Campaign para o Databricks é uma consequência direta da conta externa do Databricks que não tem uma conta de armazenamento em nuvem vinculada (Azure Blob ou AWS S3) configurada.
Causa raiz
Quando o Campaign grava dados em Databricks, ele tenta usar um caminho de carregamento em massa que depende de uma conta de armazenamento na nuvem vinculada como uma área de preparo intermediária. O processo foi criado da seguinte forma:
- O Campaign serializa dados de saída como arquivos CSV compactados.
- O Campaign carrega esses arquivos para a conta de armazenamento na nuvem vinculada (Azure Blob ou S3).
- O Campaign emite um comando Databricks COPY INTO, instruindo o Databricks a assimilar os arquivos preparados diretamente do armazenamento na nuvem.
- Os databricks leem os arquivos em paralelo na velocidade nativa.
Quando nenhuma conta de armazenamento vinculada é configurada, o Campaign não pode usar esse caminho de carregamento em massa. O sistema registra o seguinte aviso:
Conta de armazenamento usada para carregamento em massa não encontrada. Usando estratégia de carregamento em massa padrão
Este aviso é visível no log de auditoria do workflow. Após esse aviso, o Campaign retorna ao envio de instruções INSERT individuais em nível de linha pela conexão ODBC. Cada linha requer uma rede separada de ida e volta para o Databricks SQL Warehouse, o que resulta em desempenho que se degrada linearmente com o volume de dados.
Esse comportamento de fallback não é um “modo mais lento” degradado — ele não é adequado para volumes de dados em escala de produção. Existe apenas como um mecanismo de último recurso.
Assim, adicionar uma conta de armazenamento vinculada (Azure Blob ou AWS S3) à conta externa do Databricks resolverá esse problema de desempenho. Com uma conta de armazenamento configurada, o Campaign usará o caminho de carregamento em massa COPY INTO, que é o mecanismo de assimilação de dados recomendado pelos Databricks.