21.6. Функции обработки выборок #

TABLESAMPLE (sampling_method(percentage | rows)) #

Выбирает подмножество строк из аналитической таблицы или результата запроса. Репрезентативные выборки используются для анализа больших наборов данных, а также для повышения производительности запросов при исследовательском анализе данных.

Пример 21.20.

-- Выбрать 10% строк из таблицы
SELECT * FROM large_table TABLESAMPLE SYSTEM(10);

-- Выбрать примерно 1000 строк
SELECT * FROM events TABLESAMPLE SYSTEM(1000 ROWS);

-- Выбрать из файлов озера данных
SELECT * FROM read_parquet('s3://datalake/**/*.parquet') TABLESAMPLE SYSTEM(5);

-- Использовать выборку для быстрого анализа данных
SELECT
    region,
    COUNT(*) as sample_count,
    AVG(revenue) as avg_revenue
FROM sales_data TABLESAMPLE SYSTEM(2)
GROUP BY region;

-- Выбрать из соединений для ускорения
SELECT c.name, COUNT(o.id) as order_count
FROM customers c
JOIN orders o TABLESAMPLE SYSTEM(10) ON c.id = o.customer_id
GROUP BY c.name;

Методы извлечения выборки:

  • SYSTEM: случайная выборка на уровне хранилища (быстрее, приблизительный процент).

  • BERNOULLI: построчная случайная выборка (медленнее, точный процент).

Пример 21.21.

-- Системная выборка (рекомендуется для больших таблиц)
SELECT * FROM huge_table TABLESAMPLE SYSTEM(1);

-- Выборка Bernoulli (точный процент)
SELECT * FROM medium_table TABLESAMPLE BERNOULLI(5);

Сценарии использования:

  • Исследование данных: быстрый анализ больших наборов данных.

  • Тестирование производительности: проверка запросов на выборочных данных.

  • Профилирование данных: изучение закономерностей распределения данных.

  • Разработка ETL-операций: создание конвейеров на выборочных данных.

  • Проверка качества: контроль качества данных на выборках.

Обязательные параметры:

Имя

Тип

Описание

sampling_method

keyword

SYSTEM или BERNOULLI

percentage

numeric

Процент строк для выборки (0-100)

Необязательные параметры:

Имя

Тип

Описание

rows

integer

Примерное количество строк для выборки (использовать с ключевым словом ROWS)