TGViewer
Channel Public Channel
Data Apps Design

Data Apps Design

@data_apps

В этом блоге я публикую свои выводы и мнения на работу в Data:

— Data Integration
— Database engines
— Data Modeling
— Business Intelligence
— Semantic Layer
— DataOps and DevOps
— Orchestrating jobs & DAGs
— Business Impact and Value
Subscribers
2.08K
Photos
143
Videos
2
Links
237

Showing posts older than #290 · Back to latest

Older Posts 15 shown
Post #289 815
Data Apps Design Абсолютно неинформативный лог при ошибке в Amazon Redshift + Lambda UDF Затруднительно выяснять реальную причину проблемы. Особенно если при ручном запуске на порции данных ошибки нет. #udf #lambda #h3 #redshift
Эту проблему удалось решить, уменьшив количество строк, обрабатываемых в одном пакете (обращении к Lambda).

Проблема означала, что превышен размер ответа от Lambda Function. Чем больше строк на вход - тем больше ответ.

Решение: обрабатывать мЕньшими батчами. MAX_BATCH_ROWS 800
Подробнее о конфигурации функций в Redshift по ссылке.
  • ❤ 1
Post #288 705
Абсолютно неинформативный лог при ошибке в Amazon Redshift + Lambda UDF

Затруднительно выяснять реальную причину проблемы. Особенно если при ручном запуске на порции данных ошибки нет.

#udf #lambda #h3 #redshift
Post #282 700
H3 geospatial indexing system - почему это интересно для пользователей?

#h3
  • ⚡ 3
Post #281 583
❓ Что делать если в СУБД отсутствуют необходимые функции и преобразования?

🔸Использовать User Defined functions или External functions (они же Lambda functions).

Мой кейс - это работа с гео-индексами H3 (не поддерживается в Amazon Redshift):

— Агрегация точек в шестигранники-гексагоны
— Обезличивание данных при сохранении полезности
— Работа с разным масштабом гексагонов (детально - обобщенно)
— Построение тепловых карт (Heatmaps)

🔸Как это делается в двух словах?

— Создаем Lambda функцию - это почти unlimited возможности на любых языках программирования
— Регистрируем функцию в SQL: CREATE EXTERAL FUNCTION lambda_udf AS ...
— Убеждаемся что всё корректно: конфигурация function, аргументы и типы данных, выделяемые ресурсы, таймауты и т.д.
— Тестируем функцию: input - output, вызываем в SQL SELECT lambda_udf(a, b) as result
— Мониторинг: следим за потреблением ресурсов и производительностью

🔸В чем могут быть проблемы?

— +1 точка отказа
— Сообщения об ошибках в СУБД неинформативны
— В логах Lambda сложно что-то понять
— AWS: not enough capacity in your Region
— Дикий debug, когда ошибка возникает на какой-то из 10М строк и неизвестно на какой

🔸Что с этим делать?

Моё мнение такое:

— Использовать те СУБД, которые обладают требуемыми функциональными возможностями
— По возможности избегать Lambda и UDF
— Если возможности нет - писать ПРОСТЫЕ функции: 1 задача, 1 действие, 1 результат

Это одна из причин, по которой я рассматриваю использование Snowflake. Там работа с H3 поддерживается из коробки.

#database #modeling #udf #lambda #h3 #redshift #snowflake

🌐 @data_apps | Навигация по каналу
  • 👍 4
  • 👏 1
Post #280 696
❄️ Snowflake - перспективный лидер, и я ищу подводные камни

Сейчас в процессе тестирования СУБД Snowflake на замену Amazon Redshift

Пока выполнено:

— Сделал и загрузил дамп данных: Redshift -> S3 (Parquet) -> Snowflake. Для этого написал макрос.
— Собрал dev container для работы с dbt
— Настроил работу внешних таблиц: EXTERNAL STAGES
— Внёс все изменения по синтаксису, чтобы отработал слой моделей staging.*

Возникают сложности с:

— Регистр колонок и Reserved words в названиях колонок
— Работа с JSON Flattening. Синтаксис отличается от Redshift
— Работа с внешними таблицами (STAGES, EXTERNAL TABLES) устроена чуть по-другому

Потенциальные проблемные места:

— Конечно, Costs. Используются разные VIRTUAL WAREHOUSES для разных типов нагрузок: EL, T, BI, reverse ETL
— Чтение 1К+ файлов из S3 очень медленно. 5 минут чтобы прочесть JSON-файлы с курсами валют на каждые 4 часа (±2 года истории)

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

#database #modeling #snowflake

🌐 @data_apps | Навигация по каналу
  • 👍 10
Post #279 649
Post #278 611
😎 Уже более полугода использую Census App для задач reverse ETL

Сегодня получил письмо касательно интеграции синков данных с dbtCloud jobs и уже выполнил все рекомендации.

As part of working with dbt Labs to improve dbt Cloud triggers, we have been migrating to webhook-based integration which requires different dbt Cloud permissions.

Legacy dbt Cloud Triggers will be disabled in two weeks on August 14th, 2023.

To upgrade, the Service Token provided to Census requires at least the developer permission (for Enterprise) or Member permission (for Team) in order to configure new webhooks. You can then provide the new Service Token in your Organization Settings. For more information, see our documentation.

Хочется еще раз резюмировать опыт использования инструмента:

— 15+ sources = источников данных (все популярные движки DWH)
— 130+ destinations = приемников данных = операционных систем
— Моделирование наборов данных: SQL query, dbt models, Looker Looks
— Audience hub = Создание сегментов
— Автоматических маппинг атрибутов - очень удобно при использовании 10+ полей
— Data Sync: расписание, dbtCloud integration (после завершения dbt build), API calls, Sequence (DAGs)
— Если вы передаете до 50 атрибутов, то использование сервиса не будет стоить ничего!

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

#reverse_etl

🌐 @data_apps | Навигация по каналу
Getcensus Overview | Census Docs
  • 👍 4
  • ❤ 1
Post #277 1.04K
Слайды моего доклада с [dbt meetup]:

🔸 Оркестрация dbt jobs для Dev, Test, Prod без головной боли

— Сформулируем требования
— Что нужно для запуска dbt jobs?
— Какие бывают Environments
— Критерии выбора решения для запусков
— Обзор решений: devcontainer, dbtCloud, Github Actions, Gitlab CI, Airflow / Prefect / Dagster, Argo Workflows
— Матрица оценок по критериям
— Выводы: что, в каких случаях и почему лучше использовать

Доступны гиперссылки и .gif-анимация.

Задавайте вопросы, если появятся.

#meetup

🌐 @data_apps | Навигация по каналу
Google Docs [dbt meetup] 2023-07-20 Оркестрация dbt jobs для Dev, Test, Prod без головной боли
  • 👍 9
  • ❤‍🔥 2
Post #276 679
  • 👍 1
Post #275 718
Data Apps Design ⚡️Online dbt meetup ⚡️ Салют! Всех, кто интересуется dbt и анализом данных приглашаю на митап. Вас ждут 8 интересных докладов за 2 дня! Я буду модератором-ведущим в первый день и расскажу об Оркестрации dbt jobs для Dev, Test, Prod без головной боли → Подробности…
⚡️Старт трансляции через 45 минут

У меня много интересного, всех жду

https://www.youtube.com/live/RTjHlmyq3_E
Youtube - YouTube Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
  • 🔥 2
Post #274 654
After:
  • ❤ 3
Post #273 677
🔸 Что в результате? Красивый и гибкий подход Dashboard as Code

Значительно улучшает опыт работы с дашбордом как для аналитиков, так и пользователей

— Полностью избавился от слоя предварительной материализации (dbt model) = сверхбыстрый T2M
— Теперь подсчитываем метрики на лету из таблиц детального слоя = корректность отчетов
— Дашборд реализован на 100% в виде LookML кода и версионируется в git = надежность
— Изменения и редактирование элементов выполняется теперь за минуты = поддерживаемость

Моя работа заняла несколько месяцев, и еще кое-что остается.

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

🌐 @data_apps | Навигация по каналу
Telegram Data Apps Design 🟡 Дайджест самых интересных публикаций по темам: Data Integration — ▶ Успешный SaaS на рынке Аналитики – cтановление и планы развития / Алексей Сидоров из mybi connect — 👨‍💻 Сказ о том как я realtime replication чинил (Kafka + Debezium + Clickhouse) —…
  • 🔥 38
  • ❤‍🔥 4
  • 👍 4
Post #272 588
Before:
Post #271 639
🚀 Ключевые метрики компании на дашборде - путь от hardcoded cube к live calculated measures

Сейчас финализирую работу по рефакторингу дашборда в Looker

🔸 WBR (Weekly Business Review) - самый главный дашборд компании

— WBR существует уже 3+ года и всё это время активно дорабатывался
— На дашборде 45+ метрик со сравнением динамики и целевых показателей
— 20K+ просмотров, 10+ аналитиков-разработчиков-контрибуторов, 50+ людей использующих дашборд

🔸 Зачем? dbt-модель WBR превратилась в неподдерживаемое полотно кода без намека на гибкость

— Огромный порог входа для того чтобы внести малейшие изменения или добавить график с новой метрикой
— Т.к. код монолит, то любая маленькая ошибка приводит к тому, что не подсчитаны все метрики
— Затратный процесс расчета модели (время + ресурсы)
— Хардкод в плане доступных измерений и фильтров (кроме них ничего нет)

🌐 @data_apps | Навигация по каналу
  • ❤‍🔥 3
  • 👍 1
Post #270 833
⚡️Online dbt meetup ⚡️

Салют! Всех, кто интересуется dbt и анализом данных приглашаю на митап.

Вас ждут 8 интересных докладов за 2 дня!
Я буду модератором-ведущим в первый день и расскажу об Оркестрации dbt jobs для Dev, Test, Prod без головной боли

→ Подробности о докладах и регистрация на митап

🌐 @data_apps | Навигация по каналу
  • 🔥 14
  • 👍 3
  • ❤‍🔥 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →