Генераторы данных для SQL-сервера?[закрыто]
-
03-07-2019 - |
Вопрос
Я хотел бы получить предложения по доступным генераторам данных для SQL-сервера.При публикации ответа укажите любые функции, которые вы считаете важными.
Я никогда не использовал такое приложение, поэтому хочу получить знания по этой теме.Спасибо.
(Моя цель — заполнить базу данных более чем 10 000 записями в каждой таблице для тестирования приложения.)
Решение
Я разработал свой собственный генератор данных, который генерирует случайные данные, соответствующие регулярным выражениям.Он превратился в учебный проект (в разработке) и доступен по адресу: github.
Другие советы
Я использовал генератор данных в прошлом.Возможно, стоит посмотреть.
стороннее редактирование
Если вы не зарегистрируетесь, вы сможете создать только 100 строк.Ниже вы можете найти пример того, как выглядит интерфейс сегодня (октябрь 2016 г.).
Здесь спрашивали нечто подобное: Создание тестовых данных в базе данных
Генератор SQL-данных Red Gate делает большую работу в этой области.Вы можете настроить каждое поле вашей базы данных и использовать случайные данные с исходными данными.И даже создавать определенные шаблоны, используя выражения Regex.
Для генерации образцов данных я использую простые приложения 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)
для обеспечения ссылочной целостности.
Visual Studio Team System Database Edition (также известная как Data Dude) делает это.
Я еще не использовал его для генерации данных, но две функции звучат неплохо:
Установите собственное начальное значение для генератора случайных данных.Это позволяет вам генерировать одни и те же случайные данные более одного раза.
Направьте мастер на «реальную» базу данных, и он сгенерирует что-то, похожее на реальные данные.
Может быть, это стандартные функции где-то еще?
Я только что нашел об этом: Создатель
это бесплатно: http://www.sqldog.comсодержит несколько функций, таких как:генератор данных, полнотекстовый поиск, создание документации по базе данных, активные подключения к базе данных
Я использовал инструмент под названием Дататект для этого.
Что мне нравится в этом инструменте:
- Использует ODBC, поэтому вы можете генерировать данные в любой источник данных ODBC.Я использовал это для баз данных Oracle, SQL и MS Access, плоских файлов и электронных таблиц Excel.
- Расширяемо через VBScript.Вы можете написать перехватчики на различных этапах рабочего процесса создания данных, чтобы расширить возможности инструмента.
- Референциально осведомлен.При заполнении столбцов внешнего ключа извлекаются действительные ключи из родительской таблицы.
Я использовал это раньше
http://sqlmanager.net/en/products/mssql/datagenerator
Хотя это не бесплатно.
Проверка целостности ссылок очень важна, иначе ваши тесты будут бесполезны без корреляции связанных данных (в большинстве случаев).