Share via


Solucionar problemas dos conectores do Azure Synapse Analytics, do Banco de Dados SQL do Azure, do SQL Server, da Instância Gerenciada de SQL do Azure e do Amazon RDS para SQL Server no Azure Data Factory e no Azure Synapse

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo fornece sugestões para solucionar problemas comuns com os conectores do Azure Synapse Analytics, do Banco de Dados SQL do Azure, do SQL Server, da Instância Gerenciada de SQL do Azure e do Amazon RDS para SQL Server no Azure Data Factory e no Azure Synapse.

Código de erro: SqlFailedToConnect

Código de erro: SqlOperationFailed

  • Mensagem: A database operation failed. Please search error to get more details.

  • Causas e recomendações: causas diferentes podem levar a esse erro. Marque a lista abaixo para obter a possível análise de causa e a recomendação relacionada.

    Análise da causa Recomendação
    Se a mensagem de erro contiver a cadeia de caracteres "SqlException", o Banco de Dados SQL lançará um erro indicando que alguma operação específica falhou. Se o erro de SQL não for claro, tente alterar o banco de dados para o nível de compatibilidade mais recente “150”. Isso pode gerar erros de SQL da versão mais recente. Para obter mais informações, confira a documentação.
    Para obter mais informações sobre como solucionar problemas de SQL, pesquise por código de erro SQL em Erros do mecanismo de banco de dados. Se precisar de mais ajuda, entre em contato com o suporte do SQL do Azure.
    Se a mensagem de erro contiver a string "PdwManagedToNativeInteropException", isso geralmente é causado por uma incompatibilidade entre os tamanhos das colunas de origem e coletor. Verifique o tamanho das colunas de origem e do coletor. Se precisar de mais ajuda, entre em contato com o suporte do SQL do Azure.
    Se a mensagem de erro contiver "InvalidOperationException", geralmente ela é causada por dados de entrada inválidos. Para identificar em qual linha está o problema, habilite o recurso de tolerância a falhas na atividade de cópia, que pode redirecionar as linhas problemáticas para o armazenamento para uma investigação mais aprofundada. Para saber mais, confira Tolerância a falhas da atividade de cópia.
    Se a mensagem de erro contém "Tempo limite de execução expirado", geralmente é causada pelo estouro do tempo limite da consulta. Configure o tempo limite da consulta na origem e o tempo limite de gravação em lote no coletor para aumentar o tempo limite geral.
    Se a mensagem de erro contiver Cannot find the object "dbo.Contoso" because it does not exist or you do not have permissions. quando você copia dados do híbrido para uma tabela SQL Server local, ela é causada pela conta SQL atual, que não tem permissões suficientes para executar solicitações emitidas pelo .NET SqlBulkCopy.WriteToServer ou sua tabela ou banco de dados não existe. Alterne para uma conta SQL mais privilegiada ou verifique se a tabela ou o banco de dados existe.

Código de erro: SqlUnauthorizedAccess

  • Mensagem: Cannot connect to '%connectorName;'. Detail Message: '%message;'

  • Causa: as credenciais estão incorretas ou a conta de logon não pode acessar o banco de dados SQL.

  • Recomendação: verifique se a conta de logon tem permissão suficiente para acessar o Banco de dados SQL.

Código de erro: SqlOpenConnectionTimeout

  • Mensagem: Open connection to database timeout after '%timeoutValue;' seconds.

  • Causa: o problema pode ser uma falha transitória do banco de dados SQL.

  • Recomendação: repita a operação para atualizar a cadeia de conexão do serviço vinculado com um valor de tempo limite de conexão maior.

Código de erro: SqlAutoCreateTableTypeMapFailed

  • Mensagem: Type '%dataType;' in source side cannot be mapped to a type that supported by sink side(column name:'%columnName;') in autocreate table.

  • Causa: a tabela de autocriação não pode atender aos requisitos de origem.

  • Recomendação: atualize o tipo de coluna em mapeamentos ou crie manualmente a tabela de coletor no servidor de destino.

Código de erro: SqlDataTypeNotSupported

  • Mensagem: A database operation failed. Check the SQL errors.

  • Causa: se o problema ocorrer na fonte SQL e o erro estiver relacionado ao estouro de SqlDateTime, o valor dos dados será sobre o intervalo do tipo lógico (1/1/1753 12:00:00 - 31/12/9999 23:59:59).

  • Recomendação: converta o tipo em cadeia de caracteres na consulta SQL de origem ou, no mapeamento de coluna da atividade de cópia, altere o tipo de coluna para String.

  • Causa: se o problema ocorrer no coletor SQL e o erro estiver relacionado ao estouro de SqlDateTime, o valor dos dados estará acima do intervalo permitido na tabela de coletor.

  • Recomendação: atualize o tipo de coluna correspondente para o tipo datetime2 na tabela de coletor.

Código de erro: SqlInvalidDbStoredProcedure

  • Mensagem: The specified Stored Procedure is not valid. It could be caused by that the stored procedure doesn't return any data. Invalid Stored Procedure script: '%scriptName;'.

  • Causas e recomendações: causas diferentes podem levar a esse erro. Marque a lista abaixo para obter a possível análise de causa e a recomendação relacionada.

    Análise da causa Recomendação
    O procedimento armazenado especificado não é válido. Valide o procedimento armazenado usando as Ferramentas do SQL. Verifique se o procedimento armazenado pode retornar dados.
    A atividade Pesquisa requer que o procedimento armazenado retorne algum valor, mas o código do procedimento armazenado não retorna nenhum valor. Use a Atividade de Procedimento Armazenado se o procedimento armazenado não retornar dados.

Código de erro: SqlInvalidDbQueryString

  • Mensagem: The specified SQL Query is not valid. It could be caused by that the query doesn't return any data. Invalid query: '%query;'

  • Causa: a consulta SQL especificada é inválida. A causa pode ser que a consulta não retorna nenhum dado.

  • Recomendação: valide a consulta SQL usando ferramentas de SQL. Verifique se a consulta pode retornar dados.

Código de erro: SqlInvalidColumnName

  • Mensagem: Column '%column;' does not exist in the table '%tableName;', ServerName: '%serverName;', DatabaseName: '%dbName;'.

  • Causa: a coluna não foi encontrada porque a configuração pode estar incorreta.

  • Recomendação: verifique a coluna na consulta, estrutura no conjunto de dados e mapeamentos na atividade.

Código de erro: SqlBatchWriteTimeout

  • Mensagem: Timeouts in SQL write operation.

  • Causa: o problema pode ser causado por uma falha temporária do banco de dados SQL.

  • Recomendação: repita a operação. Se o problema persistir, entre em contato com o Suporte SQL do Azure.

Código de erro: SqlBatchWriteTransactionFailed

  • Mensagem: SQL transaction commits failed.

  • Causa: se os detalhes da exceção incluírem continuamente o tempo limite da transação, a latência de rede entre o runtime de integração e o banco de dados será maior que o limite padrão, que é 30 segundos.

  • Recomendação: atualize a cadeia de conexão de serviço vinculada ao SQL com um valor de tempo limite de conexão igual ou maior que 120 e execute a atividade novamente.

  • Causa: se os detalhes da exceção intermitentemente mostrarem que a conexão SQL foi interrompida, pode haver uma falha de rede transitória ou um problema do lado do Banco de Dados SQL.

  • Recomendação: repita a atividade e revise as métricas no Banco de dados SQL.

Código de erro: SqlBulkCopyInvalidColumnLength

  • Mensagem: SQL Bulk Copy failed due to receive an invalid column length from the bcp client.

  • Causa: falha na cópia em massa do SQL porque ela recebeu um comprimento de coluna inválido do cliente bcp (utilitário de cópia em massa).

  • Recomendação: para identificar qual linha encontrou o problema, habilite o recurso de tolerância a falhas na atividade de cópia. Isso pode redirecionar linhas problemáticas para o armazenamento para uma investigação mais aprofundada. Para saber mais, confira Tolerância a falhas da atividade de cópia.

Código de erro: SqlConnectionIsClosed

  • Mensagem: The connection is closed by SQL Database.

  • Causa: a conexão SQL é fechada pelo Banco de Dados SQL quando a execução simultânea alta e o servidor terminarem a conexão.

  • Recomendação: repita a conexão. Se o problema persistir, entre em contato com o Suporte SQL do Azure.

Código de erro: SqlServerInvalidLinkedServiceCredentialMissing

  • Mensagem: The SQL Server linked service is invalid with its credential being missing.

  • Causa: o serviço vinculado não foi configurado adequadamente.

  • Recomendação: valide e corrija o serviço vinculado ao servidor SQL.

Código de erro: SqlParallelFailedToDetectPartitionColumn

  • Mensagem: Failed to detect the partition column with command '%command;', %message;.

  • Causa: não há chave primária ou chave única na tabela.

  • Recomendação: verifique a tabela para garantir que uma chave primária ou um índice exclusivo seja criado.

Código de erro: SqlParallelFailedToDetectPhysicalPartitions

  • Mensagem: Failed to detect the physical partitions with command '%command;', %message;.

  • Causa: nenhuma partição física foi criada na tabela. Verifique seu banco de dados.

  • Recomendação: confira a referência Criar tabelas e índices particionados para resolver esse problema.

Código de erro: SqlParallelFailedToGetPartitionRangeSynapse

  • Mensagem: Failed to get the partitions for azure synapse with command '%command;', %message;.

  • Causa: nenhuma partição física foi criada na tabela. Verifique seu banco de dados.

  • Recomendação: confira a referência Particionar tabelas em pool SQL dedicado para resolver esse problema.

Mensagem de erro: Falha na conversão de uma cadeia de caracteres em um uniqueidentifier

  • Sintomas: ao copiar dados da fonte de dados tabulares (como SQL Server) para o Azure Synapse Analytics usando uma cópia preparada e o PolyBase, você encontra o seguinte erro:

    ErrorCode=FailedDbOperation,Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error happened when loading data into Azure Synapse Analytics., Source=Microsoft.DataTransfer.ClientLibrary,Type=System.Data.SqlClient.SqlException, Message=Conversion failed when converting from a character string to uniqueidentifier...

  • Causa: o PolyBase do Azure Synapse Analytics não pode converter uma cadeia de caracteres vazia em um GUID.

  • Resolução: no coletor de atividades de cópia, nas configurações do PolyBase, defina a opção padrão de tipo de uso como falso.

Mensagem de erro: Tipo de dados esperado: DECIMAL (x,x), valor incorreto

  • Sintomas: ao copiar dados de uma fonte de dados tabular (como o SQL Server) para o Azure Synapse Analytics usando a cópia em estágios e o PolyBase, você recebe o seguinte erro:

    ErrorCode=FailedDbOperation,Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=Error happened when loading data into Azure Synapse Analytics., Source=Microsoft.DataTransfer.ClientLibrary,Type=System.Data.SqlClient.SqlException, Message=Query aborted-- the maximum reject threshold (0 rows) was reached while reading from an external source: 1 rows rejected out of total 415 rows processed. (/file_name.txt) Column ordinal: 18, Expected data type: DECIMAL(x,x), Offending value:..

  • Causa: o PolyBase do Azure Synapse Analytics não pode inserir uma cadeia de caracteres vazia (valor nulo) em uma coluna decimal.

  • Resolução: no coletor de atividades de cópia, nas configurações do PolyBase, defina a opção padrão de tipo de uso como falso.

Mensagem de erro: Java exception message: HdfsBridge::CreateRecordReader

  • Sintomas: você copia os dados para o Azure Synapse Analytics usando o PolyBase e recebe o seguinte erro:

    Message=110802;An internal DMS error occurred that caused this operation to fail. Details: Exception: Microsoft.SqlServer.DataWarehouse.DataMovement.Common.ExternalAccess.HdfsAccessException, Message: Java exception raised on call to HdfsBridge_CreateRecordReader. Java exception message:HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.: Error [HdfsBridge::CreateRecordReader - Unexpected error encountered creating the record reader.] occurred while accessing external file.....

  • Causa: a causa pode ser que o esquema (largura total da coluna) é muito grande (maior que 1 MB). Verifique o esquema da tabela de destino do Azure Synapse Analytics adicionando o tamanho de todas as colunas:

    • Int = 4 bytes
    • Bigint = 8 bytes
    • Varchar(n), char(n), binary(n), varbinary(n) = n bytes
    • Nvarchar(n), nchar(n) = n*2 bytes
    • Date = 6 bytes
    • Datetime/(2), smalldatetime = 16 bytes
    • Datetimeoffset = 20 bytes
    • Decimal = 19 bytes
    • Float = 8 bytes
    • Money = 8 bytes
    • Smallmoney = 4 bytes
    • Real = 4 bytes
    • Smallint = 2 bytes
    • Time = 12 bytes
    • Tinyint = 1 byte
  • Resolução:

    • Reduza a largura da coluna para menos de 1 MB.
    • Ou use uma abordagem de inserção em massa desativando o PolyBase.

Mensagem de erro: A condição especificada usando cabeçalhos condicionais HTTP não foi atendida

  • Sintomas: use a consulta SQL para extrair dados do Azure Synapse Analytics e receber o seguinte erro:

    ...StorageException: The condition specified using HTTP conditional header(s) is not met...

  • Causa: o Azure Synapse Analytics encontrou um problema ao consultar a tabela externa no armazenamento do Microsoft Azure.

  • Resolução: execute a mesma consulta no SQL Server Management Studio (SSMS) e verifique se você obtém o mesmo resultado. Em caso afirmativo, abra um tíquete de suporte para o Azure Synapse Analytics e forneça o servidor do Azure Synapse Analytics e o nome do banco de dados.

O nível de desempenho é baixo e leva a uma falha de cópia

  • Sintomas: você copia os dados para o Banco de Dados SQL do Azure e recebe o seguinte erro: Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

  • Causa: o Banco de Dados SQL do Microsoft Azure s1 atingiu os limites de entrada/saída (E/S).

  • Resolução: atualize o nível de desempenho do Banco de Ddos SQL do Microsoft Azure para corrigir o problema.

Mensagem de erro: a cadeia de caracteres ou os dados binários estão truncados

  • Sintomas: ocorre um erro ao copiar dados em uma tabela local do servidor SQL do Azure.

  • Causa: a definição do esquema de tabela SQL tem uma ou mais colunas com menos comprimento do que o esperado.

  • Resolução: para resolver o problema, tente o seguinte:

    1. Para descobrir quais linhas apresentam o problema, aplique a tolerância a falhas do coletor de SQL, especialmente redirectIncompatibleRowSettings.

      Observação

      A tolerância a falhas pode exigir tempo de execução adicional, o que pode levar a custos mais elevados.

    2. Verifique novamente os dados redirecionados em relação ao comprimento da coluna do esquema da tabela SQL para ver quais colunas precisam ser atualizadas.

    3. Atualize o esquema da tabela de acordo.

Código de erro: FailedDbOperation

  • Mensagem: User does not have permission to perform this action.

  • Recomendação: garanta que o usuário configurado no conector do Azure Synapse Analytics tenha permissão de "CONTROLE" no banco de dados de destino ao usar o PolyBase para carregar dados. Para obter informações detalhadas, confira este documento.

Código de erro: Msg 105208

  • Sintomas: código de erro: Error code: Msg 105208, Level 16, State 1, Line 1 COPY statement failed with the following error when validating value of option 'FROM': '105200;COPY statement failed because the value for option 'FROM' is invalid.'
  • Causa: atualmente, a ingestão de dados usando o comando COPY em uma conta de Armazenamento do Azure que usa o novo recurso de particionamento DNS resulta em erro. O recurso de partição DNS permite que os clientes criem até cinco mil contas de armazenamento por assinatura.
  • Resoluções: provisione uma conta de armazenamento em uma assinatura que não use o novo recurso de partição DNS do Armazenamento do Azure (atualmente em Versão Prévia Pública).

Código de erro: SqlDeniedPublicAccess

  • Mensagem: Cannot connect to SQL Database: '%server;', Database: '%database;', Reason: Connection was denied since Deny Public Network Access is set to Yes. To connect to this server, 1. If you persist public network access disabled, please use Managed Vritual Network IR and create private endpoint. https://docs.microsoft.com/en-us/azure/data-factory/managed-virtual-network-private-endpoint; 2. Otherwise you can enable public network access, set "Public network access" option to "Selected networks" on Azure SQL Networking setting.

  • Causas: o Banco de Dados SQL do Azure está definido para negar o acesso à rede pública. Isso requer o uso da rede virtual gerenciada e a criação de um ponto de extremidade privado para acessar.

  • Recomendação:

    1. Se você insistir em desabilitar o acesso à rede pública, use o runtime de integração de rede virtual gerenciada e crie um ponto de extremidade privado. Para obter mais informações, confira Rede virtual gerenciada do Azure Data Factory.

    2. Caso contrário, habilite o acesso à rede pública definindo a opção Acesso à rede pública como Redes selecionadas na página de configuração Rede do Banco de Dados SQL do Azure.

Para obter mais ajuda com a solução de problemas, experimente estes recursos: