Résoudre les problèmes liés aux connecteurs Azure Synapse Analytics, Azure SQL Database, SQL Server, Azure SQL Managed Instance et Amazon RDS pour SQL Server dans Azure Data Factory et Azure Synapse

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article fournit des suggestions pour résoudre les problèmes courants liés aux connecteurs Azure Synapse Analytics, Azure SQL Database, SQL Server, Azure SQL Managed Instance et Amazon RDS pour SQL Server dans Azure Data Factory et Azure Synapse.

Code d’erreur : SqlFailedToConnect

  • Message : 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.

  • Causes et recommandations : Différentes causes peuvent être à l’origine de cette erreur. Consultez la liste ci-dessous pour obtenir une analyse des causes possibles et des recommandations associées.

    Analyse de la cause Recommandation
    Pour Azure SQL, si le message d’erreur contient la chaîne « SqlErrorNumber=47073 », cela signifie que l’accès au réseau public est refusé dans le paramètre de connectivité. Dans le pare-feu Azure SQL, définissez l’option Refuser l’accès au réseau public sur Non. Pour plus d’informations, consultez les paramètres de connectivité Azure SQL.
    Pour Azure SQL, si le message d’erreur contient un code d’erreur SQL, par exemple « SqlErrorNumber=[errorcode] », consultez le guide de résolution des problèmes Azure SQL. Pour obtenir une recommandation, consultez Résolution des problèmes de connectivité et autres erreurs avec Azure SQL Database et Azure SQL Managed Instance.
    Vérifiez si le port 1433 figure sur la liste d’autorisation du pare-feu. Pour plus d’informations, consultez Ports utilisés par SQL Server.
    Si le message d’erreur contient la chaîne « SqlException »,SQL Database génère l’erreur indiquant qu’une opération spécifique a échoué. Pour plus d’informations, effectuez une recherche par code d’erreur SQL dans Erreurs du moteur de base de données. Si vous avez besoin d’aide supplémentaire, contactez le support Azure SQL.
    S’il s’agit d’un problème temporaire (par exemple, une connexion réseau instable), ajoutez une nouvelle tentative dans la stratégie d’activité à atténuer. Pour plus d’informations, consultez Pipelines et activités.
    Si le message d’erreur contient la chaîne « Le client avec l’adresse IP "…" n’est pas autorisé à accéder au serveur » et que vous essayez de vous connecter à Azure SQL Database, l’erreur est généralement causée par un problème de pare-feu Azure SQL Database. Dans Configuration du pare-feu Azure SQL Server, activez l’option Autoriser les services et les ressources Azure à accéder à ce serveur. Pour plus d’informations, consultez Règles de pare-feu IP Azure SQL Database et Azure Synapse.
    Si le message d’erreur contient Login failed for user '<token-identified principal>', cette erreur est généralement due au fait que des autorisations insuffisantes ont été accordées à votre principal de service ou bien à votre identité managée affectée par le système ou à votre identité managée affectée par l’utilisateur (selon le type d’authentification que vous choisissez) dans votre base de données. Accordez suffisamment d’autorisations à votre principal de service, à votre identité managée affectée par le système ou à votre identité managée affectée par l’utilisateur dans votre base de données.

    Pour Azure SQL Database :
        - Si vous utilisez l’authentification par principal de service, suivez Authentification par principal de service.
        - Si vous utilisez l’authentification par identité managée affectée par le système, suivez Authentification par identité managée affectée par le système.
        - Si vous utilisez l’authentification par identité managée affectée par l’utilisateur, suivez Authentification par identité managée affectée par l’utilisateur.
       
    Pour Azure Synapse Analytics :
        - Si vous utilisez l’authentification par principal de service, suivez Authentification par principal de service.
        - Si vous utilisez l’authentification par identité managée affectée par le système, suivez Identités managées affectées par le système pour l’authentification des ressources Azure.
        - Si vous utilisez l’authentification par identité managée affectée par l’utilisateur, suivez Authentification par identité managée affectée par l’utilisateur.
       
    Pour Azure SQL Managed Instance :
        - Si vous utilisez l’authentification par principal de service, suivez Authentification par principal de service.
       - Si vous utilisez l’authentification par identité managée affectée par le système, suivez Authentification par identité managée affectée par le système.
       - Si vous utilisez l’authentification par identité managée affectée par l’utilisateur, suivez Authentification par identité managée affectée par l’utilisateur.
    Si vous rencontrez le message d’erreur contenant The server was not found or was not accessible lors de l’utilisation de Azure SQL Managed Instance, cette erreur est généralement due à la non-activation du point de terminaison public d’Azure SQL Managed Instance. Consultez Configurer un point de terminaison public dans Azure SQL Managed Instance pour activer le point de terminaison public Azure SQL Managed Instance.

Code d’erreur : SqlOperationFailed

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

  • Causes et recommandations : Différentes causes peuvent être à l’origine de cette erreur. Consultez la liste ci-dessous pour obtenir une analyse des causes possibles et des recommandations associées.

    Analyse de la cause Recommandation
    Si le message d’erreur contient la chaîne « SqlException », SQL Database génère l’erreur indiquant qu’une opération spécifique a échoué. Si l’erreur SQL n’est pas claire, essayez de régler la base de données sur le niveau de compatibilité « 150 » le plus récent. Cela peut lever des erreurs SQL de dernière version. Pour plus d’informations, consultez la documentation.
    Pour plus d’informations sur la résolution des problèmes SQL, effectuez une recherche par code d’erreur SQL dans Erreurs du moteur de base de données. Si vous avez besoin d’aide supplémentaire, contactez le support Azure SQL.
    Si le message d’erreur contient la chaîne « PdwManagedToNativeInteropException », cela est généralement dû à une incompatibilité entre les tailles de colonne source et récepteur. Vérifiez la taille des colonnes source et récepteur. Si vous avez besoin d’aide supplémentaire, contactez le support Azure SQL.
    Si le message d’erreur contient la chaîne « InvalidOperationException », cela est généralement dû à des données d’entrée non valides. Pour identifier la ligne qui a rencontré le problème, activez la fonctionnalité de tolérance de panne sur l’activité de copie, qui peut rediriger les lignes problématiques vers le stockage pour une investigation plus poussée. Pour plus d’informations, consultez Tolérance de panne de l’activité de copie.
    Si le message d’erreur contient « Le délai d’exécution a expiré », ceci est généralement dû au délai d’expiration de la requête. Configurez Délai d’expiration des requêtes dans la source et Délai d’expiration de traitement par lots de l’écriture dans le récepteur pour augmenter le délai d’expiration.
    Si le message d'erreurCannot find the object "dbo.Contoso" because it does not exist or you do not have permissions. pparaît lorsque vous copiez des données de l'hybride dans une table du serveur SQL sur site, cela est dû au fait que le compte SQL actuel ne dispose pas des autorisations suffisantes pour exécuter les requêtes émises par SqlBulkCopy.WriteToServer ou que la table ou la base de données n'existe pas. Passez à un compte SQL plus privilégié ou vérifiez si votre table ou votre base de données existe.

Code d’erreur : SqlUnauthorizedAccess

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

  • Cause : Les informations d’identification sont incorrectes ou le compte de connexion ne peut pas accéder à la base de données SQL.

  • Recommandation : Vérifiez que le compte de connexion dispose des autorisations suffisantes pour accéder à la base de données SQL.

Code d’erreur : SqlOpenConnectionTimeout

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

  • Cause : Il peut s’agir d’un échec temporaire de la base de données SQL.

  • Recommandation : Réessayez de mettre à jour la chaîne de connexion de service lié avec une valeur de délai d’attente de connexion plus importante.

Code d’erreur : SqlAutoCreateTableTypeMapFailed

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

  • Cause : La table de création automatique ne peut pas répondre aux exigences de la source.

  • Recommandation : Mettez à jour le type de colonne en mappages, ou créez manuellement la table du récepteur dans le serveur cible.

Code d’erreur : SqlDataTypeNotSupported

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

  • Cause : Si le problème se produit sur la source SQL et que l’erreur est liée au dépassement de SqlDateTime, la valeur des données est supérieure à la plage du type logique (1/1/1753 12:00:00 AM - 12/31/9999 11:59:59 PM).

  • Recommandation : Castez le type en chaîne dans la requête SQL source ou, dans le mappage de colonne d’activité de copie, modifiez le type de colonne en Chaîne.

  • Cause : Si le problème se produit sur un récepteur SQL et que l’erreur est liée au dépassement de SqlDateTime, la valeur des données est supérieure à la plage autorisée dans la table du récepteur.

  • Recommandation : Mettez à jour le type de colonne correspondant en type datetime2 dans la table du récepteur.

Code d’erreur : SqlInvalidDbStoredProcedure

  • Message : 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;'.

  • Causes et recommandations : Différentes causes peuvent être à l’origine de cette erreur. Consultez la liste ci-dessous pour obtenir une analyse des causes possibles et des recommandations associées.

    Analyse de la cause Recommandation
    La procédure stockée spécifiée n’est pas valide. Validez la procédure stockée à l’aide des outils SQL. Assurez-vous que la procédure stockée peut retourner des données.
    L’activité Lookup requiert que la procédure stockée renvoie une valeur, mais le code de la procédure stockée ne renvoie aucune valeur. Utilisez l’activité Stored Procedure si la procédure stockée est supposée ne renvoyer aucune donnée.

Code d’erreur : SqlInvalidDbQueryString

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

  • Cause : La requête SQL spécifiée n’est pas valide. Cela peut être dû au fait que la requête ne retourne aucune donnée.

  • Recommandation : Validez la requête SQL à l’aide des outils SQL. Assurez-vous que la requête peut retourner des données.

Code d’erreur : SqlInvalidColumnName

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

  • Cause : La colonne est introuvable, car la configuration est peut-être incorrecte.

  • Recommandation : Vérifiez la colonne dans la requête, structure dans le jeu de données et mappages dans l’activité.

Code d’erreur : SqlBatchWriteTimeout

  • Message : Timeouts in SQL write operation.

  • Cause : Le problème peut être dû à un échec temporaire de la base de données SQL.

  • Recommandation : Réessayez l’opération. Si le problème persiste, contactez le support Azure SQL.

Code d’erreur : SqlBatchWriteTransactionFailed

  • Message : SQL transaction commits failed.

  • Cause : Si les détails de l’exception indiquent constamment une expiration du délai de la transaction, la latence du réseau entre le runtime d’intégration et la base de données est supérieure au seuil par défaut, qui est de 30 secondes.

  • Recommandation : Mettez à jour la chaîne de connexion du service lié à SQL avec une valeur délai de connexion égale ou supérieure à 120, puis réexécutez l’activité.

  • Cause : Si les détails de l’exception indiquent par intermittence que la connexion SQL est interrompue, il peut s’agir d’un échec temporaire du réseau ou d’un problème du côté de la base de données SQL.

  • Recommandation : Réessayez l’activité et évaluez les mesures du côté de la base de données SQL.

Code d’erreur : SqlBulkCopyInvalidColumnLength

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

  • Cause : La copie en bloc SQL a échoué à cause d’une longueur de colonne non valide reçue du client de l’utilitaire de copie en bloc (bcp).

  • Recommandation : Pour identifier la ligne qui a rencontré le problème, activez la fonctionnalité de tolérance de panne sur l’activité de copie. Cela peut rediriger les lignes problématiques vers le stockage pour une investigation plus poussée. Pour plus d’informations, consultez Tolérance de panne de l’activité de copie.

Code d’erreur : SqlConnectionIsClosed

  • Message : The connection is closed by SQL Database.

  • Cause : La connexion SQL est fermée par la base de données SQL lorsque le nombre d’exécutions simultanées est élevé et que le serveur met fin à la connexion.

  • Recommandation : Relancez la connexion. Si le problème persiste, contactez le support Azure SQL.

Code d’erreur : SqlServerInvalidLinkedServiceCredentialMissing

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

  • Cause : Le service lié n’a pas été configuré correctement.

  • Recommandation : Validez et corrigez le service lié SQL Server.

Code d’erreur : SqlParallelFailedToDetectPartitionColumn

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

  • Cause : Il n’existe aucune clé primaire ou clé unique dans la table.

  • Recommandation : Vérifiez la table pour vous assurer qu’une clé primaire ou un index unique est créé.

Code d’erreur : SqlParallelFailedToDetectPhysicalPartitions

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

  • Cause : Aucune partition physique n’est créée pour la table. Vérifiez votre base de données.

  • Recommandation : Référencez Create Partitioned Tables and Indexes (Créer des tables partitionnées et des index) pour résoudre ce problème.

Code d’erreur : SqlParallelFailedToGetPartitionRangeSynapse

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

  • Cause : Aucune partition physique n’est créée pour la table. Vérifiez votre base de données.

  • Recommandation : Référencez les tables de partitionnement dans un pool SQL dédié pour résoudre ce problème.

Message d’erreur : Échec lors de la conversion d’une chaîne de caractères en valeur de type uniqueidentifier

  • Symptômes : Lorsque vous copiez des données d’une source de données tabulaire (telle que SQL Server) vers Azure Synapse Analytics à l’aide de la copie intermédiaire et de PolyBase, vous recevez l’erreur suivante :

    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...

  • Cause : Azure Synapse Analytics PolyBase ne peut pas convertir une chaîne vide en GUID.

  • Résolution : Dans le récepteur de l’activité de copie, sous les paramètres de PolyBase, définissez l’option utiliser le type par défaut sur false.

Message d’erreur : Type de données attendu : DECIMAL(x,x), valeur incriminée

  • Symptômes : Lorsque vous copiez des données d’une source de données tabulaire (telle que SQL Server) vers Azure Synapse Analytics à l’aide de la copie intermédiaire et de PolyBase, vous recevez l’erreur suivante :

    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:..

  • Cause : Azure Synapse Analytics PolyBase ne peut pas insérer une chaîne vide (valeur Null) dans une colonne décimale.

  • Résolution : Dans le récepteur de l’activité de copie, sous les paramètres de PolyBase, définissez l’option utiliser le type par défaut sur false.

Message d’erreur : Message d’exception Java : HdfsBridge::CreateRecordReader

  • Symptômes : Vous copiez des données dans Azure Synapse Analytics à l’aide de PolyBase et vous recevez l’erreur suivante :

    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.....

  • Cause : Cela peut être dû au fait que le schéma (largeur totale de colonne) est trop volumineux (plus de 1 Mo). Vérifiez le schéma de la table Azure Synapse Analytics cible en ajoutant la taille de toutes les colonnes :

    • Int = 4 octets
    • Bigint = 8 octets
    • Varchar(n), char(n), binary(n), varbinary(n) = n octets
    • Nvarchar(n), nchar(n) = n*2 octets
    • Date = 6 octets
    • Datetime/(2), smalldatetime = 16 octets
    • Datetimeoffset = 20 octets
    • Decimal = 19 octets
    • Float = 8 octets
    • Money = 8 octets
    • Smallmoney = 4 octets
    • Real = 4 octets
    • Smallint = 2 octets
    • Time = 12 octets
    • Tinyint = 1 octets
  • Résolution :

    • Réduisez la largeur de colonne sur une taille inférieure à 1 Mo.
    • Ou, utilisez une approche d’insertion en bloc en désactivant PolyBase.

Message d’erreur : La condition spécifiée avec un ou plusieurs en-têtes conditionnels HTTP n’est pas remplie

  • Symptômes : Vous utilisez la requête SQL pour extraire des données d’Azure Synapse Analytics et vous recevez l’erreur suivante :

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

  • Cause : Azure Synapse Analytics a rencontré un problème en interrogeant la table externe dans Stockage Azure.

  • Résolution : Exécutez la même requête dans SQL Server Management Studio (SSMS) et vérifiez si vous obtenez le même résultat. Si c’est le cas, ouvrez un ticket de support pour Azure Synapse Analytics et indiquez le nom de votre base de données et de votre serveur Azure Synapse Analytics.

Le niveau de performance est faible et entraîne un échec de la copie

  • Symptômes : Vous copiez des données dans Azure SQL Database et vous recevez l’erreur suivante : Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

  • Cause : Azure SQL Database S1 a atteint les limites d’entrée/sortie (E/S).

  • Résolution : Mettez à niveau le niveau de performance d’Azure SQL Database pour corriger le problème.

Message d’erreur : Les données de type chaîne ou binaire sont tronquées

  • Symptômes : Une erreur se produit lorsque vous copiez des données dans une table Azure SQL Server locale.

  • Cause : La définition du schéma de table SQL présente une ou plusieurs colonnes dont la longueur est inférieure à celle attendue.

  • Résolution : Pour résoudre ce problème, essayez d’effectuer les étapes suivantes :

    1. Pour corriger les lignes problématiques, appliquez la tolérance de panne du récepteur SQL, en particulier redirectIncompatibleRowSettings.

      Notes

      La tolérance de panne peut nécessiter une durée d’exécution supplémentaire, pouvant entraîner des coûts plus élevés.

    2. Examinez les données redirigées par rapport à la longueur de colonne du schéma de table SQL pour identifier les colonnes qui doivent être mises à jour.

    3. Mettez à jour le schéma de table en conséquence.

Code d’erreur : FailedDbOperation

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

  • Recommandation : Assurez-vous que l’utilisateur configuré dans le connecteur Azure Synapse Analytics doit disposer de l’autorisation « CONTROL » sur la base de données cible lors de l’utilisation de PolyBase pour charger des données. Pour des informations plus détaillées, consultez ce document.

Code d’erreur : Msg 105208

  • Symptômes : Code d’erreur : 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.'
  • Cause : Actuellement, l’ingestion de données à l’aide de la commande COPY dans un compte de stockage Azure qui utilise la nouvelle fonctionnalité de partitionnement DNS entraîne une erreur. La fonctionnalité de partition DNS permet aux clients de créer jusqu’à 5 000 comptes de stockage par abonnement.
  • Résolutions : Approvisionnez un compte de stockage dans un abonnement qui n’utilise pas la nouvelle fonctionnalité de partition DNS de Stockage Azure (actuellement en préversion publique).

Code d’erreur : SqlDeniedPublicAccess

  • Message : 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.

  • Causes : Azure SQL Database est définie pour refuser l’accès au réseau public. Cela nécessite d’utiliser un réseau virtuel managé et de créer un point de terminaison privé pour accéder.

  • Recommandation :

    1. Si vous insistez sur la désactivation de l’accès au réseau public, utilisez le runtime d’intégration de réseau virtuel managé et créez un point de terminaison privé. Pour plus d’informations, voir Réseau virtuel managé Azure Data Factory.

    2. Dans le cas contraire, activez l’accès au réseau public en définissant l’option Accès au réseau public sur les réseaux sélectionnés sur la page de paramètre mise en réseau d’Azure SQL Database.

Si vous avez besoin d’une aide supplémentaire, essayez les ressources suivantes :