Пора перестать в любой непонятной ситуации строить DWH для аналитики

от автора

Привет!
Кажется, первая статья нашла своего благодарного читателя.

Снова мысли от CDO трудящегося вместе с одной небольшой компанией.
Продолжу о том, что «наболело».

Эта статья может быть Вам полезна, если консалтинг/интегратор/CTO/CIO/сын маминой подруги настойчиво хочет решить все Ваши «проблемы» в аналитике классным корпоративным хранилищем, далее — DWH.

Возможно, полезно подумать, взвесить, разобрать потребность в DWH

Возможно, полезно подумать, взвесить, разобрать потребность в DWH

Иногда специалисты склонны называть DWH место, куда просто всё сгрузили, например, в какую-либо СУБД, MDX OLAP, S3 тот же. По сети ходят мемы про dwh на excel.
И, в принципе, это всё тоже можно называть хранилищем. Тут как с аналитиками и многообразием специальностей.
В этой статье про другое DWH.

Для меня DWH/корп.хранилище/Хранилище — это, в первую очередь, система, которая включает процессы транспорта данных, профилирования — проверки на полноту и консистентность (гуглим, если читаем в первый раз), дообогащения, нормализации, моделирования и преобразования.
Ещё для DWH нужна модель хранения данных, автоматизация рутинных операций, регламенты ведения разработки.

Наверняка, вместе со словами о DWH Вы слышали про корректные, доступные, удобные и быстрые витрины данных. Что хорошее хранилище — это один из лучших способов повышения культуры данных в компании. А за DWH сразу тянется потребность в документации, бесчисленные тесты подтягивают качество и доверие к данным. Аналитики делают свои задачи быстрее и правильнее, расчёты согласованные. С DWH Ваши специалисты успешно и быстро решают задачи на ML/LLM/AI.

Всё это правда, только не полная.

DWH — это система, это про стратегию, про далёкое и светлое и упорядоченное.
И к нему безусловно следует стремиться, иногда.

DWH также — один из инструментов, который может использоваться для развития аналитики и data-driven подхода, который может использоваться в компании вместе с системой контроля качества данных, с глоссарием/каталогом, вариацией self-service и BI, системы MDM/НСИ.

DWH - это пушка. И, возможно, Вам уже хочется "расчехлить" эту "пушку"

DWH — это пушка. И, возможно, Вам уже хочется «расчехлить» эту «пушку»

Как любой другой инструмент, DWH стоит создавать и использовать при наличии на это потребности.

Возможно, именно для Вашего проекта DWH не нужен. И без него аналитики достаточно и аналитика качественная.

Разберём когда DWH НЕ нужен

  • Проект только начался, с методиками расчётов ещё не определились, не знаем как устроены данные/плохо представляем модель данных компании/продуктивный контур под активным рефакторингом — не доработка, а именно рефакторинг.
    Риск тут в том, что разработанное потом и кровью нужно будет переделывать «с 0», не потому что ошиблись, а потому что реальность оказалась совсем иной.

  • Все интересные для аналитики данные лежат в одном источнике/расчёты собираются в пределах одного источника данных И данных мало, до 2 ТБ + прирост данных в год до 200 МБ.
    А зачем тогда хранилище? Строим отчётность на репликах прода. Если нужно, собираем все нужные реплики на одном сервере

  • Нет потребности в регулярных расчётах. Вам больше интересны однократные исследования
    Возможно, потребности в регулярных расчётах у Вас и не будет, возможно, это случай про начало проекта, когда ещё не понятно как на цифрах управлять бизнесом. Риски указал выше

  • У Вас нет бюджета на это мероприятие. Цена вопроса ~1,2 млн.rur. на ФОТ + 0,5 млн.rur. на железо. Для разработки DWH Вам нужен devops/dba с уклоном в инженерные задачи для репликации данных, которые будете собирать в хранилище, системный аналитик для профилирования данных и проработки модели данных, архитектор для определении архитектуры хранения, правил разработки и инженер для настройки и сопровождения Extract-Load-Transform-процесса. Каждый стоит ~350k rur на сегодня. Да, можно на старте все эти роли закрывать одним человеком. Видел проекты, в которых 1 человек всё DWH и поддерживает.
    Если Вам достаточно 1 человека на DWH, возможно, и без DWH потребность можно было закрыть

  • Некому пользоваться хранилищем. Вот такой вот парадокс. Основные пользователи DWH — аналитики. Если у Вас нет/меньше 3-х аналитиков, скорее всего, потребность в аналитике можно закрыть без хранилища — на автоматизациях программированием и/или коробочными предложениями от крупных поставщиков BI решений. Тот же Power BI предлагает внутри своего облака делать небольшое хранилище.
    И это будет быстрее-дешевле и проще

Ни один из пунктов не остановил?

Тогда вот ещё несколько «не» про DWH

  • не дёшево в ресурсах на разработку, на внедрение, на сопровождение и на ошибки

Для хорошей реализации одной витринки на 3-4 табличках нужно ~1/2 месяца времени системного аналитика и ~1 месяц времени инженера. Ошибка в реализации часто приводит к удорожанию работ в 2 раза.

  • не решает всех потребностей аналитики

Часто аналитика нужна сегодня, по той фиче, которую вчера выкатили. И возможно, эта аналитика к чему-то регулярному не приведёт

  • не строится «с наскоку» и по неизведанным данным

Хранилище — это определённая структура. Чтобы что-либо сложить в структуру, нужно хорошо понимать природу данных, особенности и ограничения данных

Может показаться что я против хранилищ. Я за. Сам разрабатывал хранилище на позиции инженера, руководил тремя командами инженеров в трёх разных командах и, конечно, был одним из самых частых пользователей.

Думаю, DWH — это про определённую зрелость функции аналитики и культуры работы с цифрами в компании.

Пока зреете, будет полезнее сфокусировать внимание на каталоге данных, реестре отчётов и расчётов/дереве метрик, стандартах процессов работы с данными, на вопросах качества данных и на популяризации data-driven в принятии решений.

И да, будет нормально НЕ строить DWH, но сгрузить все нужные источники на один сервер.

Часто, под DWH понимают только это.

Буду рад комментариям.
Надеюсь, пара незрелых проектов разработки DWH свернётся за недостаточностью оснований.


ссылка на оригинал статьи https://habr.com/ru/articles/863308/