У меня есть пакет SSIS, который подключается к серверу mysql и пытается извлекать данные из разных таблиц и вставлять строки в базу данных SQL Server 2005.
Одна проблема, которую я замечаю, заключается в том, что в любой момент времени, когда он запускается, независимо от того, на каком этапе он находится, он почти всегда не может перенести общие записи из mysql на сервер sql.
ошибок нет.
Однажды утром у него будет все 11 миллионов записей, а при следующем запуске от 3 до 17 тысяч записей.
Кто-нибудь заметил что-нибудь подобное?






Я импортирую данные из двух отдельных баз данных MySQL - одной через Интернет, а другой - внутри компании. У меня никогда не было такой проблемы. Не могли бы вы описать, как вы настраиваете подключение к базе данных MySQL? Я использовал драйвер ODBC, доступный на веб-сайте MySQL, и подключился с помощью источника данных ADO.NET в моем потоке данных, который ссылается на соединение ODBC.
Один из возможных способов хотя бы предотвратить загрузку неполных данных - это загрузка только новых записей. Если исходная таблица имеет идентификатор, а записи никогда не меняются после вставки, вы можете ввести максимальный идентификатор, предварительно проверив свою базу данных.
Другой возможный способ предотвратить загрузку неполных данных - загрузить базу данных MySQL в промежуточную таблицу на вашем целевом сервере, а затем загрузить только те записи, которые вы еще не загрузили.
Еще один способ сделать это - загрузить данные в промежуточную таблицу, убедиться, что записи превышают некоторый минимальный порог, такой как количество строк в целевой таблице или ожидаемое минимальное количество транзакций в день, а затем фиксировать изменения только после этого. Проверка. Если строк недостаточно, создайте ошибку в пакете и отправьте уведомление по электронной почте. Преимущество сообщения об ошибке заключается в том, что вы можете настроить задание агента SQL Server на повторение шага для определенного количества попыток, чтобы увидеть, решит ли это проблему.
Надеюсь, эти советы помогут, даже если они напрямую не устраняют основную причину вашей проблемы.
Я только один раз пробовал MySQL -> SQL Server через SSIS, но обнаруженная мной ошибка связана с тем, что даты MySQL не конвертируются в даты SQL Server. Я бы подумал, что это нарушит весь поток данных, но в зависимости от вашей конфигурации вы могли бы настроить его исключительно для игнорирования плохих строк?
проблема с datetime из mysql в mssql была решена с использованием типа данных переменного размера
мы не можем импортировать инкрементные данные из-за того, как поставщик обновляет / вставляет строки, ни одна попытка не завершается неудачей - каждая успешна, но с неправильным счетчиком записей. мы решили создать представления против серверов mysql. mysql теперь связаны, поэтому он работает довольно хорошо.