Ежедневная генерация и вставка данных

Я столкнулся с проблемой, с которой, возможно, кто-то здесь сможет мне помочь.

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

Вкратце: наши клиенты ежедневно вставляют около 20 миллионов записей в свою базу данных, а наш продукт обрабатывает новые данные в конце дня.

Я хотел бы автоматически создавать около 20 миллионов записей и вставлять их в какую-либо базу данных каждый день (возможно, MSSQL).

Я должен отметить, что количество записей должно меняться изо дня в день от 15 до 25 миллионов. Кроме того, предполагается, что данные должны быть вставлены в 6 таблиц, связанных внешними ключами.

Обычно я использую SQL Generator от Redgate для создания данных, но, насколько я могу судить, он подходит для однократной генерации данных, а не для постоянной генерации данных, которую я ищу.

Если кто-нибудь знает методы/инструменты, адекватные этой ситуации, сообщите, пожалуйста. Спасибо!


person user2885457    schedule 20.10.2013    source источник
comment
Вы не можете запустить его как задание cron (Linux/Unix) или запланированное задание (Windows)?   -  person Thomas W    schedule 20.10.2013
comment
Я мог бы, но есть 2 проблемы. Во-первых, использование планировщика в Windows означает запуск генератора SQL из командной строки и ежедневное добавление новых строк в базу данных (это на самом деле хорошо ..). Проблема в том, что генератор не проверяет ограничение первичного ключа и каждый день создает одни и те же первичные ключи. Во-вторых, я не знаю, как задать случайное количество строк, создаваемых каждый день, через командную строку.   -  person user2885457    schedule 20.10.2013
comment
Сгенерируйте те же самые ПК .. gack! Должен быть способ заставить продукт работать правильно, генерация PK — это требование №1 для вставки данных. Что касается рандомизации количества строк, я не вижу, чтобы это существенно повлияло на обработку или результаты? Так что скорее приятность, чем необходимость.   -  person Thomas W    schedule 22.10.2013


Ответы (1)


Вы также можете написать небольшую программу Java (или аналогичную), чтобы получить начальный идентификатор из базы данных, выбрать случайное количество строк для вставки, а затем запустить инструмент генерации данных как дочерний процесс.

Например, см. Runtime.exec():

Затем вы можете запустить свою программу как запланированную задачу или cron задание.

person Thomas W    schedule 22.10.2013