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-операций: создание конвейеров на выборочных данных.
Проверка качества: контроль качества данных на выборках.
Обязательные параметры:
|
Имя |
Тип |
Описание |
|---|---|---|
|
|
| SYSTEM или BERNOULLI |
|
|
|
Процент строк для выборки (0-100) |
Необязательные параметры:
|
Имя |
Тип |
Описание |
|---|---|---|
|
|
|
Примерное количество строк для выборки (использовать с ключевым словом ROWS) |