Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или
подписчиков
Проверить канал на накрутку
Телеграм канал «Дата Инженер Лаб | Артём Подвальный»
Дата Инженер Лаб | Артём Подвальный
123
0
20
2
46
Канал про обзор инструментов и методов Data Engineering и Data Science. По вопросам, предложениям, менторству писать telemetr.me/ampodvalniy https://dataengineers.pro/mentors/artyompodvalny
Сейчас сам прохожу собеседования в зарубежные компании, изучаю рынок валютной удалёнки🧑💻Snowflake регулярно встречается в требованиях, поэтому расскажу, как она устроена и что в ней делает DE
❄️Snowflake — облачная платформа для хранения и обработки данных. В ней можно загружать данные, писать SQL, собирать витрины и подключать BI. Она работает поверх AWS, Azure или Google Cloud, а обслуживание инфраструктуры берёт на себя.
Мне кажется, её проще понять через разделение хранения и вычислений. Данные лежат отдельно, а запросы выполняют вычислительные кластеры — Virtual Warehouses. Один можно выделить под загрузки и преобразования, другой — под аналитиков. Они используют общие данные, но не конкурируют за одни вычислительные мощности.
⌨️Обычная задача выглядит так. Файлы с заказами поступают в S3, Snowpipe загружает их в исходные таблицы Snowflake. Дальше через SQL очищаем данные, объединяем со справочниками и рассчитываем показатели для отчётов🤩
Для автоматического обновления результата есть Dynamic Tables. Описываешь SQL-запрос и желаемую свежесть данных, а платформа планирует обновления. При этом свежесть всё равно нужно контролировать: настройка сама по себе не гарантирует, что обработка успеет вовремя.
Работы у дата-инженера здесь хватает: спроектировать таблицы, настроить загрузку, проверить качество, разобраться с дублями и ускорить запросы 👨💻Плюс следить за расходами — размер кластера и частота пересчётов влияют на стоимость.
Почитать дополнительно:
❄️Обзор первого эластичного хранилища
Если тоже рассматриваешь валютную удалёнку — пиши @ampodvalniy, разберём твою подготовку на первом бесплатном созвоне 🤝
Apache NiFi: как собирать потоки данных из готовых блоков ⚙️
В дата-инженерии много задач, где нужно регулярно забирать данные из одной системы, немного обрабатывать и отправлять в другую. Например, читать сообщения из Kafka, проверять структуру и сохранять в S3.
Apache NiFi 💦позволяет собрать такой поток в веб-интерфейсе. Добавляешь готовые блоки, настраиваешь подключения и соединяешь шаги между собой. Для типовых операций не приходится писать отдельный скрипт.
⚙️Как это устроено:
🔹Processor выполняет конкретное действие: читает данные, проверяет поля, меняет формат или записывает результат. У каждого блока свои настройки и варианты выхода — например, успешная обработка и ошибка.
🔹FlowFile — данные вместе с атрибутами: откуда пришли, какое имя файла, когда загружены. Это может быть файл, сообщение или целая пачка записей.
🔹Очереди соединяют процессоры. Если следующий шаг не успевает обрабатывать данные, они накапливаются в очереди. Можно задать лимит, при котором предыдущие шаги притормозят. Этот механизм называется back pressure.
🔹Provenance — история обработки FlowFile. Можно посмотреть, откуда пришли данные, через какие шаги прошли и что с ними происходило.
Например, собираем поток➡️:
Kafka → проверка данных → преобразование в Parquet → S3
Корректные данные идут дальше, ошибочные — в отдельную ветку для разбора. В интерфейсе видно, какие шаги работают, где растёт очередь и на каком процессоре возникла ошибка.
🙂Где NiFi полезен?
Когда нужно связать несколько систем, работать с разными форматами и контролировать доставку данных. Он умеет фильтровать, преобразовывать и обогащать данные по пути.
При этом тяжёлые распределённые расчёты обычно выполняют в Spark или Flink. Airflow используют для управления расписанием и зависимостями задач. В одной архитектуре эти инструменты могут работать вместе с NiFi.
Визуальный интерфейс упрощает сборку потока, но повторы, дубликаты и обработку сбоев всё равно нужно продумывать самому.
Data Vault: зачем он нужен, если уже есть звезда и снежинка ?
Допустим, строим отчёт по заказам. В схеме звезда⭐️в центре будет таблица заказов, а вокруг таблицы с клиентами, товарами и датами. В снежинке❄️справочники разбиты подробнее: например, у товара есть отдельные таблицы брендов и категорий. Обе схемы используют для аналитики и отчётов.
Но у большого хранилища 〰️есть ещё одна задача: принимать данные из разных систем и сохранять, что именно пришло, откуда и когда. Для таких корпоративных хранилищ появился Data Vault.
В Data Vault 💦модель строится из трёх частей. Возьмём клиента с номером 123 и заказ 456:
🔹Hub хранит бизнес-ключи: отдельно номер клиента и номер заказа.
🔹Link хранит связь: клиент 123 оформил заказ 456.
🔹Satellite хранит сведения о них и историю изменений: например, адрес клиента или статус заказа, а также время загрузки и источник данных.
Если статус заказа изменился, прежнее значение остаётся в истории. Когда появляется новый источник, его данные можно подключать к этой модели, не перестраивая всё хранилище каждый раз. А для аналитиков поверх Data Vault обычно собирают привычные витрины, ту же звезду.
Такое встречается в крупных DWH, куда данные поступают из множества систем и где важно разбирать их историю и происхождение. Историю можно хранить и без Data Vault💦. Если источников мало и нужны несколько отчётов, дополнительный слой с множеством таблиц может только усложнить работу.
📚Почитать подробнее:
🔹Основы Data Vault
🔹Технология проектирования хранилищ данных Data Vault
🔴Собес на Дата Инженера с нанимающим из Сбера в субботу в 15:00
17 октября (в эту субботу!) в 15:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Дата Инженера.
Как это будет:
📂 Максим Костин, ведущий инженер данных в Сбере, ex-VK проведет собес на дата инженера;
📂 Максим будет задавать реальные вопросы с секций, которые проводил сам и комментировать ответы;
📂 В конце можно будет задать любой вопрос Максиму.
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят сменить работу, повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_de_bot
Выбирать под все задачи «лучшую» модель плохая идея. Сам сейчас сижу на Codex, поэтому буду говорить про его модельки😺
Клод 😒 сейчас рискованно делать основой работы: опять прошла волна банов, а деньги в случае блокировки никто не вернул😢
Обзорчик:
🐶Astra — топ для сложного анализа, архитектуры и планирования. Но по API это $10 за миллион входных и $50 за миллион выходных токенов, самая дорогая.
👩💼GPT-6.1 Sol — мой основной выбор для кода. Это апгрейд обычного Sol: почти уровень Astra в агентном кодинге и профессиональных задачах, но в 5 раз дешевле — $2 вход / $10 выход за миллион токенов.
🐶GPT-6 Sol — брать уже особого смысла нет, если доступен 6.1: это предыдущая версия, а 6.1 сильнее в коде и работе с компьютером при той же цене.
😄Luna — рабочая лошадка для рутины: массовые правки, извлечение данных, выполнение готового плана. Стоит копейки: $0.10 вход / $0.50 выход за миллион токенов — в 100 раз дешевле Astra по входу и в 100 раз по выходу.
То есть схема: Astra пишет план → GPT-6.1 Sol делает сложное → Luna разгребает рутину.
Про лимиты🤑
У Codex и Work общий пул использования: потратили в одном — уменьшилось и в другом. На Plus есть 5-часовое и недельное окно; продолжить можно, только если доступны оба. Перед большой задачей смотрите Settings → Usage.
В октябре OpenAI обновляется очень активно: вышел GPT-6.1 Sol, он уже дефолтный в Codex CLI, добавили Ultrafast-режим и кучу улучшений агента. Часто делает сбросы лимита, что нас на руку)
Pro нужен, только если стабильно упираетесь в лимиты Plus или гоняете долгие агентные сессии. Для обычной разработки Plus сейчас хватает.
Docker для дата инженеров: зачем он нужен и с чем придётся столкнуться в пет-проекте 🐳
Вы наверняка слышали про Docker на работе, в курсах или от коллег. Но когда начинаешь делать пет-проект (поднять Airflow, Kafka, Spark локально), внезапно возникает куча вопросов: почему контейнер не видит базу, куда мапить порты, зачем вообще этот Docker и можно ли без него.
👩💻 Что делает Docker?
Docker упаковывает код, зависимости и конфиги в образ. Из образа запускается контейнер, изолированный процесс, который работает одинаково на любой машине.
Для Data Engineer это значит:
Не нужно вручную ставить Python, Java, библиотеки на хост
Пайплайн работает одинаково на ноутбуке, сервере и в CI
Легко поднять целый стек (Airflow + Kafka + Postgres + Spark) через docker-compose
🔗 Зависимости — это библиотеки, пакеты и системные компоненты, которые нужны вашему коду для работы.
Например, PySpark-пайплайн требует Python 3.11, pyspark==3.5.0, pandas, драйверы JDBC и т.д. Без Docker вы ставите это всё на хост, ловите конфликты версий («проект А требует pandas 1.x, проект Б — 2.x»). Docker решает проблему: каждый образ содержит свой набор зависимостей, изолированный от других.
🏘 С чем столкнетесь в пет-проекте
📍Порты. Контейнер работает в своей сети. Чтобы обратиться к сервису извне, нужно пробросить порт: -p 5432:5432 (хост:контейнер). Без этого Postgres внутри контейнера не достучаться с хоста.
📍Сети. Контейнеры общаются по именам сервисов внутри Docker-сети. Spark подключится к Kafka как kafka:29092, а не localhost:9092.
📍Тома (volumes). Данные в контейнере исчезают после его удаления. Для баз и Data Lake нужны volumes.
📍Зависимости и версии. Образ с latest может сломаться после обновления.
📍Фиксируйте версии:
postgres:15,
pyspark==3.5.0.
А что на работе 💻
В биг техах и крупных компаниях инфраструктурой занимаются отдельные команды (Platform, DevOps).
Вы будете писать код, а пайплайны запускать в готовых окружениях (Kubernetes, managed Airflow, облачные сервисы). С Docker напрямую взаимодействовать придётся редко.
В небольших компаниях или стартапах скорее всего, будете сами поднимать стек через docker-compose и собирать образы для деплоя.
📚База, которую стоит знать:
▪️Как собрать образ (Dockerfile)
▪️Как запустить стек (docker-compose up)
▪️Как пробросить порты и настроить volumes
▪️Как посмотреть логи
🤩 Почитать на досуге:
🐳 Docker для начинающих: основы, команды, образы и контейнеры
Ставьте 🔥, если было полезно, и делитесь в комментариях, с какими проблемами сталкивались при работе с Docker 👇
В новом видео разбираю путь в профессию — от первых шагов до подготовки к поиску работы.
Внутри:
📍Кто такой Data Engineer
📍С чего начинать обучение
База: Python, SQL, базы данных и Linux
📍Основной стек Data Engineer
📍 Практика и pet-проект
📍Как подготовиться к поиску работы
📍 Как сделать сильное резюме
Если не понимаешь, что учить и в каком порядке, это видео поможет собрать понятный план действий