Слайды вебинара Slim CI: https://docs.google.com/presentation/d/16i51WEOGE0zRtcrRzZ02J-aky2tCG6bSk4u-WF0thX4/edit?usp=sharing
Запись вебинара: https://youtu.be/yfMWiyKpUkQ?t=371
Пройдите, пожалуйста, опрос о вебинаре: https://forms.gle/takEhrXioSNmAnrN8
Запись вебинара: https://youtu.be/yfMWiyKpUkQ?t=371
Пройдите, пожалуйста, опрос о вебинаре: https://forms.gle/takEhrXioSNmAnrN8
Google Docs
DWH Analyst – Slim Continuous Integration – Интеграционные тесты для Хранилища Данных
1 Онлайн-образование
Привет! Сегодня 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: Развертывание и конфигурирование решения
– Варианты деплоя 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
Слайды: 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/
С практическими примерами и рекомендациями будут рассмотрены следующие аспекты:
– Специфика аналитических приложений и пространство для 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 минут.
4 месяца интенсивного погружения в самые востребованные и актуальные навыки на стыке миров Data Engineering & Data Analytics.
На вебинаре расскажу про потребность на рынке, содержание программы, отвечу на вопросы.
Ссылка на трансляцию будет здесь за 5-10 минут.
Data Apps Design
В среду 28.07 в 14.00 состоится презентация моей программы Analytics Engineer. 4 месяца интенсивного погружения в самые востребованные и актуальные навыки на стыке миров Data Engineering & Data Analytics. На вебинаре расскажу про потребность на рынке, содержание…
Начинаем https://youtu.be/SsCe5b0Tqzc
YouTube
Demo day курса «Data Warehouse Analyst»
«Data Warehouse Analyst» - https://otus.pw/Wa5r/
Преподаватель: Артемий Козырь - Analytics Engineer в Wheely
Подключайтесь к обсуждению в чате - https://otus.pw/ljH75/
Следите за новостями проекта:
- Facebook: https://otus.pw/3hO2
- Telegram: https://news.1rj.ru/str/Otusjava…
Преподаватель: Артемий Козырь - Analytics Engineer в Wheely
Подключайтесь к обсуждению в чате - https://otus.pw/ljH75/
Следите за новостями проекта:
- Facebook: https://otus.pw/3hO2
- Telegram: https://news.1rj.ru/str/Otusjava…
MongoDB – одна из самых популярных документ-ориентированных баз данных класса NoSQL с большим сообществом пользователей. Ее основными преимуществами являются гибкость схемы хранения, иерархическая структура документов, поддержка расширенного набора типов данных. Сегодня MongoDB чаще всего используется как бэкенд веб- и мобильных приложений.
Казалось бы, зачем может потребоваться извлекать схему данных в schemaless database? Однако это может быть крайне полезно и в некоторых ситуациях абсолютно необходимо:
• Репликация данных в аналитическое хранилище
• Интерактивная аналитика из BI-инструментов (SQL)
• Аудит имеющейся структуры БД
В этой публикации я хотел бы показать простой и удобный способ получения схемы хранения данных, даже при наличии сотен коллекций и миллионов документов в MongoDB.
https://habr.com/ru/company/otus/blog/571286/
Казалось бы, зачем может потребоваться извлекать схему данных в schemaless database? Однако это может быть крайне полезно и в некоторых ситуациях абсолютно необходимо:
• Репликация данных в аналитическое хранилище
• Интерактивная аналитика из BI-инструментов (SQL)
• Аудит имеющейся структуры БД
В этой публикации я хотел бы показать простой и удобный способ получения схемы хранения данных, даже при наличии сотен коллекций и миллионов документов в MongoDB.
https://habr.com/ru/company/otus/blog/571286/
Хабр
Формируем реляционную модель из schemaless базы данных MongoDB
MongoDB – одна из самых популярных документ-ориентированных баз данных класса NoSQL с большим сообществом пользователей. Ее основными преимуществами являются гибкость схемы хранения, иерархическая...
SQL – это нескучно. С современными инструментами возможности языка кратно возросли. Мультитул для моделирования данных dbt, современные колоночные аналитические СУБД позволяют буквально творить с данными чудеса.
Меня зовут Артемий и я Analytics Engineer в компании Wheely. И сегодня я подготовил небольшой экскурс в реальные и интересные сценарии использования гибридного SQL:
– Операции Pivot и Unpivot для табличных данных
– Генерирование суррогатного ключа и ключа конкатенации
– Гибкая фильтрация записей из таблиц-источников
– Автоматизация экспорта данных из Хранилища в S3
– Валютные курсы, Continuous Integration, Data Quality
https://habr.com/ru/company/otus/blog/572816/
Меня зовут Артемий и я Analytics Engineer в компании Wheely. И сегодня я подготовил небольшой экскурс в реальные и интересные сценарии использования гибридного SQL:
– Операции Pivot и Unpivot для табличных данных
– Генерирование суррогатного ключа и ключа конкатенации
– Гибкая фильтрация записей из таблиц-источников
– Автоматизация экспорта данных из Хранилища в S3
– Валютные курсы, Continuous Integration, Data Quality
https://habr.com/ru/company/otus/blog/572816/
Хабр
SQL на стероидах – 5 кейсов использования dbt + Jinja
SQL – это нескучно. С современными инструментами возможности языка кратно возросли. Мультитул для моделирования данных dbt, современные колоночные аналитические СУБД позволяют буквально творить с...
Современные Data Pipelines превратились в commodity наподобие электричества в розетке – они просто должны быть и функционировать, обеспечивая базовые потребности аналитиков и инженеров.
Множество компаний, таких как Fivetran, Hevo, Alooma, сегодня зарабатывают на предоставлении Data Pipelines / Integration как сервис. Наряду с очевидными преимуществами, основными недостатками являются закрытый исходный код и отсутствие возможности быстро добавлять новые коннекторы.
В этой публикации на примере репликации данных открытого счетчика Яндекс.Метрика в объектное хранилище S3 я познакомлю вас с Airbyte – решением с открытым исходным кодом. Это новый стандарт для выстраивания потоков интеграции данных из всевозможных приложений, баз данных и API в аналитические хранилища данных, озера данных.
https://habr.com/ru/company/otus/blog/574704/
Множество компаний, таких как Fivetran, Hevo, Alooma, сегодня зарабатывают на предоставлении Data Pipelines / Integration как сервис. Наряду с очевидными преимуществами, основными недостатками являются закрытый исходный код и отсутствие возможности быстро добавлять новые коннекторы.
В этой публикации на примере репликации данных открытого счетчика Яндекс.Метрика в объектное хранилище S3 я познакомлю вас с Airbyte – решением с открытым исходным кодом. Это новый стандарт для выстраивания потоков интеграции данных из всевозможных приложений, баз данных и API в аналитические хранилища данных, озера данных.
https://habr.com/ru/company/otus/blog/574704/
А вот служба поддержки разочаровывает 🙃
15 дней на ответ совсем не о том.
P.S. пытаюсь поставить clickhouse-jdbc-bridge на управляемую версию CH от Я.Облака, чтобы писать запросы к другим базам из CH. Хитрый замысел.
15 дней на ответ совсем не о том.
P.S. пытаюсь поставить clickhouse-jdbc-bridge на управляемую версию CH от Я.Облака, чтобы писать запросы к другим базам из CH. Хитрый замысел.
Подсказка для тех, кто будет подключаться к Managed Yandex.Clickhouse из DBeaver (или любой JDBC):
1. Установить сертификат
2. Использовать порт 8443
3. Сконфигурировать ssl в настройках драйвера
Позже напишу про подключение для dbt
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 тест не запустится.
А вот при запуске на обе модели - да!
Экспериментировал с наличием и порядком параметров теста, с отступами в yaml 🤨
Особенно будет интересно тем, с кем это смотрели на занятии Data Quality в прошлый четверг - у нас тогда не запустился тест.
Зарекся разобраться – разобрался.
Оказывается всё просто:
Тест relationships затрагивает 2 модели. При запуске тестов только на child, либо только на parent тест не запустится.
А вот при запуске на обе модели - да!
dbt test -m flt_orders_arrays # won't triggerОписание теста (definition):
dbt test -m flt_orders_events # won't trigger
dbt test -m flt_orders_arrays flt_orders_events # triggers!
- 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. Подробности будут позже.
Наш кластер 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 лучше, и почему такой кластер выходит дороже.
У кого-то есть такой опыт?
Основная фишка этих нод – разделение 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
С версии 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
Интеграция с помощью 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:
- 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
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