Как я могу генерировать данные случайных выборок в моей базе данных Oracle?

Кто-нибудь знает инструмент, который может проверять указанную схему и генерировать случайные данные на основе таблиц и столбцов этой схемы?

Ответы

Ответ 1

Другой альтернативой является Генератор данных Swingbench

Полезно использовать предложение SAMPLE (например, генерировать строки порядка для случайной комбинации заказов и продуктов)

Ответ 2

Это интересный вопрос. Достаточно легко генерировать случайные значения - простая петля вокруг словаря данных с вызовами в DBMS_RANDOM сделала бы трюк.

За исключением двух вещей.

Один из них, как указывает @FrustratedWithForms, усложняет ограничения внешнего ключа. Вставьте также значения для поиска подсказок (справочные данные).

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

Итак, вместо того, чтобы пытаться генерировать случайные данные, я предлагаю вам попробовать получить реальный набор данных. В идеале ваш пользователь/клиент сможет предоставить один, предпочтительно анонимный. В противном случае попробуйте взять что-то, что уже находится в общественном достоянии, и массируйте его в соответствии с вашими конкретными требованиями. Info Chimps - это верхние бананы, когда дело доходит до этих вопросов. Проверьте их.

Ответ 3

Allround Automation PL/SQL Developer имеет инструмент для создания данных. Но будьте осторожны: он немного шелушился - кажется, что он работает нормально на одной таблице, но сработает, когда есть зависимости между таблицами.

Я признаю, что в конечном итоге я начал писать собственные сценарии SQL для генерации данных. Оказалось, что он намного более стабилен.

Ответ 4

Посмотрите Databene Benerator.

Немного сложно сделать начальную настройку, но достаточно мощную.

Ответ 5

Немного дикой карты, но я подумал, что я упоминал об этом.

Если у вас есть данные в производственной среде, которую вы не можете использовать, поскольку она может содержать конфиденциальную информацию, Oracle имеет продукт под названием "Oracle Data Masking", который заменит чувствительную информацию реалистичными значениями.

Я не знаю стоимость этого продукта, но если вам нужна дополнительная информация, его можно найти здесь.