Я хотел бы получить предложения по имеющимся генераторам данных для SQL-сервера. При отправке ответа укажите все функции, которые, по вашему мнению, важны.
Я никогда не использовал подобное приложение, поэтому хочу получить образование по этой теме. Спасибо.
(Моя цель - заполнить базу данных более чем 10000 записями в каждой таблице, чтобы протестировать приложение.)
Если вы используете .NET, Bogus предоставляет для этого несколько действительно полезных функций (github.com/bchavez/Bogus). Взгляните на это сообщение в блоге, чтобы узнать, как его использовать: coderulez.wordpress.com/2017/05/10/…





Раньше я использовал генератор данных. Возможно, стоит взглянуть.
Если вы не зарегистрируетесь, вы сможете сгенерировать только 100 строк. Ниже вы можете увидеть пример того, как интерфейс выглядит сегодня (октябрь 2016 г.)
Я хотел добавить связь между двумя таблицами; в моем случае было достаточно использовать NumberRange (см. столбец SchoolId), но если для ваших данных требуется больше, чем простой диапазон чисел, мне не очевидно, как вы могли бы этого добиться.
У этого нет параметров DateTime, отдых хорош!
Я использовал это раньше
http://sqlmanager.net/en/products/mssql/datagenerator
Это не бесплатно.
Проверка целостности ссылок очень важна, иначе ваши тесты будут бесполезны без сопоставления связанных данных (в большинстве случаев).
Здесь спрашивали нечто подобное: Создание тестовых данных в базе данных
Генератор данных Red Gate SQL отлично справляется с этой задачей. Вы можете настроить каждое поле своей базы данных и использовать случайные данные с семенами. И даже создавать определенные шаблоны, используя выражения Regex.
Visual Studio Team System Database Edition (также известная как Data Dude) делает это.
Я еще не использовал его для генерации данных, но 2 функции звучат неплохо:
Установите собственное начальное значение для генератора случайных данных. Это позволяет вам получать одни и те же случайные данные более одного раза.
Направьте мастер на «настоящую» базу данных и попросите его сгенерировать что-то похожее на настоящие данные.
Может, это стандартные функции где-то еще?
Какие особенности вы находите интересными? Я никогда этим не пользовался.
Для генерации образцов данных я использую простые приложения Python.
Соображения:
Легко модифицировать и настраивать.
Повторяемый набор данных, который можно использовать для тестирования производительности и получения согласованных результатов.
Соблюдайте все правила и ограничения ссылочной целостности БД.
Реалистичные данные.
Первые два указывают на то, что вы хотите создать файлы сценариев, которые будут загружать ваши данные. Третий сложнее. Есть способы узнать метаданные и ограничения базы данных. Глядя на 3 и 4 вместе, вам не нужен простой реверс-инжиниринг - вам нужно что-то, что вы можете контролировать для получения реалистичных значений.
Как правило, вы хотите создать собственную модель сущности, чтобы быть уверенным в правильности диапазонов и ключевых отношений.
Вы можете сделать это тремя способами.
Создавайте файлы CSV с данными, которые можно загрузить вручную. Хорошие повторяемые тестовые данные.
Создавайте сценарии SQL, которые можно запускать. Также хорошие повторяемые данные.
Используйте соединение ODBC для генерации данных непосредственно в базе данных. На самом деле мне это не очень нравится, но вы могли бы.
Вот урезанная версия генератора данных только для одной таблицы, который записывает файл CSV.
import csv
import random
class SomeEntity( list ):
titles = ( 'attr1', 'attr2' ) # ... for all columns
def __init__( self ):
self.append( random.randrange( 1, 10 ) )
self.append( random.randrange( 100, 1000 ) )
# ... for all columns
myData = [ SomeEntity() for i in range(10000) ]
aFile= open( 'tmp.csv', 'wb' )
dest= csv.writer( aFile )
dest.writerow( SomeEntity.titles )
dest.writerows( myData )
aFile.close()
Для нескольких сущностей вы должны определить количество элементов. Вместо генерации случайных ключей вы хотите сделать случайный выбор из других сущностей. Таким образом, вы можете заставить ChildEntity выбрать случайный элемент из ParentEntity, чтобы убедиться, что отношение FK-PK было правильным.
Используйте random.choice(someList) и random.shuffle(someList) для обеспечения ссылочной целостности.
Это работает с SQL Server 2000 и 2005?
Это создает файлы CSV - вы можете загрузить созданный файл практически в любую базу данных на Земле.
Хорошо. Дешевый. Легкий. Мне это нравится :)
И достаточно масштабируемый. Вам по-прежнему нужно моделировать каждый класс Entity, что требует «размышлений». Но объем кода невелик, он выполняется быстро, а файлы у вас есть. Вы можете использовать обнаружение схемы, чтобы сразу начать процесс.
Для этого я использовал инструмент под названием Дататект.
Что мне нравится в этом инструменте:
Я использовал собственный генератор данных, который генерирует случайные данные, соответствующие регулярным выражениям. Он превратился в обучающий проект (находится в разработке) и доступен по адресу github.
Если вы используете .NET, Bogus предоставляет для этого несколько действительно полезных функций (github.com/bchavez/Bogus). Взгляните на это сообщение в блоге, чтобы узнать, как его использовать: coderulez.wordpress.com/2017/05/10/…
Я только что нашел об этом: Спаунер
это бесплатно: http://www.sqldog.com содержит несколько функций, таких как: генератор данных, полнотекстовый поиск, создание документации по базе данных, активные соединения с базой данных