Жыйынтык долбоор: сатуу аналитикасынын базасы
Дүкөндүн жүктөлгөн транзакциялык базасын тез, суроолорго ыңгайлуу аналитика катмарына айландырабыз
fact_sales таблицасы. Бул катмарды бир INSERT ... SELECT менен жүктөйсүз, панелдерди терезе функциялары менен куруп, туура индекстер менен тездетесиз — ар бир чечимди EXPLAIN аркылуу текшерип.
- бар OLTP моделинен жылдыз схемасын (факт + өлчөмдөр) долбоорлоо,
- нормалдаштырылган булактардан факт таблицасын бир join суроосу менен жүктөө,
- рейтинг, өсүп бараткан жыйынды жана когорта панелдерин терезе функциялары менен куруу,
- факт таблицасы үчүн курама индекстерди тандап, аларды
EXPLAINменен ырастоо, - денормалдаштырылган аналитикалык көчүрмөнүн ак ниет соодалашууларын сүрөттөө.
1. Булак: биздин OLTP дүкөн
Баары сиз мурунтан кура билген нормалдаштырылган операциялык базадан башталат. Анда төрт таблица бар: кардарлар заказ берет, ар бир заказдын позициялары бар, ал эми ар бир позиция товарга шилтейт.
CREATE TABLE customers (
customer_id INT PRIMARY KEY,
name VARCHAR(80),
country VARCHAR(40),
signup_date DATE
);
CREATE TABLE products (
product_id INT PRIMARY KEY,
name VARCHAR(80),
category VARCHAR(40),
price DECIMAL(10,2)
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT REFERENCES customers(customer_id),
order_date DATE,
status VARCHAR(20)
);
CREATE TABLE order_items (
order_id INT REFERENCES orders(order_id),
product_id INT REFERENCES products(product_id),
quantity INT,
unit_price DECIMAL(10,2),
PRIMARY KEY (order_id, product_id)
);
Суроолорду көрсөтмөлүү кылуу үчүн бир нече сап:
INSERT INTO customers VALUES
(1,'Aida','KG','2024-01-05'),
(2,'Bekzat','KZ','2024-02-11'),
(3,'Chris','US','2024-02-20');
INSERT INTO products VALUES
(10,'Keyboard','Peripherals',25.00),
(11,'Mouse','Peripherals',15.00),
(12,'Monitor','Displays',180.00);
INSERT INTO orders VALUES
(100,1,'2024-03-01','paid'),
(101,2,'2024-03-02','paid'),
(102,1,'2024-03-15','paid');
INSERT INTO order_items VALUES
(100,10,2,25.00),(100,11,1,15.00),
(101,12,1,180.00),
(102,11,3,15.00),(102,12,1,180.00);
Бул схема заказ жазуу үчүн эң сонун: маалымат кайталанбайт, тышкы ачкычтар таза. Бирок «категориялар боюнча айлык киреше, рейтинг менен» деген отчёт ар жолу төрт таблицаны бириктирүүгө аргасыз. Дал ушул жерде аналитика катмары өзүн актайт.