TG Telegram Group & Channel
ML Advertising | United States America (US)
Create: Update:

Как настроить DataLake с медальной архитектурой данных на платформе ставок?

Стандартный способ построения DataLake в компании — это использование медальной архитектуры, при которой данные трансформируются по этапам.

1️⃣ Из каких этапов состоит медальон?

- 🥉Bronze : логируем данные as-is на выходе с очередей, БД, внешних запросов по API (Salesforce, DMP etc.)
- 🥈Silver : сырые логи вычищаются. Удаляем дубликаты, аукционы с отсутсвующим auction_id, невалидные реквесты
- 🥇Gold : аггрегируем данные Spark джобами (groupby user, country, campaign, publisher etc.), подготавливаем для записи в витрины


2️⃣Где могут возникнуть проблемы?

- Gold слой хаотичен и непригоден для общего пользования. В компании могут быть десятки команд, которые считают одни и те же вещи разными метриками и по разному их трактуют. Например, определение eCPM для supply/ demand команд разное. Или могут присутствовать два разных расчета относительной маржи (revenue - cost) / cost и (revenue - cost) / revenue в бухгалтерии и на платформе. Эти вещи наводят путаницу в использовании Gold слоя

- На Silver слой накладывается слишком много задач. Сюда могут накидать импорт данных из сырых логов, очистку, дедублирование, приведение к аналитике, предобработка для витрин. Т.е. когда в слой, который должен выполнять только техническую работу дополнительно накручивают бизнес-логику

- Мнение о том, что gold - "лучше", чем silver, а он "лучше", чем bronze. Здесь может дойти до того, что события или отдельные датасеты копируются по слоям потому, что дашборды аналитики разрешено строить только по gold слою

- Ownership. Кто управляет и поддерживает каждый слой?


3️⃣А как надо?

- Bronze: отвечает за запись данных. Схема данных соответствует источнику (очереди, API etc.). Данные партицируются по времени. Пишем либо в S3, либо в Snowflake, поскольку в нем можно создавать таблицы на основе сырых данных без необходимости делать дополнительную копию.

- Silver: Очищаем данные, делаем join'ы. Если есть вложенные полуструктурированные данные, то делаем их плоскими (explode). При этом сюда НЕ заводим бизнес-логику, а оставляем ее для следующего этапа. За этот и предыдущий этап отвечает, как правило, DE команда, которая поддерживает в том числе и стриминговую запись в bronze.

- Gold: Имплементим бизнес-логику и аггрегации для витрин. Чтобы они между командами не расходились, нужно согласовать схему данных, и назначение аггрегированных метрик между всеми стейкхолдорами в компании. Держим его максимально компактным и централизованным

Как настроить DataLake с медальной архитектурой данных на платформе ставок?

Стандартный способ построения DataLake в компании — это использование медальной архитектуры, при которой данные трансформируются по этапам.

1️⃣ Из каких этапов состоит медальон?

- 🥉Bronze : логируем данные as-is на выходе с очередей, БД, внешних запросов по API (Salesforce, DMP etc.)
- 🥈Silver : сырые логи вычищаются. Удаляем дубликаты, аукционы с отсутсвующим auction_id, невалидные реквесты
- 🥇Gold : аггрегируем данные Spark джобами (groupby user, country, campaign, publisher etc.), подготавливаем для записи в витрины


2️⃣Где могут возникнуть проблемы?

- Gold слой хаотичен и непригоден для общего пользования. В компании могут быть десятки команд, которые считают одни и те же вещи разными метриками и по разному их трактуют. Например, определение eCPM для supply/ demand команд разное. Или могут присутствовать два разных расчета относительной маржи (revenue - cost) / cost и (revenue - cost) / revenue в бухгалтерии и на платформе. Эти вещи наводят путаницу в использовании Gold слоя

- На Silver слой накладывается слишком много задач. Сюда могут накидать импорт данных из сырых логов, очистку, дедублирование, приведение к аналитике, предобработка для витрин. Т.е. когда в слой, который должен выполнять только техническую работу дополнительно накручивают бизнес-логику

- Мнение о том, что gold - "лучше", чем silver, а он "лучше", чем bronze. Здесь может дойти до того, что события или отдельные датасеты копируются по слоям потому, что дашборды аналитики разрешено строить только по gold слою

- Ownership. Кто управляет и поддерживает каждый слой?


3️⃣А как надо?

- Bronze: отвечает за запись данных. Схема данных соответствует источнику (очереди, API etc.). Данные партицируются по времени. Пишем либо в S3, либо в Snowflake, поскольку в нем можно создавать таблицы на основе сырых данных без необходимости делать дополнительную копию.

- Silver: Очищаем данные, делаем join'ы. Если есть вложенные полуструктурированные данные, то делаем их плоскими (explode). При этом сюда НЕ заводим бизнес-логику, а оставляем ее для следующего этапа. За этот и предыдущий этап отвечает, как правило, DE команда, которая поддерживает в том числе и стриминговую запись в bronze.

- Gold: Имплементим бизнес-логику и аггрегации для витрин. Чтобы они между командами не расходились, нужно согласовать схему данных, и назначение аггрегированных метрик между всеми стейкхолдорами в компании. Держим его максимально компактным и централизованным
🔥7👍3


>>Click here to continue<<

ML Advertising




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)