Share via


Resolver problemas do Azure Synapse Analytics, Base de Dados SQL do Azure, SQL Server, Azure SQL Managed Instance e Amazon RDS para conectores do SQL Server no Azure Data Factory e Azure Synapse

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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

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

Código de erro: SqlFailedToConnect

  • Mensagem: Cannot connect to SQL Database: '%server;', Database: '%database;', User: '%user;'. Check the linked service configuration is correct, and make sure the SQL Database firewall allows the integration runtime to access.

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

    Análise de causa Recomendação
    Para o SQL do Azure, se a mensagem de erro contiver a cadeia de caracteres "SqlErrorNumber=47073", isso significa que o acesso à rede pública é negado na configuração de conectividade. No firewall SQL do Azure, defina a opção Negar acesso à rede pública como Não. Para obter mais informações, consulte Configurações de conectividade SQL do Azure.
    Para o Azure SQL, se a mensagem de erro contiver um código de erro SQL, como "SqlErrorNumber=[errorcode]", consulte o guia de solução de problemas do SQL do Azure. Para obter uma recomendação, consulte Solucionar problemas de conectividade e outros erros com o Banco de Dados SQL do Azure e a Instância Gerenciada SQL do Azure.
    Verifique se a porta 1433 está na lista de permissões do firewall. Para obter mais informações, consulte Portas usadas pelo SQL Server.
    Se a mensagem de erro contiver a cadeia de caracteres "SqlException", o erro do Banco de dados SQL indica que alguma operação específica falhou. Para obter mais informações, pesquise por código de erro SQL em Erros do mecanismo de banco de dados. Para obter mais ajuda, contate o suporte do SQL do Azure.
    Se este for um problema transitório (por exemplo, uma conexão de rede instável), adicione nova tentativa na política de atividade para atenuar. Para obter mais informações, consulte Pipelines e atividades.
    Se a mensagem de erro contiver a cadeia de caracteres "Cliente com endereço IP '...' não tem permissão para acessar o servidor", e você está tentando se conectar ao Banco de Dados SQL do Azure, o erro geralmente é causado por um problema de firewall do Banco de Dados SQL do Azure. Na configuração da firewall do Azure SQL Server, ative a opção Permitir que os serviços e recursos do Azure acedam a este servidor. Para obter mais informações, consulte Banco de Dados SQL do Azure e Regras de firewall IP do Azure Sinapse.
    Se a mensagem de erro contiver Login failed for user '<token-identified principal>', esse erro geralmente é causado por não conceder permissão suficiente para sua entidade de serviço ou identidade gerenciada atribuída pelo sistema ou identidade gerenciada atribuída pelo usuário (depende do tipo de autenticação escolhido) em seu banco de dados. Conceda permissão suficiente à sua entidade de serviço ou identidade gerenciada atribuída pelo sistema ou identidade gerenciada atribuída pelo usuário em seu banco de dados.

    Para o Banco de Dados SQL do Azure:
        - Se você usar a autenticação da entidade de serviço, siga a autenticação da entidade de serviço.
        - Se você usar a autenticação de identidade gerenciada atribuída pelo sistema, siga a autenticação de identidade gerenciada atribuída pelo sistema.
        - Se você usar a autenticação de identidade gerenciada atribuída pelo usuário, siga a autenticação de identidade gerenciada atribuída pelo usuário.
       
    Para o Azure Synapse Analytics:
        - Se você usar a autenticação da entidade de serviço, siga a autenticação da entidade de serviço.
        - Se você usar a autenticação de identidade gerenciada atribuída pelo sistema, siga Identidades gerenciadas atribuídas pelo sistema para autenticação de recursos do Azure.
        - Se você usar a autenticação de identidade gerenciada atribuída pelo usuário, siga a autenticação de identidade gerenciada atribuída pelo usuário.
       
    Para a Instância Gerenciada SQL do Azure:
        - Se você usar a autenticação da entidade de serviço, siga a autenticação da entidade de serviço.
       - Se você usar a autenticação de identidade gerenciada atribuída pelo sistema, siga a autenticação de identidade gerenciada atribuída pelo sistema.
       - Se você usar a autenticação de identidade gerenciada atribuída pelo usuário, siga a autenticação de identidade gerenciada atribuída pelo usuário.
    Se você atender à mensagem de erro que contém The server was not found or was not accessible ao usar a Instância Gerenciada SQL do Azure, esse erro geralmente é causado por não habilitar o ponto de extremidade público da Instância Gerenciada SQL do Azure. Consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure para habilitar o ponto de extremidade público da Instância Gerenciada SQL do Azure.

Código de erro: SqlOperationFailed

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

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

    Análise de 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 a base de dados para o nível de compatibilidade “150” mais recente. Ele pode lançar os erros SQL versão mais recente. Para obter mais informações, consulte 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. Para obter mais ajuda, contate o suporte do SQL do Azure.
    Se a mensagem de erro contiver a cadeia de caracteres "PdwManagedToNativeInteropException", geralmente é causada por uma incompatibilidade entre os tamanhos das colunas de origem e coletor. Verifique o tamanho das colunas de origem e do coletor. Para obter mais ajuda, contate o suporte do SQL do Azure.
    Se a mensagem de erro contiver a cadeia de caracteres "InvalidOperationException", geralmente é causada por dados de entrada inválidos. Para identificar qual linha encontrou o problema, habilite o recurso de tolerância a falhas na atividade de cópia, que pode redirecionar linhas problemáticas para o armazenamento para investigação adicional. Para obter mais informações, consulte Tolerância a falhas da atividade de cópia.
    Se a mensagem de erro contiver "Tempo limite de execução expirado", geralmente é causada pelo tempo limite de consulta. Configure o tempo limite de consulta na origem e o tempo limite de gravação em lote no coletor para aumentar o tempo limite.
    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 do SQL Server local, ela é causada pela conta SQL atual 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. Mude para uma conta SQL mais privilegiada ou verifique se a sua tabela ou base 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ões suficientes 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 de 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 criação automática não pode atender ao requisito 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 excede o intervalo de tipos lógicos (1/1/1753 12:00:00 AM - 12/31/9999 11:59:59 PM).

  • Recomendação: Converta o tipo para a cadeia de caracteres na consulta SQL de origem ou, no mapeamento da coluna de 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 excederá o intervalo permitido na tabela do coletor.

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

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: Diferentes causas podem levar a este erro. Confira abaixo a lista para possível análise de causa e recomendação relacionada.

    Análise de causa Recomendação
    O procedimento armazenado especificado é inválido. Valide o procedimento armazenado usando Ferramentas SQL. Certifique-se de que 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 se espera que o procedimento armazenado não retorne 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 SQL. Certifique-se de que 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 pode ser encontrada porque a configuração pode estar incorreta.

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

Código de erro: SqlBatchWriteTimeout

  • Mensagem: Timeouts in SQL write operation.

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

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

Código de erro: SqlBatchWriteTransactionFailed

  • Mensagem: SQL transaction commits failed.

  • Causa: se os detalhes da exceção indicarem constantemente um tempo limite de transação, a latência da rede entre o tempo de execução da integração e o banco de dados será maior do que o limite padrão de 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 superior a 120 e execute novamente a atividade.

  • Causa: Se os detalhes da exceção indicarem intermitentemente que a conexão SQL está quebrada, pode ser 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 do lado do 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: A cópia em massa do SQL falhou porque recebeu um comprimento de coluna inválido do cliente bcp (Bulk Copy Program Utility).

  • 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 investigação adicional. Para obter mais informações, consulte 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 uma alta execução simultânea e o servidor encerra a conexão.

  • Recomendação: Tente novamente a conexão. Se o problema persistir, entre em contato com o suporte do 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 corretamente.

  • Recomendação: Valide e corrija o serviço vinculado do SQL Server.

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 exclusiva 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 é criada para a tabela. Verifique a sua base de dados.

  • Recomendação: Referência Criar tabelas particionadas e índices para resolver este 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 é criada para a tabela. Verifique a sua base de dados.

  • Recomendação: Tabelas de particionamento de referência no pool SQL dedicado para resolver esse problema.

Mensagem de erro: Falha na conversão ao converter de uma cadeia de caracteres para uniqueidentifier

  • Sintomas: Quando você copia dados de uma fonte de dados tabular (como o SQL Server) para o Azure Synapse Analytics usando cópia em estágios e 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=Conversion failed when converting from a character string to uniqueidentifier...

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

  • Resolução: no coletor de atividade de cópia, em Configurações do PolyBase, defina a opção padrão de tipo de uso como false.

Mensagem de erro: Tipo de dados esperado: DECIMAL(x,x), Valor ofensivo

  • Sintomas: Quando você copia dados de uma fonte de dados tabular (como o SQL Server) para o Azure Synapse Analytics usando cópia em estágios e 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 Azure Synapse Analytics PolyBase não pode inserir uma cadeia de caracteres vazia (valor nulo) em uma coluna decimal.

  • Resolução: no coletor de atividade de cópia, em Configurações do PolyBase, defina a opção padrão de tipo de uso como false.

Mensagem de erro: Mensagem de exceção Java: HdfsBridge::CreateRecordReader

  • Sintomas: você copia 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), binário(n), varbinary(n) = n bytes
    • Nvarchar(n), nchar(n) = n*2 bytes
    • Data = 6 bytes
    • Datetime/(2), smalldatetime = 16 bytes
    • Datetimeoffset = 20 bytes
    • Decimal = 19 bytes
    • Flutuação = 8 bytes
    • Dinheiro = 8 bytes
    • Smallmoney = 4 bytes
    • Real = 4 bytes
    • Smallint = 2 bytes
    • Tempo = 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çalho(s) condicional(is) HTTP não é atendida

  • Sintomas: você usa a consulta SQL para extrair dados do Azure Synapse Analytics e recebe 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 Azure.

  • Resolução: execute a mesma consulta no SQL Server Management Studio (SSMS) e verifique se você obtém o mesmo resultado. Se você fizer isso, 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.

A camada de desempenho é baixa e leva a falhas de cópia

  • Sintomas: você copia 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 Azure s1 atingiu os limites de entrada/saída (E/S).

  • Resolução: atualize a camada de desempenho do Banco de Dados SQL do Azure para corrigir o problema.

Mensagem de erro: String ou dados binários estão truncados

  • Sintomas: um erro ocorre quando você copia dados em uma tabela do SQL Server do Azure local.

  • Causa: A definição de 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 solucionar problemas de quais linhas têm o problema, aplique a tolerância a falhas do coletor SQL, especialmente redirectIncompatibleRowSettingso .

      Nota

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

    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: Certifique-se de que o usuário configurado no conector do Azure Synapse Analytics deve ter permissão 'CONTROL' no banco de dados de destino enquanto usa o PolyBase para carregar dados. Para obter informações mais detalhadas, consulte 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 está usando o novo recurso de particionamento DNS resulta em um erro. O recurso de partição DNS permite que os clientes criem até 5000 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 Visualização 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 acesso à rede pública. Isso requer o uso de rede virtual gerenciada e criar ponto de extremidade privado para acessar.

  • Recomendação:

    1. Se você insistir em desabilitar o acesso à rede pública, use o tempo de execução de integração de rede virtual gerenciada e crie um ponto de extremidade privado. Para obter mais informações, consulte 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 na solução de problemas, tente estes recursos: