Pular para o conteúdo principal

Solução de problemas de ingestão de dados no MySQL

info

Visualização

O conector MySQL está em versão prévia pública. Entre em contato com a equipe da sua account Databricks para solicitar acesso.

info

Esta página contém referências ao termo "escravo" , um termo que o Databricks não utiliza. Quando o termo for removido do software de terceiros, nós o removeremos desta página.

Solução de problemas pipeline em dutos

Os passos de resolução de problemas nesta seção aplicam-se a todos os pipelines de ingestão de gerenciamento no LakeFlow Connect.

Se um pipeline falhar durante a execução, clique na etapa que falhou e confirme se a mensagem de erro fornece informações suficientes sobre a natureza do erro.

Visualizar o registro de eventos pipeline na interface do usuário.

Você também pode verificar e download os logs cluster na página de detalhes pipeline , clicando em Atualizar detalhes no painel direito e, em seguida, em Logs . Analise os logs em busca de erros ou exceções.

Visualize os detalhes da atualização pipeline na interface do usuário.

Solução de problemas específicos do conector

Os passos de resolução de problemas nesta seção são específicos para o conector MySQL .

Problemas de conexão

O botão Testar Conexão falha.

Problema : O botão Testar Conexão não funciona na interface do usuário, mesmo que as credenciais estejam corretas.

Causa : Esta é uma limitação conhecida para usuários do MySQL com plugins de autenticação sha256_password ou caching_sha2_password .

Soluções : Você pode ignorar este erro com segurança e prosseguir com a criação da conexão. Para confirmar se suas credenciais funcionam, execute o seguinte no cliente de linha de comando MySQL ou em outra ferramenta cliente MySQL :

Bash
mysql -h your-mysql-host -u lakeflow_connect_user -p

Se você conseguir se conectar com o cliente MySQL, a conexão funcionará para ingestão, apesar da falha no teste de conexão .

Não consigo conectar ao servidor MySQL.

Problema : A conexão falha com erros como "Não foi possível conectar ao servidor MySQL" ou "Conexão recusada".

Possíveis causas e soluções :

  1. Conectividade de rede :

    • Verifique se as regras do firewall permitem tráfego dos intervalos de IP do Databricks na porta 3306.
    • Verifique os grupos de segurança (AWS), NSGs (Azure) ou regras de firewall (GCP).
    • Verifique se o peering de VPC ou a conectividade de rede está configurado corretamente.
  2. MySQL não está escutando na interface esperada :

    • Verifique a configuração MySQL bind-address .
    • Certifique-se de que o MySQL esteja escutando em 0.0.0.0 ou no endereço IP específico ao qual você está se conectando.
  3. Host ou porta incorretos :

    • Verifique se o hostname ou o endereço IP está correto.
    • Confirme se a porta (default 3306) está correta.

Acesso negado ao usuário

Problema : A conexão falha com a mensagem "Acesso negado para o usuário 'lakeflow_connect_user'@'host'".

Possíveis causas e soluções :

  1. Senha incorreta : verifique se a senha está correta.

  2. Usuário não criado ou host incorreto :

    SQL
    -- Check if user exists
    SELECT User, Host FROM mysql.user WHERE User = 'lakeflow_connect_user';

    -- User might need to be created for specific host or '%'
    CREATE USER 'lakeflow_connect_user'@'%' IDENTIFIED BY 'password';
  3. Privilégios ausentes :

    SQL
    -- Grant required privileges
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'lakeflow_connect_user'@'%';
    GRANT SELECT ON your_database.* TO 'lakeflow_connect_user'@'%';
    FLUSH PRIVILEGES;

Problemas com o log binário

Registro binário não ativado

Problema : O pipeline falha com um erro indicando que o registro binário não está habilitado.

Soluções : Habilite o registro binário no seu servidor MySQL :

  • RDS/Aurora : Configure o grupo de parâmetros e reinicie.
  • Azure MySQL : Configure os parâmetros do servidor e reinicie.
  • GCP Cloud SQL : Configure os parâmetros do banco de dados e reinicie.
  • EC2 : Edite my.cnf e adicione log-bin=mysql-bin, depois reinicie o MySQL.

Verifique com:

SQL
SHOW VARIABLES LIKE 'log_bin';
-- Should return ON

Formato de binlog incorreto

Problema : O pipeline falha porque o formato do binlog não é ROW.

soluções : Defina o formato binlog para ROW:

  • RDS/Aurora : Defina binlog_format=ROW no grupo de parâmetros.
  • Azure MySQL : Defina binlog_format=ROW nos parâmetros do servidor.
  • GCP cloud SQL : Defina binlog_format=ROW nos sinalizadores do banco de dados.
  • EC2 : Adicione binlog_format=ROW a my.cnf.

Reinicie o MySQL e verifique:

SQL
SHOW VARIABLES LIKE 'binlog_format';
-- Should return ROW

O arquivo binlog foi limpo antes do processamento.

Problema : O pipeline falha com um erro relacionado a arquivos binlog ausentes.

Causa : logs binários foram apagados antes que o gateway de ingestão pudesse processá-los.

Solução :

  1. Aumentar a retenção de binlogs:

    SQL
    -- RDS/Aurora:
    CALL mysql.rds_set_configuration('binlog retention hours', 168); -- 7 days

    -- EC2 (MySQL 8.0):
    SET GLOBAL binlog_expire_logs_seconds = 604800; -- 7 days

    -- EC2 (MySQL 5.7):
    SET GLOBAL expire_logs_days = 7;
  2. Realize uma refresh completa das tabelas afetadas:

  3. Garanta que o gateway de ingestão esteja em execução contínua.

Prevenção : Configure um período de retenção de binlog adequado (recomenda-se 7 dias). Definir um valor inferior pode fazer com que os binlogs sejam limpos antes de serem processados pelo gateway de ingestão.

Problemas no gateway de ingestão

O gateway não está iniciando.

Problema : O gateway de ingestão não inicia ou falha imediatamente.

Possíveis causas e soluções :

  1. Problemas de conexão : Verifique se a conexão está funcionando (consulte Problemas de conexão).

  2. Recurso compute insuficiente :

    • Verifique as permissões e políticas de criação do cluster.
  3. Problemas com o volume de preparação :

    • Verifique se você tem privilégios CREATE VOLUME no esquema de preparação.
    • Verifique se o catálogo de teste não é um catálogo estrangeiro.

O gateway está em execução, mas não está capturando as alterações.

Problema : O gateway está em execução, mas as novas alterações não estão sendo capturadas.

Possíveis causas e soluções :

  1. Tempo de retenção do binlog muito curto :

    • Aumentar a retenção de binlogs.
    • Monitore os arquivos binlog para garantir que não sejam apagados muito rapidamente.
  2. Interrupções de rede :

    • Verifique se há problemas de conectividade de rede.
    • Analise logs do gateway em busca de erros de conexão.

Problemas no pipeline de ingestão

Tabelas não sendo ingeridas

Problema : Algumas tabelas não estão sendo importadas, mesmo estando selecionadas.

Possíveis causas e soluções :

  1. Tipos de dados espaciais :

    • Tabelas com colunas espaciais não podem ser importadas.
    • Exclua essas tabelas da ingestão.
  2. Privilégios ausentes :

    • Verifique se o usuário de replicação tem SELECT em todas as tabelas de origem.
    SQL
    SHOW GRANTS FOR 'lakeflow_connect_user'@'%';

Verificando logs

Para diagnosticar problemas, verifique os seguintes logs:

  1. logsdo gateway :

    • Navegue até o pipeline do gateway na interface do usuário do Databricks.
    • Clique na última execução.
    • Analise logs cluster e logs de eventos DLT .
  2. logsdo pipeline :

    • Navegue até o pipeline de ingestão.
    • Clique na última execução.
    • Analise logs de eventos DLT e quaisquer mensagens de erro.
  3. logsMySQL :

    • Verifique o log de erros do MySQL para problemas de conexão ou replicação.
    • Analise os arquivos binlog caso ocorram erros de posicionamento.

Obtenha ajuda

Se você continuar a ter problemas:

  1. Colete informações relevantes:

    • Mensagens de erro dos logs pipeline .
    • logs cluster de gateway.
    • Versão do MySQL e tipo de implantação.
    • Configuração da fonte (configurações de binlog, retenção).
  2. Entre em contato com o suporte Databricks e forneça as informações coletadas.

  3. Durante o período de pré-visualização pública, você também pode entrar em contato com a equipe da sua account Databricks .