Наш вебинар, посвященный взаимодействию между Spark и Greenplum, прошел уже 2 недели назад. Но его запись останется с вами навечно! По крайней мере, пока не отключат всё электричество на планете.
? Посмотреть запись можно по ссылке: https://youtu.be/zIYUKB5960w

Data Engineering *
Обсуждаем вопросы сбора и подготовки данных
Привет! Меня зовут Ильдар Ломов. Расскажу, чем занимаются ML-инженеры в Островке. Знаю об этом всё, я сам руководитель команды Data Science.

Сейчас портфель ML-проектов Островка —12 штук в нескольких направлениях: от продуктового ML (ранжирование, рекомендации), до больших языковых моделей.
Состав команды стандартный: ML-инженер, бизнес-аналитик, проджект, продакт. Опционально тимлиды и разработчики.
Работа ML-инженера в Островке — посередине между стартапом с его моделью в jupyter-ноутбуке и корпорацией, где работа с сотнями моделей упорядочена, стандартизирована, вшита в интерфейсы. Можно поработать над серьезным проектом гибко с разнообразием инструментов.
Идеал — проактивный человек, который протащит проект от исследования до прода и покрытия метриками. Важно понимать все этапы проекта, иметь усиленный скилл хотя бы на одном из них, с остальным поможет команда.
Нужно уметь покрывать метриками, следить за проектом на проде, чтобы тот не потерял смысл из-за нестыковок в ТЗ. И работал так, как задумано.
Частые итерации, проверки гипотез и новых технологий дают нашему ML-инженеру больший кругозор в сравнении с крупными компаниями. Специалист растет с технической и бизнесовой сторон.
Работа оценивается с точки зрения влияния на бизнес, инженер видит, как проекты прямо и понятно воздействуют на бизнес-метрики.
Это то, что мы всегда хотим видеть в кандидатах, но на рынке такого не много. Чем виднее на собеседованиях, что человек понимает бизнес-сторону, тем больше он нам подходит.
16 мая в 11:00 МСК приглашаем на вебинар «Spark-Greenplum Connector: философия взаимодействия».
На вебинаре мы разберем best practices по работе с распределенно-параллельными системами обмена данных. На примере нашей разработки Spark-Greenplum Connector расскажем, как создать собственное расширение для обмена данными между Apache Spark и внешними системами. И как правильно использовать специальный набор интерфейсов, которые коннектор должен реализовать для взаимодействия с ядром Spark.
???Спикер вебинара:
Алексей Пономаревский, ведущий администратор баз данных в ITSumma
В программе:
? Что подтолкнуло нас к созданию своего собственного коннектора Spark к СУБД Greenplum.
? С какими вызовами мы столкнулись при написании коннектора и как их решили.
? Цифры и результаты: что у нас получилось в итоге.
? Дальнейшие планы и перспективы разработки.
Вебинар будет интересен администраторам баз данных, DataOps-инженерам и всем специалистам, работающим с построением ETL-процессов, хранением и обработкой больших объемов данных.
??Регистрация на вебинар доступна по ссылке зашитой в это предложение??

Дайджест материалов Магнус
Самой короткой рабочей неделе в году — самый короткий материал! Делимся подборкой статей за последние три месяца.
Что может быть важнее данных? То, как они хранятся, используются и воспроизводятся. Эти и другие возможности есть в инструменте ClearML: рассказываем о работе с ним.
Высококачественные данные — это «топливо» для моделей глубокого обучения. Рассказали в этом материале, с помощью чего можно улучшить качество данных.
Предсказывать цены могут не только крупные ритейлеры, но и розничные офлайн-магазины. Как? Рассказали здесь.
Как тимлиду ML-команды выстроить качественные продуктивные отношения с коллегами? Узнали у senior-разработчика, советы собрали тут.
Как учиться, чтобы время и усилия были слиты не зря? Подготовили 10 советов для тех, кто хочет получить от курсов всё.
Получили интересное мнение из первых рук: Роман Резников, senior-разработчик и DL-engineer, рассказал про промт-инжиниринг в работе и личной жизни.
С чего начать управление метаданными в облаке?
Конвейеры данных — тренд, уже обросший подходами вроде Data Mesh или Data Streaming. Метаданные в них играют особую роль: повышают качество и доступность данных, например, при поиске. Но вне зависимости от подхода, в работе с метаданными важно учесть два запроса: прозрачность/демократизация данных и безопасность.
Для управления этим балансом в Yandex Cloud появился MetaData Hub — сервис для работы с метаданными. Он позволяет реализовать в облаке популярные сценарии:
Безопасное подключение к БД. Для защиты подключения важно позаботиться о хранении секретов и настройке прав доступа.
С этим помогает Connection Manager: пользователи могут делиться подключением к СУБД по ссылке, без необходимости вручную указывать логины и пароли. Все секреты хранятся в секретнице Yandex Lockbox. А управление доступами реализовано на основе RBAC и обеспечивает гранулярность прав.

Гибридная инфраструктура. В сложных сценариях клиенты могут создавать подключения из облака к сторонней базе, например, on premise, — но в этом случае вопрос безопасности ложится на администратора базы. Облегчить настройку доступа к такой БД также можно через Connection Manager, создав on‑premise‑подключение.
В ближайшее время пользователям MetaData Hub будут доступны функции Schema Registry для упрощения структурирования и управления схемами данных, а также Data Catalog — для описания данных и зависимостей между ними. Сервис бесплатен и находится в стадии Preview.
Когда строишь потоки обработки в Apache Nifi в основном требуется результат записать в базу данных. Бывают случаи, когда запись в целевую таблицу не проходит по причине несоответствия данных в записи и полей в таблице. Это возникает в случае, если на источнике размер поля увеличился, либо изменился порядок знаков после занятой, либо вы ожидаете "uniqueidentifier" а приходит пустая строка.
Ситуаций много, а решение обычно одно - локализовать ошибку, найти поле, которое не соответствует S2T, внести корректировки в таблицы, либо дополнить трасформации. В случае, если полей в записи две три, понять причину не сложно. Когда же их много приходится тратить время на разбор записи по отдельным полям и проверку каждого потенциального источника ошибки.
Для этого предлагаю скрипт для ScriptedTransformRecord, позволяющий разобрать запись на массив записей, каждая из которых содержит только одно значение, остальные проставляются "null".
results = []
fields = record.getRawFieldNames()
schema = record.getSchema()
fields.each{key -> {
log.debug("Got key: ${key}")
nMap = new java.util.HashMap<String, Object>()
log.debug("create map")
nMap.put(key,record.getValue(key))
log.debug("Put to map value")
newrecord = new org.apache.nifi.serialization.record.MapRecord(schema, nMap)
log.debug("Сreate new record with field ${key}")
results.add(newrecord)
}}
resultsПолезные ссылки:
Хабр, привет!
Хотим напомнить, что сегодня в 11:00 МСК у нас пройдет вебинар «Управление базами данных в Greenplum: мониторинг и удаление мусора». Расскажем, как правильно собирать и удалять мусор в реляционных СУБД вообще и в Greenplum в частности.
?? Спикеры:
Алексей Пономаревский, ведущий администратор БД ITSumma
Иван Хозяинов, руководитель направления больших данных ITSumma
? О чём:
Вакуумирование данных и для чего оно нужно
Инструменты и специфика вакуумирования в Greenplum
Мониторинг раздутых таблиц и стратегии вакуумирования
Решения и практики, которые минимизируют возможные проблемы
Регистрация: https://clck.ru/38NWH7
Переварил и делюсь ключевыми идеями Tristan Handy (CEO dbtLabs) о новом опыте работы с dbt
(выпуск My first week with the new dbt, рассылка Analytics Engineering Roundup)
Старт разработки без головной боли
Это замечательно и то, что нужно. Фокус аналитика - на создании аналитических приложений, а не на борьбу с зависимостями, version upgrades и поиск error codes на stackoverflow. Чем больше чистого времени у аналитика, тем больше результатов можно получить.
Я уже давно использую devcontainers и даже писал об этом для тех же целей - это бесплатно и не требует иметь лицензию dbtCloud.
Auto-deferral
Я давно использую defer в рамках CI tests (= прогон и тесты только изменяемых graph nodes). Теперь, в рамках dev это ускоряет процессы разрабтки на порядок.
Жаль, что удобно использовать это можно пока только в dbtCloud.
Из связанного, на ум сразу приходит фича Snowflake zero-copy clone.
Data Mesh
Коротко, это про то, чтобы DWH разделить на зоны ответственности и дать командам развивать интересующие их области самостоятельно, по их правилам.
Называйте это Microservices в Data.
Задействованы и технические аспекты (как это реализовать) и организационные (кто владеет ownership).
Это скорее релевантно крупным компаниям, в которых как минимум несколько отделов-ветвей заинтересованы в data services, у них есть свои ресурсы на разработку и устоявшиеся правила. По моим оценкам, доля таких компаний среди пользователей dbt пока не очень велика. Но это тренд!
❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_10
?Вопрос_10: Что такок Tarantool и как он устроен ? (Часть_2)
Replication: Tarantool предлагает механизм репликации, который позволяет создавать реплики базы данных для обеспечения отказоустойчивости и масштабируемости. Репликация Tarantool основана на механизме репликации мастер-слейв (master-slave) и поддерживает асинхронное и синхронное реплицирование.
Sharding: Tarantool поддерживает горизонтальное масштабирование с помощью шардинга данных. Шардинг позволяет распределить данные по нескольким узлам-серверам, что позволяет обрабатывать большие объемы данных и повышает производительность.
Индексы: Tarantool предоставляет различные типы индексов для оптимизации запросов и обеспечения быстрого доступа к данным. Включая хеш-индексы, деревья и индексы, основанные на отсортированных списках.
t.me/DenoiseLAB (Еесли вы хотите быть в курсе всех последних новостей и знаний в области анализа данных);
❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_3
?Вопрос_3: Что такое преобразование Бокса-Кокса?
Преобразование Бокса-Кокса (Box-Cox transformation) - это преобразование, которое преобразует "ненормальные" зависимые переменные в нормальные переменные, так как нормальность является наиболее распространенным предположением при использовании многих статистических методов. Оно было предложено Георгом Боксом и Дэвидом Коксом в 1964 году.

Оно имеет параметр лямбда, который при значении "0" означает, что это преобразование эквивалентно лог-трансформации. Оно используется для стабилизации дисперсии, а также для нормализации распределения. Выбор оптимального значения параметра (лямбда) при использовании преобразования Бокса-Кокса может быть выполнен с использованием различных методов:
Метод максимального правдоподобия: В этом подходе подбирается значение (лямбда), которое максимизирует правдоподобие модели. Это можно сделать с помощью численных методов оптимизации, таких как метод Ньютона-Рафсона или метод Брента;
Критерии информационного критерия: можно использовать информационные критерии, такие как критерий Акаике (AIC) или критерий Шварца (BIC);
Кросс-валидация: При этом данные разбиваются на обучающую и проверочную выборки, и производится оценка преобразования Бокса-Кокса для различных значений (лямбда) на обучающей выборке. Затем оцениваются результаты на проверочной выборке и выбирается лучшее значение.
https://t.me/DenoiseLAB
❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_2
?Вопрос_2: Объясните, что такое One-hot encoding и Label Encoding. Как они влияют на размерность заданного набора данных ?
✔️Ответ:
One-hot encoding - это представление категориальных переменных в виде двоичных векторов, при котором каждая уникальная категория переменной преобразуется в новый бинарный столбец, называемый "фиктивной переменной". В этом новом столбце значение 1 указывает на принадлежность к соответствующей категории, а значение 0 - на принадлежность к другим категориям. Таким образом, каждая уникальная категория представлена отдельным столбцом. Это позволяет алгоритмам машинного обучения интерпретировать категориальные значения и использовать их в расчетах. Не создает ложного упорядочения или отношения между значениями категориальных переменных и помогает избежать проблемы ложной корреляции между категориями переменных. Однако, использование one-hot encoding увеличивает размерность набора данных ("проклятие размерности").
Label Encoding - это процесс преобразования каждого значения категориальной переменной в целочисленный код. Каждой уникальной категории присваивается уникальное число. Label Encoding не добавляет новые столбцы к набору данных и не увеличивает размерность. Однако, важно понимать, что числовые значения, присвоенные категориям, могут создать ложное упорядочение или отношение между ними.
#work #coding #testing #optimization #ml #learning
Телеграмм: https://t.me/DenoiseLAB
❓100 Вопросов по Машинному обучению (Machine Learning) - Вопрос_1
?Вопрос_1: Чем ковариация и корреляция отличаются друг от друга?
✔️Ответ:
Ковариация и корреляция - это два статистических показателя, которые используются для определения связи между двумя случайными величинами.
Ковариация измеряет степень, в которой две переменные меняются вместе, тогда как корреляция измеряет не только степень, но и направление отношения между двумя переменными.
Ковариация подразумевает, что две величины меняются в одном направлении: если одна увеличивается, то вторая тоже увеличивается, или если одна уменьшается, то другая тоже уменьшается. Однако, ковариация не учитывает, насколько сильно или слабо эти переменные меняются.
Корреляция, с другой стороны, учитывает не только направление, но и силу отношения между двумя переменными. Коэффициент корреляции может принимать значения от -1 до 1. Значение +1 для корреляции означает, что две переменные имеют прямую связь и полностью коррелируют. Значение -1 для корреляции означает, что две переменные находятся в обратной пропорциональной связи. Значение 0 для корреляции означает, что между двумя переменными нет связи.
#work #coding #testing #optimization #ml #learning
Телеграмм: https://t.me/DenoiseLAB
Online dbt meetup - нас больше и доклады всё интереснее

Привет. Рады сообщить, что наконец мы набрались сил и докладов и готовы поделиться ими с вами :)
Митапы пройдут 20 июля в 19:00 (GMT+3) и 27 июля в 19:00 (GMT+3).
Программа 20 июля, 19:00:
Оркестрация dbt jobs для Dev, Test, Prod без головной боли – Артемий Козырь, Analytics Engineer at Wheely
Modern Data Stack, а стоит ли игра свеч? – Nik B, ex-Senior Data Engineer at NabuMinds
Описание метрик в dbt – Венера Насырова, BI Analyst at Space307
CI/CD и оркестрация онпрем когда адаптеров много – Станислав Лысиков, Data Platform Engineer at Space307
Программа 27 июля, 19:00:
DataVault в GreenPlum на основе автоматизированного создания dbt-моделей – Дмитрий Тирских, Data Engineer at X5 Digital
Любовь и восторг: как мигрировать 40+ DS/PA на dbt – Алмаз, Data Engineer at Picsart
Автоматическое создание exposures в dbt – Кирилл Романихин, Data Engineer at Space307
Автоматизация вокруг dbt (чего не хватает в коробке) – Станислав Лысиков, Data Platform Engineer at Space307
Подробности о докладах и регистрация на митапы по ссылке: https://cutt.ly/bwi8covj
Важно! На каждый митап нужно регистрироваться отдельно.
Ближайшие события
Вклад авторов
s_valuev 234.0paramonov_ruvds 206.0kzzzr 176.3castos 166.0Doctor_IT 166.0IlyaRice 162.0skillfactory_school 153.8badcasedaily1 137.0fivelife 131.0