Как исправить ошибку, возникающую при передаче данных между SQL Server и MySql? - PullRequest
1 голос
/ 13 декабря 2008

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

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

ошибок нет.

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

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

Ответы [ 2 ]

2 голосов
/ 18 декабря 2008

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

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

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

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

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

0 голосов
/ 21 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...