Во время миграции с Oracle на MySQL, как сравнить данные между двумя с помощью Java

Я перенес данные из Oracle в MySQL, используя MySQL Migration Toolkit в качестве POC. Теперь я хочу сравнить данные между одними и теми же таблицами разных баз данных с помощью Java.

Я сделал простое общее количество строк таблиц в двух базах данных. Но я хочу проверить каждую строку из двух таблиц, чтобы можно было вычислить любое обновление в любом сообщении таблицы Oracle или во время миграции.


person Joy    schedule 07.06.2011    source источник


Ответы (1)


Это может показаться немного глупым, но как насчет простой программы, которая просто читает обе базы данных и сравнивает данные?

Вы можете написать класс, содержащий все данные из одной строки, переопределить equals () и hashCode (), затем прочитать обе таблицы и сравнить их, используя созданный класс.

public class MyRow {
    int someVal;
    String someOtherVal;
    // etc
    public boolean equals(Object obj) {} // implement this
    public int hashCode(){} // implement this
}

Тогда в вашей программе:

List<MyRow> mysqlRows = readMysql();
List<MyRow> oracleRows = readOracleRows();
for (MyRow mysqlRow : mysqlRows) {
    if (!mysqlRow.equals(oracleRows.get(index)) {
        // log error
    }
}

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

person deltaforce2    schedule 07.06.2011
comment
deltaforce2, Atlast, я должен сделать то же самое.Хотя есть проблемы, так как возвращаемый набор результатов для двух баз данных отличается.Такие карты необходимы. в любом случае, спасибо. извините за поздний ответ - person Joy; 20.06.2011