Какие преимущества дает витрина при анализе данных
1️⃣ выше скорость обработки данных. это одна физическая таблица, где уже хранятся все нужные и подготовленные данные для анализа. а значит не тратятся повторно ресурсы на выполнение сложных запросов для очистки, подготовки и преобразования данных. это очень важно, когда например данные используются в BI отчетах, где нужна быстрая скорость отклика дашборда на запрос пользователей
🔡 автоматизация. стоит один раз написать логику обработки данных и поставить ее на обновление с нужным расписанием. и у тебя всегда под рукой готовые данные для анализа без сотен строк запросов и десяток открытых вкладок скриптов
3️⃣переиспользование другими аналитиками. другим аналитикам и тебе не нужно погружаться повторно во все детали обработки и очистки данных каждый раз. достаточно использовать витрину с уже готовыми в ней данными
Процесс создания витрины можно разбить на несколько этапов
➡️ Понять для какой задачи тебе нужны данные.
Витрина данных может быть построена для одной задачи, но как правило ее делают наиболее универсальной, чтобы можно было закрывать несколько задач. Например, для задач Клиентской аналитики можно собрать витрину с целевыми действиями клиента в продукте, туда же вывести косты или выручку по этим целевым действиям, добавить базовую информацию о клиенте. Тогда по одной витрине можно сразу рассчитать продуктовую воронку, конверсии из этапа в этап, посчитать retention, RFM-анализ или даже LTV (Lifetime value).
➡️ Написать логику сборки и преобразования данных.
Если все данные уже есть в одной базе данных или хранилище, логику можно писать на SQL. Если требуется собирать данные из разных источников, можно подключить Python. В любом случае именно на этом шаге определяется то, как данные будут выглядеть в таблице - на каком уровне детализации, какие данные отфильтровать вовсе, чем обогатить через join, какие поля добавить расчетные, как агрегировать показатели и многое другое.
➡️ Определить логику обновления данных.
В зависимости от задачи и от самих данных можно следовать разной логики обновления. И для этого стоит определить несколько ключевых факторов
- частота обновления данных (раз в час, 2 раза в день и т.п.)
- объем данных
- инкрементальное обновление или полная перезагрузка
- хранить ли исторические данные. какой SCD-тип обновления выбрать
➡️ Автоматизировать логику обновления.
Здесь нам понадобятся навыки junior+ или middle инженера данных, чтобы использовать Python и доступные нам ETL инструменты. В зависимости от логики обновления данных можно будет использовать разные инструменты: Apache Airflow, Apache Kafka, Apache NiFi, Cloud Functions, PySpark и другие. Главное - сделать так, чтобы данные в нашу витрину попадали в нужном формате (логикой преобразований) и в нужном расписании (логика обновления).
Сейчас этот процесс проходят на практике мои ученики, выполняя 2-й спринт по созданию витрин данных. Туда входят витрины для маркетингового отчета на базе данных Яндекс Метрики, а также витрина для исследования целевых продуктовых действий CJM (клиентского пути). Совсем скоро объявлю набор в следующую практическую группу
Post #1509
297

- 👍 4
- ❤ 2