Поделиться через


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

ПРИМЕНИМО К: Фабрика данных Azure Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Фабрика данных Azure с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до 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 установите для параметра Доступ к общедоступной сетиDeny значение No. Дополнительные сведения см. в разделе Azure SQL параметры подключения.
    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. Дополнительные сведения см. в разделе База данных SQL Azure и правила брандмауэра IP-адресов Azure Synapse.
    Если сообщение об ошибке содержит Login failed for user '<token-identified principal>', эта ошибка обычно вызвана отсутствием достаточного разрешения для вашей учётной записи службы или системного управляемого удостоверения, или пользовательского управляемого удостоверения (в зависимости от выбранного типа проверки подлинности) в вашей базе данных. Предоставьте достаточно разрешений вашему субъекту-службе или вашему управляемому удостоверению, назначаемому системой, или управляемому удостоверению, назначаемому пользователем, в вашей базе данных.

    For База данных SQL Azure:
        — Если вы используете проверку подлинности субъекта-службы, следуйте разделу Проверка подлинности субъекта-службы.
        — Если вы используете проверку подлинности управляемого удостоверения, назначаемого системой, выполните проверку подлинности управляемого удостоверения, назначаемого системой.
        — Если вы используете проверку подлинности с назначенным пользователем управляемым удостоверением, следуйте указаниям в разделе Проверка подлинности с назначенным пользователем управляемым удостоверением.
       
    For Azure Synapse Analytics:
        — Если вы используете проверку подлинности субъекта-службы, выполните проверку подлинности субъекта-службы.
        — Если вы используете аутентификацию с управляемым удостоверением, назначаемым системой, следуйте назначенные системой управляемые удостоверения для аутентификации ресурсов Azure.
        — Если вы используете проверку подлинности с помощью управляемого удостоверения, назначаемого пользователем, следуйте разделу Аутентификация управляемого удостоверения, назначаемого пользователем.
       
    For Управляемый экземпляр 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.

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

Код ошибки: 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-запросе или в сопоставлении столбцов процедуры копирования измените тип столбца на 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 секунд.

  • Recommendation: обновите строку подключения связанной с SQL службы, установив время ожидания подключения connection timeout, равным или большим 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

  • Message: 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 произошел сбой преобразования.

  • Symptoms: при копировании данных из табличного источника данных (например, 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...

  • Cause: Azure Synapse Analytics PolyBase не может преобразовать пустую строку в GUID.

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

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

  • Symptoms: при копировании данных из табличного источника данных (например, 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:..

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

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

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

  • Symptoms: вы копируете данные в 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, не выполняется

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

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

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

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

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

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

  • Cause: База данных SQL Azure s1 имеет ограничения ввода-вывода.

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

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

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

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

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

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

      Примечание.

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

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

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

Код ошибки: FailedDbOperation

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

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

Код ошибки: 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 виртуальная сеть 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: База данных SQL Azure настроено для запрета доступа к общедоступной сети. Для доступа требуется использовать управляемую виртуальную сеть и создать частную конечную точку.

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

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

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

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