Data Apps Design – Telegram
Data Apps Design
1.54K subscribers
143 photos
2 videos
41 files
231 links
В этом блоге я публикую свои выводы и мнения на работу в Data:

— Data Integration
— Database engines
— Data Modeling
— Business Intelligence
— Semantic Layer
— DataOps and DevOps
— Orchestrating jobs & DAGs
— Business Impact and Value
Download Telegram
dbt supercharges SQL with macros

With dbt you can leverage the full power of Jinja templating language in your SQL noscripts. These code blocks are compiled into valid statements before being executed on a target database. Let me show you some useful tricks to use with the CORE DWH module.

You have already seen filter_rows() macro invocation in place of WHERE expression. It is used in every staging model. It helps fetch only relevant account rows and limit the number of rows for development and testing purposes if a table is large enough (especially useful for fact tables – sessions, hits, conversions).

https://kzzzr.github.io/dbt-supercharges-SQL-with-macros/
Generating concatenate and surrogate keys

Surrogate keys are the central point of any Data Warehouse uniquely identifying rows and connecting facts and dimensions tables. I usually utilize hash functions of source PK columns, which comes from Data Vault 2.0 and gives us consistent results coming from various sources.

But sometimes in case of a compound key you might want to retain readability of the whole concatenated values. This is especially applicable for marketing analytics, where the row key might contain utm_source, utm_medium, utm_campaign, ads_group_id, keyword_id.

https://kzzzr.github.io/Generating-concatenate-and-surrogate-keys/
Performing custom ‘not empty’ tests

dbt is shipped with essential schema tests which I covered in one of my previous posts on CORE DWH test suite. There are plenty of additional tests and handy macros shipped with the dbt-utils package, including equal_rowcount, expression_is_true, recency, at_least_one, etc.

But still if you need something special you can easily add it yourself. For me this is signalling if one of my source tables is empty.

https://kzzzr.github.io/Performing-custom-not-empty-tests/
Performing set operations UNION, INTERSECT, MINUS with Looker BI tool

The problem:
I would like to list and count all the users who have used product A but never used product B (in a specific period/area/country).

You cannot achieve the desired result by simply slicing this table. One needs a more advanced technique:

- MINUS operation on top of two sets of users:
- Writing a subquery with IN or EXISTS
- Self-joining a fact table

But can I do this with BI tool?

https://kzzzr.github.io/Performing-set-operations-UNION,-INTERSECT,-MINUS-with-Looker-BI-tool/
Мастер-класс по Разведочному Анализу Данных – Exploratory Data Analysis – EDA

Kiva - это некоммерческая организация, которая позволяет нуждающимся более чем в 80 странах мира получать финансирование под различного рода проекты и нужды.

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

– Проверьте, насколько имеющиеся данные чисты, то есть подвержены выбросам, пропущенным и недействительным значениям
– Ознакомьтесь с датасетом, изучите его базовые характеристики, выявите первоначальные зависимости
– Изучите основные демографические характеристики людей, которые используют Kiva. Из каких они регионов и стран? Какова гендерная характеристика заемщиков?
– Посмотрите, для каких целей людям нужны средства и какие суммы они просят. Изучите сектора экономики, виды деятельности и сделайте выводы о том, как обстоят дела в каждом из них.
– Немаловажным является еще один вопрос: как долго заемщикам приходится ждать полного финансирования заявки? Известно, что некоторые люди на платформе просят ссуды на неотложные нужды.
– Попробуйте изучить природу зависимости времени, требуемого на погашение ссуды и суммы кредита. Возможно, это поможет лучше узнать, сколько люди в конкретных регионах могут себе позволить выплачивать на самые важные нужды.
– Сформулируйте основные выводы и визуальные материалы, подкрепляющие их.
Запись мастер-класса доступна, конечно, в рамках курса Skillbox, но Jupyter-ноутбук с пояснениями на русском языке в наличии для самостоятельного изучения и экспериментов.

https://github.com/kzzzr/skillbox-kiva
Подготовил интереснейшее задание для Datathon по DWH / Analytics Engineering:
Сквозная аналитика и практики data-driven для e-Commerce

Пользуйтесь шансом влиться в движение, пообщаться, попрактиковаться на кейсе, приближенном к реальности.
В качестве призов – бесплатное участие в курсе Data Engineer или Analytics Engineer (новый!) на выбор.
Forwarded from OTUS IT News
🔥 С 14 по 16 мая в OTUS пройдет открытое онлайн-соревнование по Data science. Участие бесплатное!
Попробуйте свои силы в любом из двух направлений на выбор:
✫ Machine Learning
✫ Data Warehouse

🏆 Главный приз — бесплатное обучение на любом курсе по Data Science.
Регистрируйся, чтобы не пропустить обновления! О призах и правилах участия узнайте на вебинаре 14 мая.
Data Apps Design
Подготовил интереснейшее задание для Datathon по DWH / Analytics Engineering: Сквозная аналитика и практики data-driven для e-Commerce Пользуйтесь шансом влиться в движение, пообщаться, попрактиковаться на кейсе, приближенном к реальности. В качестве призов…
[OTUS Datathon] Помогите владельцу e-Commerce-платформы принимать обоснованные и взвешенные решения на основании данных.

В качестве входной информации вы получаете выгрузки:

1. CRM-система
2. Счетчики веб-аналитики
3. Рекламные кабинеты

Ваши задачи:

- Выгрузка и интеграция данных – DONE!
- Подключение к исходному датасету
- Построение логической модели Хранилища Данных
- Расчет бизнес-метрик и формирование аналитических витрин
- Подготовка визуализаций и дашбордов
- Формирование выводов и рекомендаций для владельца бизнеса
- * Настроить регулярное обновление витрин, рассылку отчетов
- * Высветить проблемы качества данных

Подробная информация и логин-пароль для подключения к данным в брифинге:
Сквозная аналитика и практики data-driven для e-Commerce
Сегодня хотел бы поговорить о вопросах конвертирования финансовых показателей в разные валюты. Вопрос достаточно актуальный, так как большое количество компаний имеют мультинациональные зоны присутствия, строят аналитику глобального масштаба, готовят отчетность по международным стандартам.

Покажу как этот вопрос решается с помощью современных подходов на примере кейса Wheely:

– Расширение списка базовых валют
– Регулярное обновление и получения актуальных курсов
– Обеспечение корректности исторических показателей
– Максимальное удобство и простота использования в аналитических инструментах

https://habr.com/ru/company/otus/blog/558238/
An interesting approach on how to solve data modeling problem.

Istead of going from source data to target data mart, you write your models backwards, starting from the desired result and then performing actions and steps to achieve it.

1. Prototype with GSheets
2. Mock out the final report you’re trying to build
3. Mock the query that would produce this result
4. Iterate
5. Match this up with source data
6. Move the logic into your pipeline orchestration tool


Full post from Claire:

https://discourse.getdbt.com/t/writing-models-backwards-an-unorthodox-approach-to-data-transformation/2287
Forwarded from OTUS IT News
#expert

⚡️ Всем привет! Сегодня в гостях у OTUS News Артемий Козырь — Analytics Engineer в компании Wheely, автор телеграмм-канала Technology Enthusiast, а также преподаватель курсов Data Engineer, Hadoop Ecosystem в OTUS.

Поговорили с Артемием про принципы, лежащие в основе решений, работающих с Big Data ⬇️

***

Большие данные, кластерные вычисления, MPP базы данных – всё это может звучать так сложно и загадочно не только для обывателя, но и для ИТ-специалистов.
Однако, принципы, лежащие в основе решений, работающих с Big Data, логичны и интуитивно понятны. Они одинаково применимы и к инструментам экосистемы Hadoop (Hive, Spark, HBase, Kafka), и к аналитическим движкам корпоративного уровня (Teradata, Vertica, Oracle, Exasol), и к современным облачным решениям (Snowflake, Databricks, Redshift, BigQuery).

Параллелизация вычислений. Распределение большого объема данных на ноды кластера и обеспечение независимой параллельной обработки каждой из частей. MapReduce – классический пример.

Структурирование данных. Сегментация пользователей и их транзакций по идентичному ключу, например, по user_id. А также партиционирование – деление данных на логические части, например, в зависимости от даты транзакции (горячие, теплые, холодные)

Оптимизация физического хранения. Запись данных на диск в колоночном формате, применение алгоритмов кодирования и сжатия. Предварительная сортировка данных.

Актуализация статистических данных (метаданные). Это гистограммы распределения, количество уникальных значений, минимумы, максимумы, наличие NULL. Такая метаинформация критически важна для построения оптимального плана выполнения и выбора алгоритмов.

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

Новый запуск курса Data Engineer, стартующий 31 мая, приобретает кейс-ориентированный подход. Каждый модуль посвящен разбору отдельного сценария: Architecture, Data Lake, DWH, NoSQL, MLOps.

На подходе курс DWH Analyst, в котором основной фокус делается на направление Analytics Engineering: углубленная аналитика, моделирование данных, Business Intelligence, Data Quality.

***

💬 Мы ищем гостей для новых выпусков рубрики.

Пиши мне, если есть, что рассказать.

Обсудить
Long time no see, folks!

Let us investigate super hot app TikTok from the point of Marketing API integration.
There's not much information on this topic available on the net today.

For now I see the steps as follows:

1. Register as a developer and create an App – DONE
2. Get access to any business account (who does promotions/advertising) – DONE
3. Acquire API token – DONE
4. Play with API

Briefly, interesting things one can do via API:

– Reporting API
- Audience management
– Pixel management

That could be promising and demanded integration.

Share what you think about it.
And stay tuned.
Завтра 15 июня в 15.00 проведу вебинар.

Практическое Качество Данных

– Тесты схемы и бизнес-логики
– Актуальность и своевременность данных
– Получение статусов и уведомлений в Slack
– Исправление проблем и Data Fixes

Ссылка на регистрацию: https://otus.ru/lessons/dwh/#event-1340
Ссылка на youtube-трансляцию будет в канале за 5 минут до начала.
Завтра проведу вебинар Configuring Slim CI: легковесные интеграционные тесты для Хранилища Данных

– Кейс: место CI в аналитических приложениях
– Настройка интеграционных тестов для DWH
– Slim CI: оптимизируем и ускоряем

Время: 6 июля в 15:00
Регистрация: https://otus.ru/lessons/dwh/#event-1393
Ссылка на трансляцию будет в канале за 5 минут до начала.