Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

стороннее редактирование

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

Example of data generator

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

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

Для генерации образцов данных я использую простые приложения 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) для обеспечения ссылочной целостности.

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

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

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

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

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

Я только что нашел об этом: Создатель

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

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

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

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

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

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

Хотя это не бесплатно.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top