сравнение двух наборов данных
#1
Отправлено 30 января 2012 - 13:33
У меня есть тулза написанная на pl/sql, которая сравнивает два набора данных (около десятка таблиц)
Т.е. у нас есть таблица, заполненная данными, которые прошли через логику какой то ETL, потом мы изменияем логику обработки данных (заливаем новый код в базу) , эта таблица снова наполняется данными, обработанными на новом коде.
Входные данные одни и теже. Эта тулза сравнивает две эти таблицы (до и после) и выдает отчет в виде вьюхе в которой перечислены все расхождения и ссылки на записи в таблицах где они найдены.
На выходе мы имеем большое количество расхождений в результатах сравнения. Они связаны с тем, что
1. Специфика работы ETL такова, что некоторые поля могут заполнятся не четко - т.е. из некоторого набора значений, неоднозначно
2. Баги
Моя задача найти расхождения, которые могут возникнуть только в результате некорректной работы логики, т.е. баги. Все остальные расхождения я должен пропустить.
Теперь проблема - проблема отфильтровки багов от всех остальных расхождений в том, что в таблицах содержится много строк (10 млн)
У меня просто нет столько времени, чтобы успеть пересмотреть все расхождения.
Вопрос - как с этим бороться. Ответ - уменьшить количество данных уже в работе, но пока маловероятен. Какие еще есть способы? Может быть есть какие то статистические методы очистить результат? Короче любые оригинальные идеи - хелп!
#2
Отправлено 30 января 2012 - 22:20
Какие есть типы расхождений, не являющиеся багами? Перечислите все (в идале) ну или бОльшую часть, которая оставляет проблемы (вызывает наибольшее количество шума).На выходе мы имеем большое количество расхождений в результатах сравнения. Они связаны с тем, что
1. Специфика работы ETL такова, что некоторые поля могут заполнятся не четко - т.е. из некоторого набора значений, неоднозначно
В каком виде к вам приходит результат сравнения?
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#3
Отправлено 31 января 2012 - 14:32
Какие есть типы расхождений, не являющиеся багами? Перечислите все (в идале) ну или бОльшую часть, которая оставляет проблемы (вызывает наибольшее количество шума).
На выходе мы имеем большое количество расхождений в результатах сравнения. Они связаны с тем, что
1. Специфика работы ETL такова, что некоторые поля могут заполнятся не четко - т.е. из некоторого набора значений, неоднозначно
В каком виде к вам приходит результат сравнения?
Добрый день
Некоторые поля в финальных таблицах заполняются на основе соответствия данным в нескольких промежуточных таблицах. Т.е. например
У нас есть входная таблица А, промежуточные Б1, Б2, Б3 и финальная В.
Запись перед тем как попасть из А в В, проходит проверку на соответствие записям в Б1, Б2, Б3. А после этого она (т.е. поле) получает какое то значение и попадает в В. Проблема в том, что логика настолько навороченная, что значение которая она получит может зависить от того,
во-первых с какой таблицы начали проверку
во-вторых в процессе заполнения может оказаться что допустим в промежуточных таблицах существуют более актульные записи (более свежие грубо говоря) и тогда будут использованы они и опять выходное значение может быть другим.
Как то так.
Результат у меня в виде вьюхи, которая содержит в себе следующие поля
таблица для сравнения, rowid в этой таблице, эталонная таблица, rowid в этой таблице, поле по которому есть расхожения, величины в двух несовпадающих полях
Как то так
#4
Отправлено 29 февраля 2012 - 11:44
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных