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
Собрал аналитические задачи на SQL с интерактивными примерами / решениями на sqlfiddle.com

От простого к сложному:

- Конкатенация значений из нескольких строк
- CASE в агрегирующих функциях
- Дедупликация данных
- Анализ временных рядов
- NULL & IF-THEN-ELSE в SQL
- Аналитические функции
- Историзация со Slowly Changing Dimensions (SCD)
- FULL JOIN для соединений без потерь
- Разбиение пользовательских событий на сессии

https://habr.com/ru/company/otus/blog/541882/
Channel photo updated
Сегодня приглашаю на вебинар по Looker - топовый BI-инструмент на рынке!
- Моделирование данных: структура проекта и блоки LookML
- Исследование данных: pivot, drill-down, table calculations
- Визуализация: типы графиков, дашбординг, кросс-фильтры, sharing
https://youtu.be/-YMCafO_cZk
Ура! Новый пост.
2+ года dbt в продакшн в управлении Хранилищем Данных.
- Структура хранилища + бизнес-вертикали
- Оптимизация физического хранения в Redshift
- SQL + Jinja = Flexibility
- Macro: UDF, currency exchange
- Importing modules: calendar, external data, logging
- Deployment with dbt Cloud: Schedule + Webhooks, Slack notifications
Мультитул для управления Хранилищем Данных — кейс Wheely + dbt
Technology Enthusiast Digest
Here I will structure materials and talks chronologically ordered.
At the end you will find TBD heading with posts to be done. Please comment on topics you are interested in to prioritize them.
Data Apps Design pinned «Technology Enthusiast Digest Here I will structure materials and talks chronologically ordered. At the end you will find TBD heading with posts to be done. Please comment on topics you are interested in to prioritize them.»
Forwarded from OTUS IT News
#expert

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

Поговорили с Артемием про демократизацию аналитики. Подробнее о том, почему Большие Данные никогда не были ближе и доступнее, в посте ниже⬇️

***

Данные и результаты их обработки используются повсеместно. Взрывной спрос на специалистов по работе с данными и рост их зарплат – яркое тому подтверждение.

В то же время реализация востребованного data-проекта никогда не была доступнее, в том числе и для ниндзя-одиночки. Судите сами:

▪️Облака. Готовый MPP движок или Hadoop кластер за 3 минуты – посчитал, сохранил результат – погасил. Zero administration. При этом каждый вендор стремится создать лУчший по функционалу и удобству продукт.

▪️Фреймворки типа dbt элегантно абстрагируют рутинную часть работы и boilerplate code, фокусируя внимание на написании бизнес-логики и лучших практиках разработки. То, для чего раньше создавались целые отделы в компаниях, теперь может быть реализовано усилиями 1-2 людей.

▪️Экспертные сообщества, культура обмена знаниями, open source – это обеспечивает быстрый старт и снижает порог входа. Slack, discourse, telegram channels – места концентрации идей, мнений и крупиц золота. Взгляните на топ аналитических задач на SQL с интерактивными примерами / решениями на sqlfiddle.com

И, конечно, публикуйте свои открытия. Сегодня каждый может стать героем.

Несколько идей проектов, которыми делюсь с вами:

Парсинг телеграм-каналов. Перепосты и кластеры «либеральных» и «патриотических» медиа

Мониторинг блогосферы: «снова в школу» по воскресеньям и «наконец-то пятница»

Граф социальных связей и интересов. Начните с подписок своего Instagram

Тем временем я упорно работаю над содержанием нового курса Data Warehouse Analyst. Именно вы можете повлиять на структуру и акценты, высказав своё мнение. Запуск запланирован уже на май!

***

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

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

Обсудить
CORE DWH module for Marketing Analytics is now open sourced and accessible for anyone who might want to try it out.

I have prepared a series of blog posts to cover all the details with explanations and examples.

They will appear in this channel gradually. Stay tuned.
Next generation of marketing analytics

I want to leverage the whole power of cloud services and modern data stack: Azure SQL, dbt, Github Actions, Metabase.

Adapt your analytics in ever-changing business environments as well as maintain transparency and predictability to end users.
This media is not supported in your browser
VIEW IN TELEGRAM
The whole solution consists of several integral parts.

– Cloud ELT service
– CORE DWH module
– Client DWH deployment
– Data access layer

https://kzzzr.github.io/Building-reliable-product-from-the-start/
I want to use the best analytics engineering tool on the market – dbt from Fishtown Analytics.

myBI uses Azure SQL as a backend to store collected data in. It requires additional actions and steps to perform:

1. Use official image from Fishtown Analytics with latest dbt version 0.19.1
2. Install dependencies: MS SQL utilities as well as dbt-sqlserver package
3. Configure dbt to use profiles file (connection strings) in the project root directory

https://kzzzr.github.io/CORE-DWH-building-a-common-foundation/
Back from the weekend with a new small post.
Now describing how to configure data sources for dbt project:
https://kzzzr.github.io/Configuring-data-sources-for-dbt/
28 апреля в 17.00 говорим о моделировании данных для аналитики и dbt.
Готовлю интересную программу и время для ответов на вопросы.
Зарегистрироваться.
DWH staging area serves the following key purposes:

- Pointing to source data tables
- Listing available columns
- Generating surrogate keys
- Simple joins are performed
- Rows are filtered

https://kzzzr.github.io/Populating-DWH-staging-area/
Covering models with schema tests:
– Uniqueness of keys
– Not null constraint
– Foreign keys (relationships test)
– Table not empty

There are precisely 335 tests for 56 models which stands for around 600% test coverage.
https://kzzzr.github.io/Covering-models-with-schema-tests/
Слайды с моего сегодняшнего доклада на конференции Power BI Russia

Ключевые тезисы:

– Шаг моделирования данных – необходимость, а не роскошь
– Power BI – отличный инструмент, но иногда его становится недостаточно
– Power BI ограничен в объеме данных
– Неоптимальные обновления и расчеты
– Поддержка большого количества метрик превращается в испытание
– Одновременная работа над PBIX может сломать отчеты
– Version control для отката и восстановления истории изменений
– Импорт готовых проектов и дашбордов для разных клиентов
– Альтернативный BI – рано или поздно Power BI захочется поменять

https://drive.google.com/file/d/1-w4KyLQHZ-jlZ6cbui-nsUKHK1A4g5GV/view?usp=sharing
Establishing Integration Tests and CI

I find it pretty hard to build on top of the CORE DWH module if it is not stable enough. Testing of the whole module during every patch and PR and before you can use it ensures quality and reliability. That is where Integration tests and CI come essential.

The workflow is defined like this:

1. Triggered on Pull Requests to master branch.
2. Spins up an already familiar MS SQL Server database in a container as a service.
3. Performs several sequential steps: checking out the code, filling source tables from csv files, running models, testing them, cleaning up.
4. Provides context with environment variables (connections details, target database schema name)

https://kzzzr.github.io/Establishing-integration-tests-and-CI/
Now I would like to pin a specific version of code to a tag and release.

Importing this module becomes as simple as this:

packages.yml:
packages:
- git: "https://github.com/kzzzr/mybi-dbt-core.git"
revision: 0.2.0


https://kzzzr.github.io/Releasing-CORE-DWH-version/
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/