Frank.
Лично я не знаю никаких автоматизированных инструментов, которые могут «захватить» меньший поднабор ваших производственных данных в тестовый набор, но в свое время я смог использовать QMF и некоторые общие запросы, чтобы сделать это , Это требует предварительного планирования/анализа ваших структур таблиц, зависимостей между родителями и дочерними элементами, ссылочной целостности и других вещей.
Выполнение некоторых первоначальных работ было выполнено, но как только это было сделано, я смог использовать и повторно использовать эти инструменты для извлечения нескольких разных видов производственных данных для тестирования. Если это вам нравится, читайте дальше.
На зрения высокого уровня, вы можете сделать это:
- Определите, какие ключевые имена столбцов.
- Создайте для них таблицу «ключей».
- Напишите несколько запросов для поиска условий тестирования и заполните key_table.
- После того, как вы удовлетворены тем, что key_table имеет удовлетворительное подмножество ключей, вы можете использовать созданные вами инструменты, чтобы вырезать данные для вас.
- Напишите общий запрос, который присоединяется к keys_table, который соединяется с вашими производственными таблицами и экспортирует данные в плоские файлы.
- Напишите профайл, чтобы сделать все экстракции/популяции для вас автоматически.
Если у вас есть доступ к СУК (и вы, вероятно, в магазине DB2), вы можете быть в состоянии сделать что-то вроде этого:
- Определите все таблицы, которые вам нужны.
- Определите первичные индексы для этих таблиц.
- Определите любые требования к ссылочной целостности для этих таблиц.
- Определить отношения между родителями и дочерними элементами между всеми таблицами.
- Для младшей разрядной таблицы (обычно с наибольшим количеством индексов) обратите внимание на все столбцы, используемые для идентификации уникального ключа.
С приведенной выше информацией вы можете создать общий запрос, чтобы вырезать меньший подраздел производственных данных для # 5. Другими словами, вы можете создать серию конкретных запросов и заполнить небольшую таблицу ключей, которую вы создаете.
В СУК, вы можете создать общий запрос, как это:
select t.*
from &t_tbl t
, &k_tbl k
where &cond
order by 1, 2, 3
В прок, вы просто передать TABLENAME, ключи и condtions переменные. После того, как данные будут захвачены, вы ЭКСПОРТИРУЕТ данные в некоторое имя файла.
Вы можете создать EXPORT_TABLE прок будет выглядеть примерно так:
run query1 (&&t_tbl = students_table , &&k_tbl = my_test_keys ,
+ &&cond = (t.stud_id = k.stud_id and t.course_id = k.course_id)
export data to studenttable
run query1 (&&t_tbl = course_table , &&k_tbl = my_test_keys ,
+ &&cond = (t.cour_id = k.cour_id
+ (and t.cour_dt between 2009-01-01 and 2010-02-02)
export data to coursetable
.....
Это может захватить все данные по мере необходимости.
Вы можете создать IMPORT_TEST процедурный сделать наоборот:
import data from studenttable
save data as student_table (replace = yes
import data from coursetable
save data as course_table (replace = yes
....
Это может занять некоторое время, чтобы создать, но, по крайней мере, вы бы тогда инструмент повторного использования для извлечения данных.
Надеюсь, что это поможет.
Отличная идея, я могу экспортировать в csv, но я не могу найти плагин для импорта cvs :( – ALOToverflow
Можете ли вы импортировать из другого формата? Должно быть довольно тривиально найти инструмент для объединения CVS -> Любой формат таблицы Действительно, быстрый поиск по Google для «db2 cvs import» дал мне эту ссылку http://bit.ly/crs4xH, однако я понятия не имею, действительно ли это хороший пакет или нет. Просто говоря, это не должно быть слишком сложно, если вы делаете некоторые исследования. :) – Arve
Да. Я знаю, что Google может сделать для вас;) К сожалению, наша рабочая среда действительно строгая (для целей безопасности), поэтому я не могу загрузить что-либо, что я нашел в Google. – ALOToverflow