Генераторы данных для SQL-сервера?

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

Я никогда не использовал подобное приложение, поэтому хочу получить образование по этой теме. Спасибо.

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

davutgurbuz.wordpress.com/2015/09/21/20
Davut Gürbüz 21.09.2015 15:42

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

univ 10.05.2017 21:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
43
2
55 005
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

Раньше я использовал генератор данных. Возможно, стоит взглянуть.

Стороннее править

Если вы не зарегистрируетесь, вы сможете сгенерировать только 100 строк. Ниже вы можете увидеть пример того, как интерфейс выглядит сегодня (октябрь 2016 г.)

Example of data generator

Я хотел добавить связь между двумя таблицами; в моем случае было достаточно использовать NumberRange (см. столбец SchoolId), но если для ваших данных требуется больше, чем простой диапазон чисел, мне не очевидно, как вы могли бы этого добиться.

surfmuggle 23.10.2016 21:51

У этого нет параметров DateTime, отдых хорош!

hakuna 07.09.2017 18:55

Я использовал это раньше

http://sqlmanager.net/en/products/mssql/datagenerator

Это не бесплатно.

Проверка целостности ссылок очень важна, иначе ваши тесты будут бесполезны без сопоставления связанных данных (в большинстве случаев).

Здесь спрашивали нечто подобное: Создание тестовых данных в базе данных

Генератор данных Red Gate SQL отлично справляется с этой задачей. Вы можете настроить каждое поле своей базы данных и использовать случайные данные с семенами. И даже создавать определенные шаблоны, используя выражения Regex.

Visual Studio Team System Database Edition (также известная как Data Dude) делает это.

Я еще не использовал его для генерации данных, но 2 функции звучат неплохо:

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

  2. Направьте мастер на «настоящую» базу данных и попросите его сгенерировать что-то похожее на настоящие данные.

Может, это стандартные функции где-то еще?

Какие особенности вы находите интересными? Я никогда этим не пользовался.

Pascal Paradis 01.10.2008 17:53

Для генерации образцов данных я использую простые приложения Python.

Соображения:

  1. Легко модифицировать и настраивать.

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

  3. Соблюдайте все правила и ограничения ссылочной целостности БД.

  4. Реалистичные данные.

Первые два указывают на то, что вы хотите создать файлы сценариев, которые будут загружать ваши данные. Третий сложнее. Есть способы узнать метаданные и ограничения базы данных. Глядя на 3 и 4 вместе, вам не нужен простой реверс-инжиниринг - вам нужно что-то, что вы можете контролировать для получения реалистичных значений.

Как правило, вы хотите создать собственную модель сущности, чтобы быть уверенным в правильности диапазонов и ключевых отношений.

Вы можете сделать это тремя способами.

  1. Создавайте файлы CSV с данными, которые можно загрузить вручную. Хорошие повторяемые тестовые данные.

  2. Создавайте сценарии SQL, которые можно запускать. Также хорошие повторяемые данные.

  3. Используйте соединение 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?

Pascal Paradis 01.10.2008 17:54

Это создает файлы CSV - вы можете загрузить созданный файл практически в любую базу данных на Земле.

S.Lott 01.10.2008 17:56

Хорошо. Дешевый. Легкий. Мне это нравится :)

Pascal Paradis 01.10.2008 17:58

И достаточно масштабируемый. Вам по-прежнему нужно моделировать каждый класс Entity, что требует «размышлений». Но объем кода невелик, он выполняется быстро, а файлы у вас есть. Вы можете использовать обнаружение схемы, чтобы сразу начать процесс.

S.Lott 01.10.2008 18:19

Для этого я использовал инструмент под названием Дататект.

Что мне нравится в этом инструменте:

  1. Использует ODBC, поэтому вы можете создавать данные в любом источнике данных ODBC. Я использовал это для баз данных Oracle, SQL и MS Access, плоских файлов и электронных таблиц Excel.
  2. Расширяется через VBScript. Вы можете написать хуки в различных частях рабочего процесса генерации данных, чтобы расширить возможности инструмента.
  3. Ссылочно осведомлен. При заполнении столбцов внешнего ключа извлекает действительные ключи из родительской таблицы.
Ответ принят как подходящий

Я использовал собственный генератор данных, который генерирует случайные данные, соответствующие регулярным выражениям. Он превратился в обучающий проект (находится в разработке) и доступен по адресу github.

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

univ 10.05.2017 21:44

Я только что нашел об этом: Спаунер

это бесплатно: http://www.sqldog.com содержит несколько функций, таких как: генератор данных, полнотекстовый поиск, создание документации по базе данных, активные соединения с базой данных

Другие вопросы по теме