Сегодня хочу рассмотреть вопрос тестирования и корректной выборки данных в тестах приложений, а именно, как сделать выборку с точным процентом строк. Например, у меня есть 10 000 строк, и я хочу получить в выборке 10%, а не 1043 или 958. Вот об этом и расскажу далее.

 

Результаты теста

 

В таблицах ниже представлена выборка тестирования с традиционным кодом и новым подходом к выборке. Результаты представлены из фиксированного набора данных из 2 млн. строк:

Результаты из случайного количества строк из набора данных:

Результаты для меньшего количества случайных строк из набора данных:

Здесь привожу контрольную выборку, чтобы показать, что в каждом случае использовались разные строки:

Типичный подход

Общепринятое правило – использование такого кода, который может быть запущен сразу внутри таблицы, если вам нужны отдельные выборки строк. Также вы можете создать таблицу мэппинга или использовать Left Join, если хотите сделать выборку измерения.

Код, который будем использовать в этом случае:

if((rand()<=0.10+now()*0) = 0, ‘Standard Group’, ‘Trial Group’), где 0.10 – это 10% выборки. Теперь оно будет варьироваться в пределах от +/- 1%, что подходит в моем случае в решении большинства задач тестирования, но нам важно, чтобы можно было выбрать конкретный процент.

Как использовать этот код: для выборки всех строк

 

Мое решение

Мое решение этой задачи несколько более длинное, включает загрузки и преобразования данных из ранее загруженной таблицы и их объединения. В итоге, обработка набора данных в 2 млн. строк заняла у меня всего 10 секунд, хотя для решения этой задачи определенно есть более быстрые решения.
Для упрощения всего процесса я добавил несколько переменных.

 

Файлы примеров:

Первый подход к выборке

Второй подход к выборке

 

На этом все на сегодня! Отличных вам разработок с Qlik!