Как исправить ошибку, возникающую при передаче данных между SQL Server и MySql?

У меня есть пакет служб SSIS, который подключается к серверу mysql и пытается извлечь данные из разных таблиц и вставить строки в базу данных SQL Server 2005.

Одна проблема, которую я замечаю, заключается в том, что в любой момент времени, когда он запускается, независимо от того, на каком этапе он находится, он почти всегда не может принести общее количество записей из mysql на сервер sql.

ошибок нет.

Однажды утром он будет иметь все 11 миллионов записей и на следующем запуске где-то между 3K и 17K записей.

Кто-нибудь заметил что-нибудь подобное?

13.12.2008 00:19:33
2 ОТВЕТА
РЕШЕНИЕ

Я импортирую данные из двух отдельных баз данных MySQL - одной через Интернет и одной собственной. У меня никогда не было такой проблемы. Можете ли вы описать, как вы настраиваете соединение с базой данных MySQL? Я использовал драйвер ODBC, доступный на веб-сайте MySQL, и подключался с использованием источника данных ADO.NET в своем потоке данных, который ссылается на соединение ODBC.

Один из возможных способов предотвратить загрузку неполных данных - это загрузить только новые записи. Если исходная таблица имеет идентификатор и записи никогда не меняются после их вставки, то вы можете ввести максимальный идентификатор, проверив базу данных в первую очередь.

Другой возможный способ предотвратить загрузку неполных данных - это загрузить базу данных MySQL в промежуточную таблицу на конечном сервере, а затем загружать только записи, которые вы еще не загрузили.

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

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

2
18.12.2008 07:23:06
мы не можем импортировать инкрементные данные из-за того, что провайдер обновляет / вставляет строку, при этом ни одна попытка не удалась - каждая была успешной, но с неправильным количеством записей. мы решили создать представления на серверах MySQL. MySQL теперь связаны, так что работает довольно хорошо.
IEnumerator 8.01.2009 01:46:16

Я только один раз пробовал MySQL -> SQL Server через SSIS, но обнаружил ошибку, связанную с датами времени MySQL, которые не преобразуются в даты времени SQL Server. Я бы подумал, что это нарушит весь поток данных, но в зависимости от вашей конфигурации вы могли бы установить его просто для игнорирования плохих строк?

0
21.12.2008 12:51:42
проблема с datetime от mysql до mssql была решена с использованием типа данных переменного размера
IEnumerator 8.01.2009 01:44:40