Равномерное распределение против Data Skew: 80% строк на одном сегменте из четырёх
CREATE TABLE fact_orders (
order_id bigint,
customer_id bigint,
amount numeric,
order_date date
)
DISTRIBUTED BY (customer_id); SELECT gp_segment_id, count(*) AS rows_cnt
FROM fact_orders
GROUP BY gp_segment_id
ORDER BY rows_cnt DESC;
gp_segment_id | rows_cnt
---------------+----------
7 | 42910384
0 | 612044
3 | 611390
2 | 605122
1 | 598877 SELECT skcoid::regclass AS table_name, skcoeff
FROM gp_toolkit.gp_skew_coefficients
WHERE skcoid = 'fact_orders'::regclass;
table_name | skcoeff
---------------------+---------
public.fact_orders | 187.42 Эксперт ДБ-сервис