Полезные запросы
Сборник полезных запросов.
Анализ данных¶
Сверка по хэшам¶
Порядок столбцов в расчете md5
Важно, чтобы порядок столбцов в расчете хэшей совпадал в itog_calc и target иначе хэш может посчитаться по разному и смысла в такой сверке не будет.
Соединять таблицы необходимо по уникальному ключу.
SQL
WITH itog_calc AS (
SELECT *
, md5(row(itog.*)::text)::uuid AS md5_itog
FROM schema.table_1 itog
)
, target AS (
SELECT *
, md5(row(vitr.*)::text)::uuid AS md5_vitrina
FROM schema.table_2 vitr
)
SELECT count(1) --считаем количество где не совпали данные
FROM itog_calc i
FULL JOIN target v on i.id = v.id
WHERE i.md5_itog <> v.md5_vitrina -- смотрим где хэши не совпали
Удаление дублей¶
Один из способов через создание промежуточной таблицы.
SQL
INSERT INTO <mart wo doubles>
SELECT distinct *
FROM <mart>;
ALTER TABLE <mart> RENAME TO <mart>_bckp ;
ALTER TABLE <mart wo doubles> RENAME TO <mart> ;
Работа с таблицами¶
Распределение таблицы по сегментам¶
Создание таблицы с параметрами¶
SQL
DROP TABLE IF EXISTS test.table_name;
CREATE TABLE test.table_name
WITH (
appendonly = true,
orientation = column,
compresstype = zstd,
compresslevel = 2
)
AS (
SELECT id
, request_id
, data as stage_data
from stage.table_name_source
WHERE clc_date >= '2025-01-01'
) DISTRIBUTED BY (id);