Загрузка данных из QVD, частичная
Описание
Иногда в разработке приходится быстро проверять некоторые гипотезы на больших объемах данных, давайте объем данных представим в виде 100 000 000 строк в 1 QVD-файле.
Как долго будет грузиться такой объём данных? В зависимости от количества полей, условий загрузки, расчётов каких либо - долго, может даже минуты.
Предлагаю несколько вариантов загрузки данных, которые можно использовать исходя из ваших текущих задач, поехали!
Вариант 1. FIRST
Самый простой способ, это использование префикса перед словом LOAD, например:
FIRST 100
LOAD ...
Такая конструкция кода загрузит нам первые 100 строк из QVD файла, на самом деле не только из QVD, но и из любого другого источника, будь то excel, csv, базы данных и прочие.
Вариант 2. RAND()
Способ, который мне не очень нравится, тем не менее имеет место, это использование случайного числа в условиях загрузки:
LOAD
Моё_Поле1
, Моё_Поле2
FROM ...
WHERE
RAND() < 0.01
В данном случае, у нас при загрузке каждой строки из источника, будет генерироваться случайно число от 0 до 1, и будет производиться проверка его на условие, что оно меньше числа 0.01, т.е. 1%. Еще раз, RAND() генерирует число от 0 до 1, где 0 - это 0%, а 1 = 100% а в условии мы проверяем значение на 0.01, что является 1% от данного случайного числа.
Аналогичным образом можно заменить 0.01 на 0.1 и мы получим 10% данных.
Но! Вы практически никогда не сможете загрузить точный процент данных из источника, всегда у вас будет плавающее значение загружаемых данных, при попытке загрузить 10% - в итоге вы можете получить 2% данных, или 15%. Всё зависит от генератора случайных чисел и это нужно учитывать.
Вариант 3. SAMPLE
Префиксный оператор SAMPLE, работает аналогично оператору RAND() в условии, всё так же, с погрешностями, пример использования:
SAMPLE 0.01
LOAD ...
FROM ...
