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
Привет! Сегодня 15 июля в 20.00 приглашаю на вебинар.

Business Intelligence 101: Развертывание и конфигурирование решения

– Варианты деплоя BI-решения: SaaS, Cloud App, Docker
– Конфигурация: безопасность, метаданные, уведомления
– База метаданных и ее миграция
– Общее устройство BI-решения и его возможности

Смотрим на примерах Metabase (Open Source), Looker.

Ссылка на регистрацию: https://otus.ru/lessons/dwh/#event-1394
Ссылка на youtube-трансляцию будет опубликована здесь за 5 минут до начала.
Вебинар Business Intelligence 101: Развертывание и конфигурирование решения

Слайды: https://docs.google.com/presentation/d/1HEMQ4687hOdqZ47Tqumn6jmvPzKiu3H4VA5xF5R12oY/edit?usp=sharing
Запись: https://youtu.be/3agTJjGhwsI?t=405
В условиях постоянно растущей сложности аналитических инструментов и распределенной команды не просто возможно, но и необходимо повышать скорость поставки (T2M) и качество (Quality) выводимого в продуктив функционала. Фокус сегодняшней публикации – внедрение практик интеграционного тестирования с учетом современного аналитического стека.

С практическими примерами и рекомендациями будут рассмотрены следующие аспекты:

– Специфика аналитических приложений и пространство для DevOps практик
– Рецепт для внедрения Continuous Integration шаг за шагом
– Slim CI: оптимизируем и ускоряем процессы

https://habr.com/ru/company/otus/blog/567916/
В среду 28.07 в 14.00 состоится презентация моей программы Analytics Engineer.

4 месяца интенсивного погружения в самые востребованные и актуальные навыки на стыке миров Data Engineering & Data Analytics.

На вебинаре расскажу про потребность на рынке, содержание программы, отвечу на вопросы.

Ссылка на трансляцию будет здесь за 5-10 минут.
MongoDB – одна из самых популярных документ-ориентированных баз данных класса NoSQL с большим сообществом пользователей. Ее основными преимуществами являются гибкость схемы хранения, иерархическая структура документов, поддержка расширенного набора типов данных. Сегодня MongoDB чаще всего используется как бэкенд веб- и мобильных приложений.

Казалось бы, зачем может потребоваться извлекать схему данных в schemaless database? Однако это может быть крайне полезно и в некоторых ситуациях абсолютно необходимо:

• Репликация данных в аналитическое хранилище

• Интерактивная аналитика из BI-инструментов (SQL)

• Аудит имеющейся структуры БД

В этой публикации я хотел бы показать простой и удобный способ получения схемы хранения данных, даже при наличии сотен коллекций и миллионов документов в MongoDB.

https://habr.com/ru/company/otus/blog/571286/
SQL – это нескучно. С современными инструментами возможности языка кратно возросли. Мультитул для моделирования данных dbt, современные колоночные аналитические СУБД позволяют буквально творить с данными чудеса.

Меня зовут Артемий и я Analytics Engineer в компании Wheely. И сегодня я подготовил небольшой экскурс в реальные и интересные сценарии использования гибридного SQL:

– Операции Pivot и Unpivot для табличных данных
– Генерирование суррогатного ключа и ключа конкатенации
– Гибкая фильтрация записей из таблиц-источников
– Автоматизация экспорта данных из Хранилища в S3
– Валютные курсы, Continuous Integration, Data Quality

https://habr.com/ru/company/otus/blog/572816/
Современные Data Pipelines превратились в commodity наподобие электричества в розетке – они просто должны быть и функционировать, обеспечивая базовые потребности аналитиков и инженеров.

Множество компаний, таких как Fivetran, Hevo, Alooma, сегодня зарабатывают на предоставлении Data Pipelines / Integration как сервис. Наряду с очевидными преимуществами, основными недостатками являются закрытый исходный код и отсутствие возможности быстро добавлять новые коннекторы.

В этой публикации на примере репликации данных открытого счетчика Яндекс.Метрика в объектное хранилище S3 я познакомлю вас с Airbyte – решением с открытым исходным кодом. Это новый стандарт для выстраивания потоков интеграции данных из всевозможных приложений, баз данных и API в аналитические хранилища данных, озера данных.

https://habr.com/ru/company/otus/blog/574704/
Яндекс.Облако не перестает приятно удивлять.
Респект, так держать.

Скоро на канале будут кейсы Маркетинговой аналитики с использованием Я.Облака:
- ELT + Airbyte
- S3 Data Lake (Parquet columnar)
- dbt + Clickhouse
- Dashboarding + Datalens
А вот служба поддержки разочаровывает 🙃
15 дней на ответ совсем не о том.

P.S. пытаюсь поставить clickhouse-jdbc-bridge на управляемую версию CH от Я.Облака, чтобы писать запросы к другим базам из CH. Хитрый замысел.
Подсказка для тех, кто будет подключаться к Managed Yandex.Clickhouse из DBeaver (или любой JDBC):

1. Установить сертификат

mkdir -p ~/.clickhouse-client /usr/local/share/ca-certificates/Yandex && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" -O /usr
/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt && \
wget "https://storage.yandexcloud.net/mdb/clickhouse-client.conf


2. Использовать порт 8443

3. Сконфигурировать ssl в настройках драйвера

ssl : true
sslrootcert : /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt (путь к сертификату)
socket_timeout : 300000 (5 минут таймаут запроса)


Позже напишу про подключение для dbt
Сижу и где-то час втыкаю, не понимая почему упорно не запускается тест на relationships (foreign keys).
Экспериментировал с наличием и порядком параметров теста, с отступами в yaml 🤨

Особенно будет интересно тем, с кем это смотрели на занятии Data Quality в прошлый четверг - у нас тогда не запустился тест.
Зарекся разобраться – разобрался.

Оказывается всё просто:

Тест relationships затрагивает 2 модели. При запуске тестов только на child, либо только на parent тест не запустится.
А вот при запуске на обе модели - да!

dbt test -m flt_orders_arrays # won't trigger
dbt test -m flt_orders_events # won't trigger
dbt test -m flt_orders_arrays flt_orders_events # triggers!

Описание теста (definition):

    - name: flt_orders_arrays
columns:
- name: request_id
tests:
- dbt_utils.relationships_where:
to: ref('flt_orders_events')
field: request_id
from_condition: get_array_length(events) > 0
Data Apps Design
Сижу и где-то час втыкаю, не понимая почему упорно не запускается тест на relationships (foreign keys). Экспериментировал с наличием и порядком параметров теста, с отступами в yaml 🤨 Особенно будет интересно тем, с кем это смотрели на занятии Data Quality…
В данном конкретном случае я хочу проверить что все те события (заказы) с непустым массивом events (событий в заказе) доезжают в нижележащую модель, в которой происходит парсинг этого массива (каждое событие становится отдельной строкой с атрибутами).

Потому что именно сегодня словили грабли с пустыми массивами событий на проде.
Общаюсь с ребятами из Amazon - обратил внимание на ряд проблем.

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

Напишу сюда, как получу ответ.
Также есть еще один баг, связанный с MATERIALIZED VIEW. Подробности будут позже.
Рассматриваем в Wheely апгрейд кластера Redshift и в частности переход на ноды 3-го поколения RA3

Основная фишка этих нод – разделение compute & storage (как в Snowflake)
Потенциально, я вижу следующие плюсы в разделении compute/storage:

- Blue/green deployments (first create new schema, then rename it – swap new version)
- Dedicated sandbox schema for each analyst
- Eliminate disk full errors for heavy caculations (full refresh of seances)

Однако есть вопросы по стоимости и ресурсам нод DC2 vs RA3.
Я составил таблицу, из которой видно что вместо кластера на RA3 выгоднее сорать 10 нод DC2.large и получить 20 CPU (вместо 12 на RA3), 150GM RAM (вместо 96 на RA3).

Задал вопрос в Amazon, возможно они пояснят, чем compute RA3 лучше, и почему такой кластер выходит дороже.
У кого-то есть такой опыт?
Обожаю Looker.
С версии 21.0 по дефолту дашборды строятся в новом стиле.
Однако часть пользователей привыкли к предыдущей (legacy) версии.

Для обратной совместимости фичей заботливо оставлена возможность включить поддержку Legacy Features.
Вернул к предыдущему виду. Сам дашборд не могу показать :)

#looker #bi
Начали пылесосить события Github организации Wheely в наше Хранилище.
Интеграция с помощью Webhook:
– PushEvent
– PullRequestEvent
– ReleaseEvent

Пока отталкиваемся от опыта Gitlab – Centralized Engineering Metrics. Интересные метрики:
– MR Rate
– MRs vs Issues
– MRs by team members

Идея – отслеживать метрики и привязывать цели/OKR разработчиков и команд к этим метрикам.

Буду держать в курсе.

#dwh #pipelines
Here's an easy way to generate comprehensive definition (.yml) of your data sources:

dbt run-operation generate_source --args '{"schema_name": "hevo", "generate_columns": "True", "include_denoscriptions": "True"}' > src.yaml


- get the list of attributes for every source table
- include denoscriptions (docs) to be filled

My goals are to:

- Create a single source of truth unifying source data (backend, marketing, events), data marts (DWH), exposures (dashboards, reports) in one place – dbt Docs
- Provide smooth access to docs website via Google SSO / AWS Cognito to whole company
- Cover source tables with freshness and schema tests
- Enable filling in comments and denoscriptions into predefined structure
- Put docs where the code is (version controlled)

I will use the same generator for all the dbt models.

#docs #pipelines #catalog