Prog Academy
RU UA
Дані та аналітика

Що таке сховище даних (Data Warehouse)?

Сховище даних (DWH) — окрема база, куди збирають дані з усіх систем компанії спеціально для аналізу та звітності. Вона зберігає історію, приведену до єдиної структури, і не заважає роботі основних застосунків.

Звичайна база застосунку оптимізована під швидкі операції з окремими записами: створити замовлення, оновити статус. Важкий аналітичний запит за всі роки на такій базі сповільнить робочу систему, тому аналітику виносять окремо.

Окрім розвантаження, сховище розвʼязує питання єдиної версії правди: ті самі довідники, узгоджені визначення метрик і повна історія змін. Дані потрапляють туди через ETL-процеси — зазвичай за розкладом, уночі.

Де застосовується

Сховище зʼявляється, коли компанія переростає звітність «з однієї бази». Дані про замовлення живуть в інтернет-магазині, оплати — в обліковій системі, звернення — у CRM, витрати — у рекламних кабінетах; зібрати з цього єдиний звіт напряму неможливо.

Зараз такі сховища найчастіше хмарні: BigQuery, Snowflake, Redshift або PostgreSQL для невеликих обсягів. Структуру проєктують зіркою — таблиця фактів із подіями і довідники навколо неї, — а наповнюють ETL-процесами ночами. Зверху працюють BI-інструменти й аналітики зі своїми запитами.

Приклад

Аналітик хоче порахувати виручку за когортами клієнтів за три роки. У базі інтернет-магазину такий запит повісить сайт на кілька хвилин. У сховищі він виконується на копії даних, яка для цього й призначена, і ніхто з покупців нічого не помічає.

SELECT d.year_month,
       s.region,
       SUM(f.revenue) AS revenue
FROM fact_sales f
JOIN dim_date  d ON d.date_key  = f.date_key
JOIN dim_store s ON s.store_key = f.store_key
GROUP BY d.year_month, s.region
ORDER BY d.year_month;
Схема «зірка»: таблиця фактів посилається на довідники, тому звіт будується одним зʼєднанням.

Часті запитання

Чим сховище відрізняється від звичайної бази даних?

Призначенням. База застосунку оптимізована під часті операції з окремими записами і працює в реальному часі. Сховище розраховане на важкі запити по всій історії одразу і оновлюється порціями за розкладом, не заважаючи роботі продукту.

Що таке data lake і чим він відрізняється від сховища?

Озеро даних зберігає все поспіль у вихідному вигляді: логи, файли, вивантаження, зображення — без заздалегідь заданої структури. Сховище містить очищені й узгоджені дані, готові для звітності. Часто їх використовують разом: озеро як первинний склад, сховище як вітрина.

Чи потрібне сховище невеликій компанії?

Не завжди. Поки джерело одне й обсяги невеликі, звіти можна будувати просто на копії бази. Привід замислитися зʼявляється, коли джерел стає кілька, а різні відділи починають приносити на зустріч різні цифри за одним і тим самим показником.

Як часто оновлюють дані у сховищі?

Найчастіше раз на добу вночі — цього достатньо для управлінської звітності. Там, де рішення ухвалюють швидше, налаштовують завантаження щогодини або потокову передачу. Що ближче до реального часу, то дорожче обходиться інфраструктура і підтримка.

Повʼязані терміни