Data Apps Design
1.53K 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
Что делать если в СУБД отсутствуют необходимые функции и преобразования?

🔸Использовать 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 | Навигация по каналу
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👏1
Абсолютно неинформативный лог при ошибке в Amazon Redshift + Lambda UDF

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

#udf #lambda #h3 #redshift