Я выполняю работу по миграции базы данных. Мне нужно скопировать базу данных в MSSQL в базу данных MySql. Можно было придумать небольшую утилиту java для копирования таблицы из MSSQL в базу данных MySql. Теперь мне нужно скопировать все данные с MSSQL на MySql. Я попытался использовать набор результатов в java для получения всех данных из таблицы, но тогда он мог получить только небольшую часть данных. Есть ли альтернативное решение для получения всех данных из таблицы в набор результатов или для какой-либо другой подобной структуры, которую я мог бы использовать, для вставки тех же данных в mysql Db. Для таблицы имеется более 25 000 000 записей.Любой WorkAround для Java ResultSet Ограничение
ответ
Результирующий набор JDBC должен, в принципе, позволять выполнять итерацию большого результата запроса.
Однако переход через Java может быть не самым эффективным подходом. Массовый экспорт в файл и массовый импорт может быть способом. Похоже, что у MS есть утилита bcp, которая может выполнять экспорт.
s/может быть/is/g. –
Thanx djna, Массовый экспорт в файл из mssql ?? Можете немного уточнить. Еще раз спасибо :) – Richie
У некоторых поставщиков баз данных есть утилиты для экспорта и импорта данных. Кажется, что MS это делает. Я не знаю, насколько легко экспортировать экспорт в MYSQL, но как только у вас есть файл для игры, я бы ожидал, что любые требуемые преобразования будут довольно легкими. – djna
Лучший способ добиться переноса базы данных, как вы описываете использовать и ETL инструмент - есть хороший обзор ETL здесь:
http://en.wikipedia.org/wiki/Extract,_transform,_load
Там нет причин, почему вы не смогли бы сделайте это с помощью JDBC, и поэтому, если вы настроились на то, чтобы выполнить свою собственную работу, пожалуйста, уточните, что «можно было получить только небольшую часть данных»:
- Какой запрос вы используете?
- Вы получаете исключение?
- Какой драйвер JDBC вы используете для подключения к MS-SQL?
привет, Спасибо за ваш ответ. Я знаю, что в идеале результаты должны собирать все данные из базы данных, но тогда это не работает для меня. * Запрос, который я пытаюсь запустить, «SELECT * FROM
Привет Richie - драйвер ISN MS JDBC Это хорошо (некоторые могут сказать намеренно). Попробуйте использовать драйвер TDS - http://jtds.sourceforge.net/index.html –
В JDBC таких ограничений нет. – skaffman