Устранение неполадок в Azure Synapse Analytics, базе данных SQL Azure, SQL Server, управляемом экземпляре Azure SQL и Amazon RDS для соединителей SQL Server в фабрике данных Azure и Azure Synapse.

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье приводятся рекомендации по устранению распространенных проблем с Azure Synapse Analytics, База данных SQL Azure, SQL Server, Управляемый экземпляр SQL Azure и Amazon RDS для соединителей SQL Server в Фабрика данных Azure и Azure Synapse.

Код ошибки: SqlFailedToConnect

  • Сообщение. 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.

  • Причины и рекомендации. К этой ошибке могут привести различные причины. Ниже приведен список возможных причин и соответствующие рекомендации.

    Анализ причин Рекомендация
    Для Azure SQL, если сообщение об ошибке содержит строку SqlErrorNumber=47073, это означает, что доступ к общедоступной сети запрещен параметром подключения. В брандмауэре Azure SQL задайте для параметра Запретить доступ к общедоступной сети значение Нет. Дополнительные сведения см. в статье Параметры подключения к SQL Azure.
    Для Azure SQL, если сообщение об ошибке содержит код ошибки SQL, например "SqlErrorNumber=[errorcode]", см. руководство по устранению неполадок Azure SQL. Рекомендации см. в статье Устранение неполадок с подключением и решение других проблем с Базой данных SQL Azure и Управляемым экземпляром SQL Azure.
    Проверьте, добавлен ли порт 1433 в список разрешений брандмауэра. Дополнительные сведения см. в разделе Порты, используемые SQL Server.
    Если в сообщении об ошибке Базы данных SQL есть слово SqlException, значит, произошел сбой определенной операции. Чтобы получить дополнительные сведения, выполните поиск по коду ошибки SQL на странице Ошибки ядра СУБД. За дополнительной помощью обратитесь в службу поддержки Azure SQL.
    Если это временная проблема (например, из-за нестабильного сетевого подключения), добавьте повторную попытку в политику действий. Дополнительные сведения см. в статье Конвейеры и действия.
    Если сообщение об ошибке содержит строку "Клиенту с IP-адресом ... запрещен доступ к серверу" и вы пытаетесь подключиться к Базе данных SQL Azure, обычно причиной является проблема с брандмауэром Базы данных SQL Azure. В конфигурации брандмауэра Azure SQL Server включите параметр Разрешить доступ к серверу службам и ресурсам Azure. Дополнительные сведения см. в статье Правила брандмауэра для IP-адресов Базы данных SQL Azure и Azure Synapse.
    Если сообщение об ошибке содержит Login failed for user '<token-identified principal>', эта ошибка обычно вызвана отсутствием достаточного разрешения для субъекта-службы или управляемого удостоверения, назначаемого системой, или управляемого удостоверения, назначаемого пользователем (зависит от выбранного типа проверки подлинности) в базе данных. Предоставьте достаточно разрешений субъекту-службе или управляемому удостоверению, назначаемого системой, или управляемому удостоверению, назначаемого пользователем, в базе данных.

    Для База данных SQL Azure:
        — Если вы используете проверку подлинности субъекта-службы, выполните проверку подлинности субъекта-службы.
        — Если вы используете проверку подлинности управляемого удостоверения, назначаемого системой, выполните проверку подлинности управляемого удостоверения, назначаемого системой.
        — Если вы используете проверку подлинности управляемого удостоверения, назначаемого пользователем, выполните проверку подлинности управляемого удостоверения, назначаемого пользователем.
       
    Для Azure Synapse Analytics:
        — Если вы используете проверку подлинности субъекта-службы, выполните проверку подлинности субъекта-службы.
        — Если вы используете проверку подлинности управляемого удостоверения, назначаемого системой, следуйте назначаемым системой управляемым удостоверениям для проверки подлинности ресурсов Azure.
        — Если вы используете проверку подлинности управляемого удостоверения, назначаемого пользователем, выполните проверку подлинности управляемого удостоверения, назначаемого пользователем.
       
    Для Управляемый экземпляр SQL Azure:
        — Если вы используете проверку подлинности субъекта-службы, выполните проверку подлинности субъекта-службы.
       — Если вы используете проверку подлинности управляемого удостоверения, назначаемого системой, выполните проверку подлинности управляемого удостоверения, назначаемого системой.
       — Если вы используете проверку подлинности управляемого удостоверения, назначаемого пользователем, выполните проверку подлинности управляемого удостоверения, назначаемого пользователем.
    Если возникает сообщение об ошибке, содержащееся The server was not found or was not accessible при использовании Управляемый экземпляр SQL Azure, эта ошибка обычно вызвана не включением общедоступной конечной точки Управляемый экземпляр SQL Azure. Сведения о настройке общедоступной конечной точки в Управляемый экземпляр SQL Azure, чтобы включить общедоступную конечную точку Управляемый экземпляр SQL Azure.

Код ошибки: SqlOperationFailed

  • Сообщение. A database operation failed. Please search error to get more details.

  • Причины и рекомендации. К этой ошибке могут привести различные причины. Ниже приведен список возможных причин и соответствующие рекомендации.

    Анализ причин Рекомендация
    Если в сообщении об ошибке есть слово SqlException, База данных SQL выдает ошибку, указывающую на сбой определенной операции. Если ошибка SQL не ясна, попробуйте изменить уровень совместимости базы данных на последний (150). Могут возникнуть ошибки SQL последней версии. Дополнительные сведения см. в документации.
    Для получения дополнительных сведений об устранении неполадок SQL выполните поиск по коду ошибки SQL на странице Ошибки ядра СУБД. За дополнительной помощью обратитесь в службу поддержки Azure SQL.
    Если в сообщении об ошибке есть слово PdwManagedToNativeInteropException, обычно это вызвано несоответствием размеров столбца-источника и столбца-приемника. Проверьте размер как столбца-источника, так и столбца-приемника. За дополнительной помощью обратитесь в службу поддержки Azure SQL.
    Если в сообщении об ошибке есть слово InvalidOperationException, обычно это вызвано недопустимыми входными данными. Чтобы узнать, в какой строке возникла проблема, включите функцию отказоустойчивости для действия копирования, которая может перенаправлять проблемные строки в хранилище для дальнейшего изучения. Дополнительные сведения см. в статье Отказоустойчивость действия копирования.
    Если сообщение об ошибке содержит фразу "Истекло время ожидания выполнения", обычно это вызвано истечением времени ожидания запроса. Настройте Время ожидания запроса в источнике и Время ожидания пакетной записи в приемнике, чтобы увеличить время ожидания.
    Если сообщение об ошибке содержится Cannot find the object "dbo.Contoso" because it does not exist or you do not have permissions. при копировании данных из гибридной среды в локальную таблицу SQL Server, она вызвана тем, что текущая учетная запись SQL не имеет достаточных разрешений для выполнения запросов, выданных .NET SqlBulkCopy.WriteToServer, или таблицы или базы данных не существует. Переключитесь на более привилегированную учетную запись SQL или проверьте, существует ли таблица или база данных.

Код ошибки: SqlUnauthorizedAccess

  • Сообщение. Cannot connect to '%connectorName;'. Detail Message: '%message;'

  • Причина. Учетные данные неверны, или учетная запись входа не может получить доступ к базе данных SQL.

  • Рекомендация. Убедитесь, что учетная запись для входа имеет достаточно разрешений для доступа к базе данных SQL.

Код ошибки: SqlOpenConnectionTimeout

  • Сообщение. Open connection to database timeout after '%timeoutValue;' seconds.

  • Причина. Мог произойти временный сбой базы данных SQL.

  • Рекомендация. Повторите операцию, чтобы обновить строку подключения связанной службы, увеличив время ожидания подключения.

Код ошибки: SqlAutoCreateTableTypeMapFailed

  • Сообщение. Type '%dataType;' in source side cannot be mapped to a type that supported by sink side(column name:'%columnName;') in autocreate table.

  • Причина. Таблица автоматического создания не соответствует требованию к источнику.

  • Рекомендация. Измените тип столбца в сопоставлениях или вручную создайте таблицу-приемник на целевом сервере.

Код ошибки: SqlDataTypeNotSupported

  • Сообщение. A database operation failed. Check the SQL errors.

  • Причина. Если эта ошибка возникает в источнике SQL и связана с переполнением SqlDateTime, значение данных превышает диапазон логического типа (01.01.1753 12:00:00 — 31.12.9999 23:59:59).

  • Рекомендация. Приведите тип к строке в исходном SQL-запросе, либо в сопоставлении столбцов действия Copy измените тип столбца на String.

  • Причина. Если эта ошибка возникает в приемнике SQL и связана с переполнением SqlDateTime, значение данных превышает допустимый диапазон в таблице-приемнике.

  • Рекомендация. Измените соответствующий тип столбца на тип datetime2 в таблице-приемнике.

Код ошибки: SqlInvalidDbStoredProcedure

  • Сообщение. 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;'.

  • Причины и рекомендации. К этой ошибке могут привести различные причины. Ниже приведен список возможных причин и соответствующие рекомендации.

    Анализ причин Рекомендация
    Указанная хранимая процедура недопустима. Проверьте хранимую процедуру средствами SQL. Убедитесь в том, что хранимая процедура может возвращать данные.
    Действие Lookup требует, чтобы хранимая процедура возвращала некоторое значение, но код хранимой процедуры не возвращает никакого значения. Используйте действие Stored Procedure, если ожидается, что хранимая процедура не возвращает никакие данные.

Код ошибки: SqlInvalidDbQueryString

  • Сообщение. The specified SQL Query is not valid. It could be caused by that the query doesn't return any data. Invalid query: '%query;'

  • Причина: Указан недопустимый SQL-запрос. Возможно, запрос не вернул никаких данных.

  • Рекомендация. Проверьте SQL-запрос средствами SQL. Убедитесь в том, что запрос может возвращать данные.

Код ошибки: SqlInvalidColumnName

  • Сообщение. Column '%column;' does not exist in the table '%tableName;', ServerName: '%serverName;', DatabaseName: '%dbName;'.

  • Причина. Не удается найти столбец, так как конфигурация может быть неверной.

  • Рекомендация. Проверьте столбец в запросе, структуру в наборе данных и сопоставления в действии.

Код ошибки: SqlBatchWriteTimeout

  • Сообщение. Timeouts in SQL write operation.

  • Причина. Мог произойти временный сбой базы данных SQL.

  • Рекомендация. Повторите операцию. Если проблема не исчезла, обратитесь в службу поддержки Azure SQL.

Код ошибки: SqlBatchWriteTransactionFailed

  • Сообщение. SQL transaction commits failed.

  • Причина. Если в сведениях об исключении постоянно указывается превышение времени ожидания транзакций, задержка в сети между средой выполнения интеграции и базой данных больше порогового значения по умолчанию, равного 30 секундам.

  • Рекомендация. Измените строку подключения связанной службы SQL, указав значение времени ожидания подключения не менее 120, а затем повторно выполните действие.

  • Причина. Если в сведениях об исключении периодически сообщается о нарушении соединения с SQL, это может быть временным сбоем сети или проблемой на стороне базы данных SQL.

  • Рекомендация. Повторите действие и проверьте метрики на стороне базы данных SQL.

Код ошибки: SqlBulkCopyInvalidColumnLength

  • Сообщение. SQL Bulk Copy failed due to receive an invalid column length from the bcp client.

  • Причина: сбой массового копирования SQL, так как он получил недопустимую длину столбца из клиента программы массового копирования (bcp).

  • Рекомендация. Чтобы узнать, в какой строке возникла проблема, включите функцию отказоустойчивости для действия Copy. Она может перенаправлять проблемные строки в хранилище для дальнейшего изучения. Дополнительные сведения см. в статье Отказоустойчивость действия копирования.

Код ошибки: SqlConnectionIsClosed

  • Сообщение. The connection is closed by SQL Database.

  • Причина. Соединение SQL закрывается базой данных SQL при большом количестве параллельных выполнений и разрыве соединения сервером.

  • Рекомендация. Повторите попытку подключения. Если проблема не исчезла, обратитесь в службу поддержки Azure SQL.

Код ошибки: SqlServerInvalidLinkedServiceCredentialMissing

  • Сообщение. The SQL Server linked service is invalid with its credential being missing.

  • Причина. Связанная служба настроена некорректно.

  • Рекомендация. Проверьте и исправьте связанную службу SQL-сервера.

Код ошибки: SqlParallelFailedToDetectPartitionColumn

  • Сообщение. Failed to detect the partition column with command '%command;', %message;.

  • Причина. В таблице отсутствует первичный ключ или уникальный ключ.

  • Рекомендация. Проверьте наличие первичного ключа или уникального индекса в таблице.

Код ошибки: SqlParallelFailedToDetectPhysicalPartitions

  • Сообщение. Failed to detect the physical partitions with command '%command;', %message;.

  • Причина. В таблице не созданы физические разделы. Проверьте базу данных.

  • Рекомендация. Обратитесь к руководству Создание секционированных таблиц и индексов для решения проблемы.

Код ошибки: SqlParallelFailedToGetPartitionRangeSynapse

  • Сообщение. Failed to get the partitions for azure synapse with command '%command;', %message;.

  • Причина. В таблице не созданы физические разделы. Проверьте базу данных.

  • Рекомендация. Обратитесь к руководству Секционирование таблиц в выделенном пуле SQL для решения проблемы.

Сообщение об ошибке: при преобразовании из строки символа в uniqueidentifier произошел сбой преобразования.

  • Проблема. При копировании данных из табличного источника данных (например, SQL Server) в Azure Synapse Analytics с использованием промежуточного копирования и PolyBase возникает следующая ошибка.

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

  • Причина. PolyBase для Azure Synapse Analytics не может преобразовать пустую строку в GUID.

  • Решение. В приемнике действия копирования в разделе параметров PolyBase задайте для параметра, определяющего использование типа по умолчанию, значение false.

Сообщение об ошибке: ожидаемый тип данных: DECIMAL(x,x), неоправданное значение

  • Симптомы. При копировании данных из табличного источника данных (например, SQL Server) в Azure Synapse Analytics с использованием промежуточного копирования и PolyBase возникает следующая ошибка.

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

  • Причина. PolyBase для Azure Synapse Analytics не удается вставить в десятичный столбец пустую строку (значение NULL).

  • Решение. В приемнике действия копирования в разделе параметров PolyBase задайте для параметра, определяющего использование типа по умолчанию, значение false.

Сообщение об ошибке: Сообщение об исключении Java: HdfsBridge::CreateRecordReader

  • Симптомы. Данные копируются в Azure Synapse Analytics с помощью PolyBase, и при этом возникает следующая ошибка.

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

  • Причина. Возможная причина заключается в том, что схема (общая ширина столбца) слишком велика (больше 1 МБ). Проверьте схему целевой таблицы Azure Synapse Analytics, добавив размер всех столбцов.

    • Int = 4 байт
    • Bigint = 8 байт
    • Varchar(n),char(n), binary(n), varbinary(n) = n байт
    • Nvarchar(n), nchar(n) = n * 2 байт
    • Date = 6 байт
    • Datetime/(2), smalldatetime = 16 байт
    • Datetimeoffset = 20 байт
    • Decimal = 19 байт
    • Float = 8 байт
    • Money = 8 байт
    • Smallmoney = 4 байт
    • Real = 4 байт
    • Smallint = 2 байт
    • Time = 12 байт
    • Tinyint = 1 байт
  • Решение.

    • Уменьшите ширину столбца, чтобы она не превышала 1 МБ.
    • Или используйте подход с массовыми вставками, отключив PolyBase.

Сообщение об ошибке: условие, указанное с помощью условных заголовков HTTP, не выполняется

  • Симптомы. При использовании SQL-запроса для извлечения данных из Azure Synapse Analytics возникает следующая ошибка.

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

  • Причина. При обращении Azure Synapse Analytics к внешней таблице в службе хранилища Azure произошла ошибка.

  • Решение. Выполните тот же запрос в SQL Server Management Studio (SSMS) и проверьте, будет ли получен тот же результат. Если да, отправьте запрос в службу поддержки Azure Synapse Analytics, указав имена сервера и базы данных Azure Synapse Analytics.

Низкий уровень производительности приводит к сбою копирования

  • Симптомы. При копировании данных в Базу данных SQL Azure возникает следующая ошибка: Database operation failed. Error message from database execution : ExecuteNonQuery requires an open and available Connection. The connection's current state is closed..

  • Причина. В Базе данных SQL Azure s1 превышены ограничения ввода-вывода.

  • Решение. Чтобы устранить проблему, повысьте уровень производительности Базы данных SQL Azure.

Сообщение об ошибке: "Строковые или двоичные данные усекаются"

  • Симптомы. При копировании данных в локальную таблицу Azure SQL Server возникает ошибка.

  • Причина. Определение схемы таблицы SQL содержит один столбец или несколько с меньшей длиной, чем ожидалось.

  • Решение. Чтобы решить проблему, попробуйте выполнить указанные ниже действия.

    1. Чтобы определить проблемные строки, примените отказоустойчивость к приемнику SQL, в первую очередь параметр redirectIncompatibleRowSettings.

      Примечание.

      Отказоустойчивость может увеличить время выполнения и, следовательно, затраты.

    2. Тщательно проверьте длину столбцов в перенаправленных данных относительно схемы таблицы SQL, чтобы узнать, какие столбцы необходимо изменить.

    3. Измените схему таблицы соответствующим образом.

Код ошибки: FailedDbOperation

  • Сообщение. User does not have permission to perform this action.

  • Рекомендация. Убедитесь, что пользователь, настроенный в соединителе Azure Synapse Analytics, имеет разрешение "CONTROL" в целевой базе данных при использовании PolyBase для загрузки данных. Дополнительные сведения см. в этом документе.

Код ошибки: Msg 105208

  • Симптомы. Код ошибки: 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.'
  • Причина. В настоящее время прием данных с помощью команды COPY в учетную запись хранения Azure, использующую новую функцию секционирования DNS, приводит к ошибке. Функция секционирования DNS позволяет клиентам создавать до 5000 учетных записей хранения в каждой подписке.
  • Решение. Подготовьте учетную запись хранения в подписке, которая не использует новую функцию секции DNS службы хранилища Azure (в настоящее время в общедоступной предварительной версии).

Код ошибки: SqlDeniedPublicAccess

  • Сообщение. 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.

  • Причины: База данных SQL Azure настроено запретить доступ к общедоступной сети. Для доступа требуется использовать управляемую виртуальную сеть и создать частную конечную точку.

  • Рекомендация.

    1. Если вы настаиваете на отключении доступа к общедоступной сети, используйте среду выполнения интеграции управляемой виртуальной сети и создайте частную конечную точку. Дополнительные сведения см. в разделе Фабрика данных Azure управляемой виртуальной сети.

    2. В противном случае включите доступ к общедоступной сети, задав параметр доступа к общедоступной сети выбранным сетям на странице параметров сети База данных SQL Azure.

Для получения дополнительных сведений об устранении неполадок воспользуйтесь следующими ресурсами: