Случайные данные

Представьте, что вы администратор БД, которому поставили зада­чу настроить тестовый сервер и населить его тестовыми данными. Сервер довольно старый, и места на диске маловато. Итак, вы заду­мываетесь о создании примера. Цель работы состоит в уменьшении общего объема данных и уско­рении последующего анализа. Некоторым так нравится подобная идея, что они даже не задумываются, какие данные подойдут для при­мера. Сначала следует осознать, что инструмента, который возьмет и от­режет кусочек от вашей БД, просто нет. Увы!.. И вы поймете почему, если прочитаете этот раздел. Рассмотрим, какой SQL-код поможет вывести пример данных. Па деле это довольно просто: здесь вам пригодится функция random о внутри оператора where. Например:
При этом where random < 0.01 присваивает каждой строке слу­чайное число в диапазоне от 0.0 до 1.0, а затем отбирает те строки, для которых это значение оказалось менее 0.01. Другими словами, для примера отобран 1 % строк таблицы. Вы легко можете модифициро­вать этот код и вывести необходимые для ваших нужд проценты. Теперь вытащим данные для примера из базы данных. По некото­рым причинам это хитрая задача. Во-первых, нет возможности задать where для pg_dump. Во-вторых, если создать представление с помощью where, все равно pg_dump возьмет только его определение, а не само представление. Тем не менее лучше по возможности избегать создания таких при­меров. Или хотя бы ограничиться несколькими большими таблица­ми. Так вы решите сразу две проблемы: выполните математическое моделирование примера и избежите сложностей с вытаскиванием данных. Механизм извлечения демонстрирует возможности инструментов командной строки PostgreSQL psql и pg_dump. Функция pg_dump по­зволяет включать или исключать файлы и делать дамп всей таблицы или даже ее схемы, в то время как psql выполняет дамп результата произвольного запроса в файл. Не будем останавливаться на том, насколько случайными являют­ся результаты работы функции random, поскольку не это является нашей целью. При желании вы можете выбрать другой внешний ге­нератор случайных чисел и вызывать его в SQL с помощью функции языка С.



Рубрика: Женский интерес

29.08.2016