PostgreSQL - Генерация тестовых данных

PostgreSQL - Генерация тестовых данных

Коллеги всем привет.

В сегодняшней статье мы поговорим о том как можно сгенерировать тестовые данные в СУБД PostgreSQL.

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

Чтобы решить нашу проблемы, нам может помочь сам PostgreSQL, а точнее его встроенные функции.

 

Первым делом мы создадим тестовую базу данных в которую мы будем генерировать тестовые данных, база данных будет называться test_random_data.

psql> CREATE DATABASE test_random_data;

test data generation


 

Следующим действием создадим таблицу в нашей новой созданной базе данных под названием random_number.

psql> CREATE TABLE random_number (id INT, age INT);

test data generation


 

Теперь настала очередь генерировать данные. Генерировать данные будем с использованием двоих встроенных функций: generate_series() и random().

Функция generate_series() это встроенная функция в PostgreSQL которая упрощает создание упорядоченных чисел. Функция принимает как минимум два обязательных параметра для указания параметров запуска и остановки для сгенерированных данных.

Простой пример использования функции:

psql> SELECT generate_series(1,10);

test data generation

Из примера видно нам видно, что функция generate_series() возвращает последовательные числа между начальным и конечным параметрами. При использовании этой функции числовых данных будут увеличиваться на 1.

 

Вторую функцию которую мы будем использовать называется random(). Функция генерирует случайное число с плавающей запятой от 0 до 1.

Простой пример использования функции:

psql> SELECT random();

test data generation

 

Теперь давайте используем эти две функции вместе и вставим 1000 строк с некоторыми случайными данными в таблицу которую мы создали.

psql> INSERT INTO random_number (id, age) VALUES (generate_series(1, 1000), trunc(random()*10 * 2));

test data generation

Как видим в результате данные успешно генерируются.

Таким же способом мы можем генерировать миллионы строк.


 

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

 

ПОХОЖИЕ СТАТЬИ

PostgreSQL - Как определить к каким файлам на диске соответствуют таблицы в базе данных
PostgreSQL - Как определить к каким файлам на диске соответствуют таблицы в базе данных
POSTGRESQL
Читать далее
PostgreSQL - Как узнать размер таблиц в базе данных
PostgreSQL - Как узнать размер таблиц в базе данных
POSTGRESQL
Читать далее
PostgreSQL - Как проверить привилегии пользователя
PostgreSQL - Как проверить привилегии пользователя
POSTGRESQL
Читать далее