Condividi tramite


Risolvere i problemi relativi ad Azure Synapse Analytics, database SQL di Azure, SQL Server, Istanza gestita di SQL di Azure e connettori Amazon RDS per SQL Server in Azure Data Factory e Azure Synapse

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo fornisce suggerimenti per risolvere i problemi comuni relativi ai connettori di Azure Synapse Analytics, database SQL di Azure, SQL Server, Istanza gestita di SQL di Azure e Amazon RDS per SQL Server in Azure Data Factory e Azure Synapse.

Codice errore: SqlFailedToConnect

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

  • Cause e raccomandazioni: cause diverse possono causare questo errore. Controllare l'elenco di seguito per un’analisi delle possibili cause e raccomandazioni correlate.

    Analisi delle cause Elemento consigliato
    Per Azure SQL, se il messaggio di errore contiene la stringa "SqlErrorNumber=47073", significa che l'accesso alla rete pubblica viene negato nell'impostazione di connettività. Nel firewall SQL di Azure impostare l'opzione Nega accesso alla rete pubblica su No. Per altre informazioni, vedere Impostazioni di connettività di Azure SQL.
    Per Azure SQL, se il messaggio di errore contiene un codice di errore SQL, ad esempio "SqlErrorNumber=[errorcode]", vedere la guida alla risoluzione dei problemi di Azure SQL. Per una raccomandazione, vedere Risolvere i problemi di connettività e altri errori relativi a database SQL di Azure e Istanza gestita di SQL di Azure.
    Verificare se la porta 1433 si trova nell'elenco degli elementi consentiti del firewall. Per altre informazioni, vedere Porte usate da SQL Server.
    Se il messaggio di errore contiene la stringa "SqlException", database SQL l'errore indica che alcune operazioni specifiche non sono riuscite. Per altre informazioni, cercare in base al codice di errore SQL negli errori del motore di database. Per altre informazioni, contattare il supporto di Azure SQL.
    Se si tratta di un problema temporaneo, ad esempio una connessione di rete instabile, aggiungere nuovi tentativi nei criteri di attività per attenuare il problema. Per altre informazioni, vedere Pipeline e attività.
    Se il messaggio di errore contiene la stringa "Client con indirizzo IP '...' non è consentito accedere al server" e si sta tentando di connettersi a database SQL di Azure, l'errore è in genere causato da un problema del firewall database SQL di Azure. Nella configurazione del firewall di SQL Server di Azure abilitare l'opzione Consenti alle risorse e ai servizi di Azure di accedere a questo server. Per ulteriori informazioni, vedere Regole del firewall di Database SQL di Azure e dell'IP di Azure Synapse.
    Se il messaggio di errore contiene Login failed for user '<token-identified principal>', questo errore è in genere causato dalla concessione di autorizzazioni sufficienti all'entità servizio o all'identità gestita assegnata dal sistema o all'identità gestita assegnata dall'utente (dipende dal tipo di autenticazione scelto) nel database. Concedere autorizzazioni sufficienti all'entità servizio o all'identità gestita assegnata dal sistema o all'identità gestita assegnata dall'utente nel database.

    Per database SQL di Azure:
        - Se si usa l'autenticazione dell'entità servizio, seguire l'autenticazione dell'entità servizio.
        - Se si usa l'autenticazione dell'identità gestita assegnata dal sistema, seguire l'autenticazione dell'identità gestita assegnata dal sistema.
        - Se si usa l'autenticazione dell'identità gestita assegnata dall'utente, seguire l'autenticazione dell'identità gestita assegnata dall'utente.
       
    Per Azure Synapse Analytics:
        - Se si usa l'autenticazione dell'entità servizio, seguire l'autenticazione dell'entità servizio.
        - Se si usa l'autenticazione dell'identità gestita assegnata dal sistema, seguire Identità gestite assegnate dal sistema per l'autenticazione delle risorse di Azure.
        - Se si usa l'autenticazione dell'identità gestita assegnata dall'utente, seguire l'autenticazione dell'identità gestita assegnata dall'utente.
       
    Per Istanza gestita di SQL di Azure:
        - Se si usa l'autenticazione dell'entità servizio, seguire l'autenticazione dell'entità servizio.
       - Se si usa l'autenticazione dell'identità gestita assegnata dal sistema, seguire l'autenticazione dell'identità gestita assegnata dal sistema.
       - Se si usa l'autenticazione dell'identità gestita assegnata dall'utente, seguire l'autenticazione dell'identità gestita assegnata dall'utente.
    Se viene visualizzato il messaggio di errore che contiene The server was not found or was not accessible quando si usa Istanza gestita di SQL di Azure, questo errore viene in genere causato dall'mancata abilitazione dell'endpoint pubblico Istanza gestita di SQL di Azure. Vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure per abilitare l'endpoint pubblico Istanza gestita di SQL di Azure.

Codice errore: SqlOperationFailed

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

  • Cause e raccomandazioni: cause diverse possono causare questo errore. Controllare l'elenco di seguito per un’analisi delle possibili cause e raccomandazioni correlate.

    Analisi delle cause Elemento consigliato
    Se il messaggio di errore contiene la stringa "SqlException", database SQL genera un errore che indica che un'operazione specifica non è riuscita. Se l'errore SQL non è chiaro, provare a modificare il database con il livello di compatibilità più recente "150". Può generare gli errori SQL della versione più recenti. Per altre informazioni, vedere la documentazione di .
    Per altre informazioni sulla risoluzione dei problemi di SQL, cercare il codice di errore SQL negli errori del motore di database. Per altre informazioni, contattare il supporto di Azure SQL.
    Se il messaggio di errore contiene la stringa "PdwManagedToNativeInteropException", in genere è causato da una mancata corrispondenza tra le dimensioni della colonna di origine e sink. Controllare le dimensioni delle colonne di origine e sink. Per altre informazioni, contattare il supporto di Azure SQL.
    Se il messaggio di errore contiene la stringa "InvalidOperationException", in genere è causato da dati di input non validi. Per identificare la riga in cui si è verificato il problema, abilitare la funzionalità di tolleranza di errore nell'attività di copia, che può reindirizzare righe problematiche all'archiviazione per ulteriori indagini. Per altre informazioni, vedere Tolleranza di errore dell'attività di copia.
    Se il messaggio di errore contiene "Timeout di esecuzione scaduto", in genere è causato dal timeout della query. Configurare il timeout della query nel timeout batch di origine e scrittura nel sink per aumentare il timeout.
    Se il messaggio di errore contiene Cannot find the object "dbo.Contoso" because it does not exist or you do not have permissions. quando si copiano dati da una tabella di SQL Server locale, l'account SQL corrente non dispone di autorizzazioni sufficienti per eseguire le richieste rilasciate da .NET SqlBulkCopy.WriteToServer o dalla tabella o dal database non esiste. Passare a un account SQL con privilegi più elevati o verificare se la tabella o il database esiste.

Codice errore: SqlUnauthorizedAccess

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

  • Causa: le credenziali non sono corrette o l'account di accesso non può accedere al database SQL.

  • Raccomandazione: verificare che l'account di accesso disponga di autorizzazioni sufficienti per accedere al database SQL.

Codice errore: SqlOpenConnectionTimeout

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

  • Causa: il problema potrebbe essere un errore temporaneo del database SQL.

  • Raccomandazione: ripetere l'operazione per aggiornare il servizio collegato stringa di connessione con un valore di timeout di connessione maggiore.

Codice errore: SqlAutoCreateTableTypeMapFailed

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

  • Causa: la tabella di creazione automatica non può soddisfare il requisito di origine.

  • Raccomandazione: aggiornare il tipo di colonna nei mapping o creare manualmente la tabella sink nel server di destinazione.

Codice errore: SqlDataTypeNotSupported

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

  • Causa: se il problema si verifica nell'origine SQL e l'errore è correlato all'overflow sqlDateTime, il valore dei dati supera l'intervallo di tipi di logica (1/1/1753 12:00:00 - 12/31/9999 11:59:59 PM).

  • Raccomandazione: eseguire il cast del tipo alla stringa nella query SQL di origine o, nel mapping delle colonne dell'attività di copia, modificare il tipo di colonna in String.

  • Causa: se il problema si verifica nel sink SQL e l'errore è correlato all'overflow sqlDateTime, il valore dei dati supera l'intervallo consentito nella tabella sink.

  • Raccomandazione: aggiornare il tipo di colonna corrispondente al tipo datetime2 nella tabella sink.

Codice errore: SqlInvalidDbStoredProcedure

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

  • Cause e raccomandazioni: cause diverse possono causare questo errore. Controllare l'elenco di seguito per un’analisi delle possibili cause e raccomandazioni correlate.

    Analisi delle cause Elemento consigliato
    La stored procedure specificata non è valida. Convalidare la stored procedure usando SQL Tools. Assicurarsi che la stored procedure possa restituire dati.
    L'attività Lookup richiede che la stored procedure restituisca un valore, ma il codice della stored procedure non restituisce alcun valore. Utilizzare l'attività stored procedure se si prevede che la stored procedure non restituisca dati.

Codice errore: SqlInvalidDbQueryString

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

  • Causa: la query SQL specificata non è valida. La causa potrebbe essere che la query non restituisce dati.

  • Raccomandazione: convalidare la query SQL usando SQL Tools. Assicurarsi che la query possa restituire dati.

Codice errore: SqlInvalidColumnName

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

  • Causa: impossibile trovare la colonna perché la configurazione potrebbe non essere corretta.

  • Raccomandazione: verificare la colonna nella query, la struttura nel set di dati e i mapping nell'attività.

Codice errore: SqlBatchWriteTimeout

  • Messaggio: Timeouts in SQL write operation.

  • Causa: il problema potrebbe essere causato da un errore temporaneo del database SQL.

  • Raccomandazione: ripetere l'operazione. Se il problema persiste, contattare il supporto di Azure SQL.

Codice errore: SqlBatchWriteTransactionFailed

  • Messaggio: SQL transaction commits failed.

  • Causa: se i dettagli dell'eccezione indicano costantemente un timeout della transazione, la latenza di rete tra il runtime di integrazione e il database è maggiore della soglia predefinita di 30 secondi.

  • Raccomandazione: aggiornare il servizio collegato SQL stringa di connessione con un valore di timeout della connessione uguale o maggiore di 120 ed eseguire di nuovo l'attività.

  • Causa: se i dettagli dell'eccezione indicano in modo intermittente che la connessione SQL è interrotta, potrebbe trattarsi di un errore di rete temporaneo o di un problema lato database SQL.

  • Raccomandazione: ripetere l'attività ed esaminare le metriche lato database SQL.

Codice errore: SqlBulkCopyInvalidColumnLength

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

  • Causa: Copia bulk SQL non riuscita perché ha ricevuto una lunghezza di colonna non valida dal client dell'utilità di copia bulk (bcp).

  • Raccomandazione: per identificare la riga in cui si è verificato il problema, abilitare la funzionalità di tolleranza di errore nell'attività di copia. In questo modo è possibile reindirizzare le righe problematiche all'archiviazione per ulteriori indagini. Per altre informazioni, vedere Tolleranza di errore dell'attività di copia.

Codice errore: SqlConnectionIsClosed

  • Messaggio: The connection is closed by SQL Database.

  • Causa: la connessione SQL viene chiusa dal database SQL quando un'esecuzione simultanea elevata e il server termina la connessione.

  • Raccomandazione: ripetere la connessione. Se il problema persiste, contattare il supporto di Azure SQL.

Codice errore: SqlServerInvalidLinkedServiceCredentialMissing

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

  • Causa: il servizio collegato non è stato configurato correttamente.

  • Raccomandazione: convalidare e correggere il servizio collegato di SQL Server.

Codice errore: SqlParallelFailedToDetectPartitionColumn

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

  • Causa: nella tabella non è presente alcuna chiave primaria o chiave univoca.

  • Raccomandazione: controllare la tabella per assicurarsi che venga creata una chiave primaria o un indice univoco.

Codice errore: SqlParallelFailedToDetectPhysicalPartitions

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

  • Causa: non vengono create partizioni fisiche per la tabella. Controllare il database.

  • Raccomandazione: fare riferimento a Creare tabelle e indici partizionati per risolvere questo problema.

Codice errore: SqlParallelFailedToGetPartitionRangeSynapse

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

  • Causa: non vengono create partizioni fisiche per la tabella. Controllare il database.

  • Raccomandazione: fare riferimento alle tabelle di partizionamento nel pool SQL dedicato per risolvere questo problema.

Messaggio di errore: Conversione non riuscita durante la conversione da una stringa di caratteri a uniqueidentifier

  • Sintomi: quando si copiano dati da un'origine dati tabulare (ad esempio SQL Server) in Azure Synapse Analytics usando la copia a fasi e PolyBase, viene visualizzato l'errore seguente:

    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: PolyBase di Azure Synapse Analytics non può convertire una stringa vuota in un GUID.

  • Risoluzione: nel sink dell'attività di copia, in Impostazioni PolyBase impostare l'opzione use type default su false.

Messaggio di errore: Tipo di dati previsto: DECIMAL(x,x), Valore non valido

  • Sintomi: quando si copiano dati da un'origine dati tabulare (ad esempio SQL Server) in Azure Synapse Analytics usando la copia a fasi e PolyBase, viene visualizzato l'errore seguente:

    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: PolyBase di Azure Synapse Analytics non può inserire una stringa vuota (valore Null) in una colonna decimale.

  • Risoluzione: nel sink dell'attività di copia, in Impostazioni PolyBase impostare l'opzione use type default su false.

Messaggio di errore: Messaggio di eccezione Java: HdfsBridge::CreateRecordReader

  • Sintomi: si copiano dati in Azure Synapse Analytics usando PolyBase e viene visualizzato l'errore seguente:

    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: la causa potrebbe essere che lo schema (larghezza totale colonna) è troppo grande (maggiore di 1 MB). Controllare lo schema della tabella di Azure Synapse Analytics di destinazione aggiungendo le dimensioni di tutte le colonne:

    • Int = 4 byte
    • Bigint = 8 byte
    • Varchar(n), char(n), binary(n), varbinary(n) = n byte
    • Nvarchar(n), nchar(n) = n*2 byte
    • Data = 6 byte
    • Datetime/(2), smalldatetime = 16 byte
    • Datetimeoffset = 20 byte
    • Decimal = 19 byte
    • Float = 8 byte
    • Money = 8 byte
    • Smallmoney = 4 byte
    • Reale = 4 byte
    • Smallint = 2 byte
    • Tempo = 12 byte
    • Tinyint = 1 byte
  • Risoluzione:

    • Ridurre la larghezza della colonna a meno di 1 MB.
    • In alternativa, usare un approccio di inserimento bulk disabilitando PolyBase.

Messaggio di errore: la condizione specificata tramite intestazioni condizionali HTTP non viene soddisfatta

  • Sintomi: si usa una query SQL per eseguire il pull dei dati da Azure Synapse Analytics e ricevere l'errore seguente:

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

  • Causa: Azure Synapse Analytics ha riscontrato un problema durante l'esecuzione di query sulla tabella esterna in Archiviazione di Azure.

  • Soluzione: eseguire la stessa query in SQL Server Management Studio (SSMS) e verificare se si ottiene lo stesso risultato. In tal caso, aprire un ticket di supporto per Azure Synapse Analytics e specificare il server e il nome del database di Azure Synapse Analytics.

Il livello di prestazioni è basso e causa un errore di copia

  • Sintomi: si copiano i dati in database SQL di Azure e viene visualizzato l'errore seguente:Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

  • Causa: database SQL di Azure s1 ha raggiunto i limiti di input/output (I/O).

  • Soluzione: aggiornare il livello di prestazioni database SQL di Azure per risolvere il problema.

Messaggio di errore: i dati stringa o binari vengono troncati

  • Sintomi: si verifica un errore quando si copiano dati in una tabella di Sql Server di Azure locale.

  • Causa: la definizione dello schema di tabella SQL ha una o più colonne con lunghezza inferiore al previsto.

  • Soluzione: per risolvere il problema, provare a eseguire le operazioni seguenti:

    1. Per risolvere i problemi relativi alle righe, applicare la tolleranza di errore del sink SQL, in particolare redirectIncompatibleRowSettings.

      Nota

      La tolleranza di errore potrebbe richiedere tempi di esecuzione aggiuntivi, che potrebbero comportare costi più elevati.

    2. Controllare i dati reindirizzati rispetto alla lunghezza della colonna dello schema della tabella SQL per verificare quali colonne devono essere aggiornate.

    3. Aggiornare di conseguenza lo schema della tabella.

Codice errore: FailedDbOperation

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

  • Raccomandazione: assicurarsi che l'utente configurato nel connettore Azure Synapse Analytics disponga dell'autorizzazione 'CONTROL' per il database di destinazione durante l'uso di PolyBase per caricare i dati. Per informazioni più dettagliate, vedere questo documento.

Codice errore: Msg 105208

  • Sintomi: Codice errore: 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: attualmente, l'inserimento di dati tramite il comando COPY in un account Archiviazione di Azure che usa la nuova funzionalità di partizionamento DNS genera un errore. La funzionalità di partizione del DNS consente ai clienti di creare fino a 5000 account di archiviazione per sottoscrizione.
  • Risoluzioni: effettuare il provisioning di un account di archiviazione in una sottoscrizione che non usa la nuova funzionalità di partizione DNS Archiviazione di Azure (attualmente in anteprima pubblica).

Codice errore: SqlDeniedPublicAccess

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

  • Cause: database SQL di Azure è impostato per negare l'accesso alla rete pubblica. È necessario usare la rete virtuale gestita e creare un endpoint privato per accedere.

  • Raccomandazione:

    1. Se si insiste sulla disabilitazione dell'accesso alla rete pubblica, usare il runtime di integrazione della rete virtuale gestita e creare un endpoint privato. Per altre informazioni, vedere Rete virtuale gestita di Azure Data Factory.

    2. In caso contrario, abilitare l'accesso alla rete pubblica impostando l'opzione Accesso alla rete pubblica su Reti selezionate nella pagina delle impostazioni rete database SQL di Azure.

Per altre informazioni sulla risoluzione dei problemi, usare le risorse seguenti: