ch
Feedback
Айти-Пингвин | Дата инженер

Айти-Пингвин | Дата инженер

前往频道在 Telegram

Канал главного разработчика Data Lake крупного банка. База знаний для джунов, разбор собесов, задачи (jun/mid/sen) с решениями, полезные материалы, обзоры технологий и архитектур. По вопросам и менторству писать @it_pengwin

显示更多
2 112
订阅者
+224 小时
+77 天
+4830 天

数据加载中...

吸引订阅者
九月 '26
九月 '26
+31
在0个频道中
八月 '26
+62
在1个频道中
Get PRO
七月 '26
+96
在1个频道中
Get PRO
六月 '26
+21
在0个频道中
Get PRO
五月 '26
+32
在0个频道中
Get PRO
四月 '26
+76
在0个频道中
Get PRO
三月 '26
+50
在0个频道中
Get PRO
二月 '26
+151
在1个频道中
Get PRO
一月 '26
+91
在0个频道中
Get PRO
十二月 '25
+80
在0个频道中
Get PRO
十一月 '25
+96
在0个频道中
Get PRO
十月 '25
+146
在1个频道中
Get PRO
九月 '25
+210
在1个频道中
Get PRO
八月 '25
+190
在0个频道中
Get PRO
七月 '25
+248
在2个频道中
Get PRO
六月 '25
+173
在1个频道中
Get PRO
五月 '25
+651
在0个频道中
Get PRO
四月 '250
在5个频道中
Get PRO
三月 '25
+80
在3个频道中
日期
订阅者增长
提及
频道
17 九月0
16 九月+3
15 九月+3
14 九月+1
13 九月0
12 九月0
11 九月+3
10 九月+1
09 九月+2
08 九月+2
07 九月+3
06 九月+2
05 九月+1
04 九月+3
03 九月+4
02 九月+1
01 九月+2
频道帖子
Из аналитика в DE - реально? 🐧 Регулярно в дата-комьюнити вижу вопрос: «А как вообще перейти из аналитики в дата-инженерию?»
Из аналитика в DE - реально? 🐧 Регулярно в дата-комьюнити вижу вопрос: «А как вообще перейти из аналитики в дата-инженерию?» Логично, что спрашивают это ребята, которые уперлись в потолок аналитики, или в какой-то момент они просто захотели понять, почему в дашборде вчера было 10 млн строк, а сегодня 8 млн. И тут они выходят на рынок инженеров данных, смотрят требования к стеку:
SQL — понятно. Python — ну ладно. Airflow — где-то видел. Kafka — слышал. Spark — ну это уже серьёзно. Kubernetes — закрываем вакансию 💀
А если открыть ещё несколько вакансий, то можно обнаружить, что для позиции junior DE желательно иметь лет 5 опыта, знать 14 технологий и желательно быть лично знакомым с создателем Hadoop. Но если отбросить вакансии-мутанты, то переход из аналитики в DE вполне логичный и на самом деле - не сложный. Ты уже умеешь работать с данными, SQL и понимаешь, зачем вообще бизнесу эти данные нужны. Остаётся разобраться с тем, что происходит ДО того, как данные попадают к тебе в запрос.ETL, пайплайны, хранилища, оркестрация, Spark и вот это всё. И вот тут недавно посмотрел, что ребята из Симулейтива сделали с новым буткемпом «Инженер данных». Мне понравилось, что они не пытаются запихнуть человека сразу в весь зоопарк технологий. Курс разбит на два этапа. Первые 10 недель — база и уровень junior. Дальше — более глубокое погружение в инструменты и движение к middle. Внутри: ➖SQL и Python ➖пайплайны и ETL ➖хранение и обработка данных ➖DWH ➖практика ➖живые занятия с ментором ➖подготовка к собесам ➖AI-инструменты Плюс будут гостевые лекции от практикующих DE из Яндекса, Т-Банка, Авито, Сбера и Ozon. И вот подготовка к собесам с первых недель — это, на мой взгляд, довольно полезная штука. Вообще, когда рядом есть структура, дедлайны и человек, которому можно задать вопрос, шанс не застрять в бесконечной подготовке немного выше, а когда в конце получаешь диплом о профпереподготовке, то вдвойне приятно! Сейчас у Симулейтив ещё и гранты на обучение + гарантия трудоустройства для студентов, а на новый поток осталось 5 мест, заявку можно оставить до завтра включительно. Так что если вы аналитик, который уже полгода говорит: «Вот закончу текущий проект и начну изучать DE» — возможно, этот пост - ваш знак 🐧 🔗 ЗАБРОНИРОВАТЬ МЕСТО

2
В продолжение поста о токсичном собесе Мне в личку написал подписчик и тоже рассказал забавную историю об этом деде из ИНГ Ба
В продолжение поста о токсичном собесе Мне в личку написал подписчик и тоже рассказал забавную историю об этом деде из ИНГ Банка " Так вот, про Евразийский инг банк я тоже писал тру стори. И вы не представляете, насколько наши истории похожи)) : Мне написал рекрутер из Евразийского банка. Общение происходило исключительно по телефону и почте. Мне скинули вакансию на почту в формате doc. В письме также было указано, что, если сообщение адресовано не мне - немедленно удалить. Содержимое никому не передавать (ага, щас). Искали (возможно ищут) человека, который будет делать им внутреннюю bi систему. Для этого им очень нужен дата инженер. Нужно знать Postgres, уметь писать ETL скрипты, возможно отрисовывать виджеты. Пообщался по телефону с hr, позвала на тех собес. ВОТ ТУТ КРИНЖ И ПОЛИЛСЯ. Я пришел раньше всех (советую так делать), потом подключился некий гражданин без камеры. Никнейм был такой: "CTO EA (German)" (Запомните, если в конфе увидите - отключайтесь) Я, по простоте своей душевной, говорю: "Привет, как тебя зовут, к сожалению, не вижу имени". Отвечает суровый голос (без ответного привет): "Герман, там же написано..." Только тогда до меня дошло, что German это не немец, это имя человека... Потом включается камера - и до меня доходит, что привет было неуместно, ему лет 70 бля... Дальше подключается hr, говорю про опыт, с чем работал. Немец кивает, угукает. В конце говорит: "Ладно, это все понятно. А что в Postgres происходит на уровне файлов, когда ты команду INSERT выполняешь?" Если вы не ответили на вопрос - добро пожаловать в клуб. Не переживайте - этот вопрос вы больше никогда не услышите. После моего невнятного ответа старый немец сказал: "Ну теперь точно все понятно, думаю, можно заканчивать" " ——— Так что будьте готовы. Если к вам на собес подключается 70-летний CTO German, то будет очень весело 💀 И на всякий случай: А что в Postgres происходит на уровне файлов, когда ты команду INSERT выполняешь? PostgreSQL не пишет строку сразу напрямую в файл таблицы. Он находит страницу с местом, добавляет туда новую версию строки с xmin текущей транзакции и меняет страницу в shared_buffers. Если есть индексы, их страницы тоже обновляются. Одновременно изменение записывается в WAL. При COMMIT на диск сначала сбрасывается WAL, а изменённые страницы таблицы и индексов могут попасть в файлы позже - через background writer или checkpoint. Если сервер упадёт раньше, PostgreSQL восстановит изменения из WAL. it пингвин | data engineer 🐧
1 052
3
Чет у нас кодекс отвалился, а как работать теперь?..🍴 https://status.openai.com/
Чет у нас кодекс отвалился, а как работать теперь?..🍴 https://status.openai.com/
1 015
4
Обзор токсичного собеседования с ИНГ Банк Формат работы: офис Зп: от 200к Период собеседования: август 2026 Вопросы: 1. Расскажи про опыт 2. Напиши даг для чтения файлика из api и загрузки его на диск 3. Знаешь CI/CD? 4. Оцени навыки владения постгресом 5. Как создать новую ветку в гите 6. Как подключиться к виртуальной среде с помощью консоли 7. Что происходит в постгресе при INSERT 8. Отличие HDFS от S3 9. Как развернуть постгрес Итог собеседования: "Очень токсичный собес был, собеседующий мужик лет 60 на все вздыхал и говорил "понятно". После вопроса как подключиться к виртуальной среде сказал, тяжело вам будет у нас, до свидания. Это был самый странный и токсичный собес в моей жизни, который продлился 10 минут" it пингвин | data engineer 🐧 #собеседование #менти
1 106
5
26 сентября — Data Driven 2026 от Яндекса, и в этом году конференции 10 лет Для дата-инженеров тема прямо в яблочко: AI-first-аналитика и то, как AI-инструменты и AI-ready-данные меняют инфраструктуру, с которой мы работаем каждый день. Кого обязательно слушать: — Роман Халкечев (CDO Поисковых сервисов и ИИ Яндекса) — расскажет о том, как AI переписывает правила игры при работе с данными, меняет способ принятия решений в компании и трансформирует профессии аналитика и дата инженера; — Олег Хомюк (CDO Яндекс Поиска) — как объективно измерить качество AI-агентов и инфраструктуры AI-ready-данных; — Артём Солоухин — покажет MARS, первую мультиагентную рабочую среду в Яндексе; — Максим Стаценко — инструкция, как собрать агента-аналитика, которому можно доверять. Плюс стенды с экспертами команд Яндекса, нетворкинг и афтерпати в честь 10-летия — с музыкой и IT stand-up от аналитиков вечером. Москва + онлайн, 26 сентября🐧 Мест офлайн немного, торопитесь зарегистрироваться по ссылке Новости конференции
1 090
6
Обзор собеседования со СБЕР Формат работы: офис Зп: от 200к Период собеседования: август 2026 Итог собеседования: прошел в след этап Собес длился 15 минут. Новая команда, которая будет собирать витринки по таблицам из ядра и тянуть данные из источников. Вопросы: 1. По опыту 2. Приходилось ли оптимизировать витрины, что делал 3. Что такое нормализация 4. Что такое денормализация 5. Где встречаются денормализованные таблицы 6. Расскажи какой-нибудь кейс сложной задачи с работы 7. Что такое партиционирование 8. Что такое кластеризация 9. Какие знаешь виды ключей 10. На что смотришь при выборе составного ключа 11. Удалось ли поработать с суррогатными ключами ————- Вот это потный собес 😮‍💨😌..) it пингвин | data engineer 🐧 #собеседование #менти
1 093
7
Обзор BootCamp для Data Engineer Подходит к завершению 7-ой поток Буткемпа от Жени и Вовы. К сожалению я не успел полностью п
Обзор BootCamp для Data Engineer Подходит к завершению 7-ой поток Буткемпа от Жени и Вовы. К сожалению я не успел полностью пройти буткем, сделать все задания и пет проект. Я занимался переездом и были некоторые карьерные изменения (о них расскажу потом). Поэтому расскажу немного поверхностные впечатления. Что мне понравилось: Хорошая подача материала. Это у ребят не отнять - лекции максимально понятные. Рассказывают суть технологий, что и как устроено в реальности в компаниях, приводят примеры, на экране тоже постоянно что-то стримят показывают. Я думаю многие видели видосы Жени по Спарку и по DE. Разборы вопросов по гринпламу, клик, оптимизация от Вовы. Вот лекции в буткемпе в таком же стиле. Записи конечно сохраняются. Я смотрел в записи, на прямом эфире ни разу не был. Лекции Сам материал опять же понятно написан, не сгенерирован весь нейронкой (вроде бы). Упор сделан больше на понимание и объяснения базовой информации. Какие-то тонкости и сеньорные глубокие вопросы особо не разбираются, хотя мне было б интересно это почитать. Инфраструктура Прикрепил скрин с инфрой. Со всем можно работать из браузера. Ничего поднимать/настраивать не нужно. Удобно Пет проект и задачи У вас есть джира с тасками, потихоньку делаете задачи и выполняете пет проект. У пет проекта тоже есть несколько уровней - базовый легкий и посложнее. Базовый выглядит так: Прочитать файл из S3 -> Прочитать данные через Spark -> Привести типы колонок и добавить технические поля: -> Создать реплицируемую и распределённую таблицу в ClickHouse -> Загрузить данные в ClickHouse -> Все это упаковать в DAG Airflow. Задачи несложные, для кого-то это плюс, для кого-то минус. Карьерные консультации и собесы Ребята рассказывают как делать резюме и разбирают резюме учеников. Проводят собесы с желающими в прямом эфире. Это 100% полезно, но недостаточно для трудоустройства. Поддержка в чате и Дружеский вайб Конечно есть отдельный чатик. Я кстати думал будет гораздо больше сообщений и флуда. Но в основном общение только по делу. Ребята оперативно отвечают на вопросы и у них есть помощник. Цена Я не знал сколько стоил буткемп, мне дали доступ к буткемпу, чтоб я протестил его. Цену спросил совсем недавно и был удивлен)) 60к. Я думал он стоит около 100к Минусы Сразу скажу, что в целом цена перекрывает минусы. 60к это не дорого относительно других курсов. Здесь просто упор сделан больше, чтоб научить новичков/перекатышей/джунов. Им буткемп полезен, как по мне. Мидлам DE, сеньорам буткемп будет не так полезен. Только если кто-то хочет сменить, расширить стэк, лень заморачиваться с инфрой, хочет пообщаться с ребятами и позадавать вопросы - то тоже ок. Я с ребятами общаюсь и знаю, что они серьезно относятся к делу. В общем, пингвин одобряет BootCamp для Data Engineer👍 it пингвин | data engineer 🐧
2 892
8
Собес VS Robotics (ООО АБТ) (дочка сбера) Вопросы: 1. Гринплам что такое, в чем суть МПП систем 2. Из чего состоит Гринплам 3. Дистрибуция что это, какие типы есть в ГП, как определить что таблицы дистрибуцирована нормально 4. Партиционирование что это 5. Проблемы дефолт партиции 6. Что будет если нет дефолт партиции и партиции для загружаемой даты 7. Таблицы дистрибуцированы по разным ключам, как избежать редистрибьют моушена 8. Оконки какие знаешь 9. LEAD LAG взаимозаменяемы? 10. Знаешь pgpl/sql 11. Кимбалл и Инмом, какая разница? 12. Какие типы данных полей знаешь, с какими работал 13. Как извлечь дату, время, месяц из поля с датой 14. Масштабирование в гп 15. Субпартиции что это 16. Как добавить настоящее время в ГП 17. Что такое SCD, какие типы знаешь 18. SCD 2, какие поля надо добавить Задача: Таблица с полями: фио, департамент_id, зарплата Нужно с помощью оконок вывести среднюю зп по департаменту и ранг по зп (самая маленькая зп - 1 в разрезе департаментов) Решение: просто avg(salary) over, rank() over() Итог собеса: согласился на оффер в сбер в другую команду. ————- Накопилось много обзоров собесов (особенно сбера 🍴). Поставьте огонечки 🔥 если интересны обзоры it пингвин | data engineer 🐧 #собеседование #менти
1 384
9
Что такое Lakehouse? Название Lakehouse сложилось из Data Lake и Data Warehouse. Идея в том, чтобы хранить данные как в Data
Что такое Lakehouse? Название Lakehouse сложилось из Data Lake и Data Warehouse. Идея в том, чтобы хранить данные как в Data Lake, но работать с ними почти как в DWH. В классическом DWH данные загружаются внутрь СУБД, например Greenplum. Она отвечает за хранение, SQL, транзакции и управление таблицами. Это удобно, но хранение и вычисления связаны с одним кластером. При росте данных приходится расширять весь кластер, даже когда дополнительная вычислительная мощность не нужна. Data Lake устроен иначе. Данные лежат в S3 в открытых форматах вроде Parquet. Хранилище масштабируется отдельно, а одни файлы могут использовать разные инструменты. Но просто сложить Parquet-файлы в S3 недостаточно. Если одна джоба перезаписывает таблицу, другая может прочитать её в середине загрузки. Также нужно хранить схему, отслеживать версии и понимать, какие файлы относятся к текущему состоянию таблицы. Lakehouse добавляет этот недостающий слой управления. Из чего он состоит? 1. Объектное хранилище S3, MinIO или другой storage хранит файлы с данными. 2. Табличный формат Iceberg, Delta Lake или Hudi управляет схемой, версиями и изменениями файлов. Этот слой даёт транзакции, конкурентную запись, time travel и rollback. 3. Каталог Хранит информацию о таблицах и указывает движкам, где находятся их актуальные метаданные. В этой роли могут использоваться Hive Metastore, AWS Glue, Nessie или Iceberg REST Catalog. 4. Вычислительные движки Spark выполняет обработку, Trino запускает SQL-запросы, Flink работает с потоками. Все они могут обращаться к одним таблицам. Зачем отделять хранение от вычислений? Объём данных растёт постоянно, а нагрузка меняется. Ночью может работать тяжёлый ETL, днём выполняются короткие запросы, а часть истории месяцами просто хранится. Если storage и compute масштабируются отдельно, не нужно держать большой вычислительный кластер только ради хранения. Ресурсы можно добавлять под конкретную нагрузку. Также не обязательно создавать отдельную копию данных для Spark, вторую для SQL и третью для ML. Разные инструменты могут работать с общей таблицей. Когда Lakehouse действительно нужен? Не каждой компании нужен Lakehouse. Если данных немного, ими занимается одна команда, а аналитика помещается в одной СУБД, Lakehouse может только добавить сложности. Польза становится заметна, когда данных действительно много, с ними работают разные команды, а внутри компании есть несколько типов нагрузки и форматов данных. Одной команде нужен SQL и BI, другой - Spark, третьей - машинное обучение, четвёртой - потоковая обработка. Хранить для каждой команды отдельную копию данных становится дорого и неудобно. Lakehouse позволяет держать исходные и подготовленные данные в одном хранилище, а разным инструментам - работать с ними через общий слой таблиц. Но компания должна быть достаточно зрелой. Нужны единые правила работы с данными, владельцы таблиц, каталог, разграничение доступа, контроль качества и команда, которая поддерживает платформу. Без этого вместо Lakehouse легко получить большое S3-хранилище, в котором никто не понимает, кому принадлежат данные и можно ли им доверять. Почему это стало возможным именно сейчас? Хранить файлы отдельно умели и раньше. Но старым Data Lake не хватало управления таблицами, а работа с файлами уступала DWH по удобству и надёжности. Затем объектные хранилища стали обычной частью data-платформ. Появились Iceberg, Delta и Hudi, развились каталоги, а движки научились работать с этими форматами. А что с DWH? Lakehouse не обязательно заменяет DWH. Современные облачные DWH тоже разделяют хранение и вычисления, поэтому граница между подходами размывается. Для стабильной BI-нагрузки готовая СУБД часто проще. Lakehouse полезен, когда данных много и они нужны разным командам и инструментам. Если коротко, Lakehouse - это Data Lake, которому добавили управление таблицами и часть возможностей DWH. Но оправдан он обычно тогда, когда масштабы и зрелость компании требуют собственной data-платформы. ———— Как же нейронки стали хорошо генерить картиночки)) it пингвин | data engineer 🐧
1 407
10
⚡️⚡️Архитектура доступа к данным меняется. Что дальше? Когда мы рисуем архитектуру платформы данных, между приложением и базо
⚡️⚡️Архитектура доступа к данным меняется. Что дальше? Когда мы рисуем архитектуру платформы данных, между приложением и базой обычно остается одна стрелка. Но именно внутри нее скрывается отдельный архитектурный слой, который влияет на производительность, совместимость и то, как данные в итоге попадают к пользователю. Сегодня рядом с привычными JDBC и ODBC появляются Apache Arrow, ADBC, Flight SQL, Spark Connect и нативные HTTP-протоколы движков. На SmartData 2026 Петр Гуринов (Yandex Cloud) разберет, что происходит между запросом и результатом, почему старые интерфейсы пока не уходят, где новые подходы действительно помогают и какие компромиссы приходится учитывать при выборе технологии. Если вы проектируете платформы данных, работаете с аналитическими системами или BI-инструментами, этот доклад поможет лучше понять архитектуру доступа к данным и осознаннее выбирать инструменты под свои задачи. 🗓SmartData 2026 пройдет 23–24 сентября (Москва + онлайн). 🐧Купить персональный билет со скидкой 15% по промокоду DATAPENGUIN и ознакомиться с полной программой можно на сайте конференции.
1 238
11
Мошенники под видом рекрутеров Ребят, аккуратнее с тестовыми заданиями от незнакомых рекрутеров. Сейчас мошенники могут предс
Мошенники под видом рекрутеров Ребят, аккуратнее с тестовыми заданиями от незнакомых рекрутеров. Сейчас мошенники могут представиться рекрутером и прислать вредоносный код под видом тестового задания. Это может быть ссылка на репозиторий или архив с проектом. Задача будет выглядеть вполне обычно: установить зависимости, запустить приложение и что-нибудь в нём поправить. Но вместе с проектом можно запустить вредоносный код. Схема такая: Вам пишет якобы рекрутер, немного общается про опыт и предлагает хорошую вакансию. Потом присылает тестовое и просит запустить его на своём компьютере. В одном из таких заданий нашли скрытый импорт вредоносного npm-пакета. Код был обфусцирован (специально запутан, чтобы его было сложно прочитать). После запуска он скачивал ещё один файл и запускал его отдельным процессом в фоне. При этом ошибки игнорировались. Для кандидата проект мог просто не запуститься. Можно решить, что в тестовом что-то сломано, закрыть его и забыть. А вредоносный процесс уже работает. Что он искал? - данные браузеров Chrome, Edge и Brave; - токены и сохранённые сессии; - данные браузерных расширений; - файлы криптокошельков; - сохранённые пароли и другие учётные данные. На компьютере разработчика обычно лежит ещё много интересного: SSH-ключи, файлы .env, токены доступа к репозиториям, облакам и рабочей инфраструктуре. И для этого не обязательно запускать какой-то подозрительный exe-файл. Вредоносный код может выполниться во время обычного npm install через install-скрипты пакета. Что стоит проверить перед запуском? 1. Кто прислал тестовое Посмотрите аккаунт рекрутера, сайт компании и саму вакансию. Лучше отдельно найти контакты компании и проверить, действительно ли у них есть такой сотрудник и вакансия. 2. Зависимости Иногда вредоносный пакет маскируют под популярный. Например, пакет crossenv маскировался под настоящий cross-env. Отличие только в одном дефисе, который легко не заметить. Поэтому стоит посмотреть package.json и проверить незнакомые зависимости. 3. Скрипты запуска В обычном тестовом не должно быть кода, который скачивает неизвестные файлы, запускает PowerShell или отдельные процессы через child_process, spawn и exec. А если рядом лежит огромный обфусцированный JavaScript, который невозможно нормально прочитать, такое тестовое лучше вообще не запускать. 4. Где запускается проект Не стоит запускать неизвестное тестовое на рабочем компьютере или основном ноутбуке. Лучше использовать отдельную виртуальную машину без общих папок, паролей, ключей и рабочих доступов. Docker тоже не всегда спасает. Если внутрь контейнера передали папки с компьютера, переменные окружения или Docker socket, доступ к данным всё ещё можно получить. В последнее время всё чаще слышу про подобные истории. Будьте внимательны и смотрите, что вам присылают. Даже если это обычное тестовое задание от рекрутера. ———— Вам такие тестовые попадались? Я бы сейчас тестовые или вообще не делал. Или делал после реального собеседования и только тестовое в виде текстового файлика/ворда/просто сообщение (конечно, если очень хочется в этом месте работать). it пингвин | data engineer 🐧
1 331
12
Коллеги, если сейчас ищете работу или готовитесь к переходу в Data Engineering, рекомендую канал @dataengineerlab В канале много полезного для подготовки: — разборы Spark, Airflow, Kafka, Iceberg, Greenplum и других инструментов — актуальные вопросы с собеседований в бигтех — советы по резюме и прохождению интервью Рекомендую заглянуть и подписаться — точно найдете что-то полезное для подготовки: 👉 @dataengineerlab
953
13
Apache Iceberg - зачем он нужен? Iceberg всё чаще встречается в вакансиях и архитектуре. Что это: база данных, альтернатива P
Apache Iceberg - зачем он нужен? Iceberg всё чаще встречается в вакансиях и архитектуре. Что это: база данных, альтернатива Parquet или часть Spark? Iceberg - открытый табличный формат. Он не заменяет Parquet и не выполняет запросы вместо Spark или Trino. Допустим, в S3 лежит таблица из множества Parquet-файлов. Parquet определяет устройство каждого файла, но ничего не знает о таблице целиком. Какие файлы сейчас актуальны? Что делать, если две джобы одновременно записывают данные? Как вернуть таблицу в состояние до неудачной загрузки? Iceberg хранит над файлами метаданные: схему, партиционирование, статистику и историю изменений. Таблица состоит из snapshots - её версий. Каждый snapshot содержит точный список файлов на определённый момент. При записи создаются новые файлы и метаданные, затем выполняется атомарный коммит. Другие запросы видят либо предыдущую версию таблицы, либо уже полностью записанную новую. Что это даёт? 1. Конкурентная запись Несколько джоб могут одновременно работать с таблицей. При коммите Iceberg проверяет, не изменились ли затронутые данные, и обнаруживает конфликт. 2. Time travel и rollback Можно прочитать таблицу в состоянии на определённый момент или вернуть её к предыдущему snapshot после ошибочной загрузки. 3. Безопасное изменение схемы Колонки можно добавлять, удалять и переименовывать. Iceberg различает их по внутренним ID, поэтому переименование не считается удалением одной колонки и созданием другой. 4. Скрытое партиционирование В запросе можно фильтровать обычную колонку с timestamp, а Iceberg сам определит подходящие партиции. Способ партиционирования можно менять без немедленной перезаписи старых файлов. 5. Планирование чтения По статистике в метаданных движок заранее исключает файлы, в которых нет нужных данных. Для таблиц с миллионами файлов это сильно сокращает объём чтения. Почему недостаточно DWH, например Greenplum? В MPP-СУБД хранение и вычисления находятся в одном кластере. Расширяя его ради растущего объёма данных, приходится добавлять и вычислительные ресурсы. В S3 хранение масштабируется отдельно, а разные движки могут работать с одними файлами. Iceberg добавляет им возможности таблицы. При этом DWH продолжает решать свои задачи. Почему Iceberg появился только сейчас? Раньше большие данные строились вокруг Hadoop, HDFS и пакетных загрузок. Для многих задач каталогов и партиций хватало. С распространением объектных хранилищ одну таблицу начали использовать разные движки. Понадобился общий формат для управления миллионами файлов, каталоги с атомарными коммитами и поддержка в самих движках. Поэтому Iceberg стал востребован именно сейчас. Что Iceberg даёт этим движкам? Iceberg - не отдельный сервер. Это спецификация таблицы, библиотеки и интеграции. Они объясняют движку, как найти нужные файлы, применить фильтры, прочитать таблицу, записать новую версию и выполнить коммит. Движок занимается вычислениями, а Iceberg отвечает за состояние таблицы. Снаружи всё действительно выглядит просто. Но внутри snapshot ссылается на manifest list, тот - на manifests, а в них уже хранятся списки data files и статистика. Iceberg также разрешает конфликты между параллельными записями, повторяет неудачные коммиты, отслеживает удаления и сохраняет файлы, которые ещё нужны старым snapshots. Таблицы приходится обслуживать: объединять небольшие файлы, удалять старые snapshots, очищать потерянные файлы и оптимизировать manifests. То есть идея простая, а реализация нет. Пользователь видит обычную таблицу именно потому, что основная сложность спрятана внутри формата и его интеграций. ———— Как вам формат? Хочу чаще делать посты, писать на понятном языке про всякие de-шные (и не только) технологии. it пингвин | data engineer 🐧
1 465
14
Обзор собеседования с Лемана Про Формат работы: Гибрид Зп: от 250к просил Период собеседования: Июль 2026 Итог собеседования: Игнор ———— Общий опыт работы С какими базами данных вы работали и до какого уровня погружались в SQL и БД? Миграция Oracle → Greenplum Опишите подробнее процесс миграции на Greenplum. Какие особенности необходимо было учитывать? Какая конфигурация использовалась в Oracle — распределённая или обычная СУБД? Приходилось ли оптимизировать операции join при переходе с обычной таблицы на распределённую? Применялась ли индексация в Greenplum в вашей практике? Задача на проектирование (геоданные) Дана таблица с географическими координатами полигонов. Каким образом можно ускорить поиск по координатам без использования полигонального индекса? Как можно применить дистрибуцию или партиционирование для оптимизации запросов по числовым координатным полям? Какой принцип должен лежать в основе распределения данных для эффективного использования всего кластера? Языки программирования Расскажите об опыте работы с языками программирования, в частности с Python. Насколько глубоко изучен API Apache Airflow? Какие классы операторов и задач применялись? Использовались ли внутренние механизмы Airflow — переменные, XCom? Применялись ли генераторы задач или динамические DAG? Проектирование pipeline Как бы вы спроектировали pipeline для загрузки таблиц из Oracle в Greenplum? Каким образом следует организовать запуск: единый DAG или отдельные DAG для каждой таблицы? Какие преимущества и недостатки имеет каждый из подходов — универсальный DAG с множеством задач против отдельных DAG на каждую таблицу? Контроль качества данных Каким образом обеспечивается контроль качества загруженных данных? Опишите верхнеуровневую структуру отчёта по контролю качества данных (data quality). Опыт с Hadoop-стеком Расскажите подробнее об опыте работы с экосистемой Hadoop. В каком окружении использовался PySpark? С какими форматами файлов приходилось работать (Parquet, CSV, ORC)? Хранились ли данные в объектном хранилище? Имеется ли опыт работы с технологиями каталогизации и версионирования данных, например Apache Iceberg? DevOps и инфраструктура Имеется ли опыт применения практик DevOps и SRE? Есть ли опыт работы с Docker и Kubernetes? Использовались ли инструменты мониторинга и логирования, такие как Grafana или Loki? Управление кодом БД и архитектура хранилища Как организован процесс работы с кодом, относящимся к базе данных, включая развёртывание процедур, функций и таблиц? Какой процесс применяется для деплоя изменений в продуктивную среду? Опишите архитектуру хранилища данных: какие слои используются и как формируются витрины данных? ———— Вот это уже потненький собес. Не то что в Сбере) it пингвин | data engineer 🐧 #собеседование #менти
1 521
15
Аналитик из Wildberries показывает, что происходит с данными после того, как дата-инженеры загрузили их в таблицы: Хочу сегод
Аналитик из Wildberries показывает, что происходит с данными после того, как дата-инженеры загрузили их в таблицы: Хочу сегодня порекомендовать канал, который раскрывает дата-аналитику со всех сторон — «Дима SQL-ит». 🛒 Дима работает аналитиком данных в Wildberries и публикует много теории и кейсов из практики — всё структурированно и по делу 🤝 Что рекомендую посмотреть в первую очередь: 🟡Подборки бесплатных материалов для изучения: SQL, Python, BI (дашборды), статистики и A/B тестов 🟡Как агрегатные функции в SQL (SUM, AVG, COUNT) ведут себя с NULL? 🟡SQL-ловушка: почему NOT IN ломается, а EXISTS работает — классическая проблема с NULL, на которую часто натыкаются 🟡Горячие клавиши в DBeaver, Jupyter и VS Code — семь комбинаций, которыми Дима пользуется каждый день 🟡Telegram-бот, который шлёт сообщение, когда скрипт завершился 🟡Разбор задач в Т-банк, Магнит OMNI, еще одна задача в Т-банк ➡️ Подписывайтесь, чтобы не потерять: @dima_sqlit
1 568
16
Обзор собеседования со СБЕР v2 ВОПРОСЫ: Расскажи про интересную рабочую задачу, связанную с данными, которой ты гордишься, и про свою роль в ней. Какой итоговый объем витрин был, в строках или гигабайтах? ЗАДАЧА 1: Дана таблица такого формата code status 1 активный 2 закрыт 3 аннулирован 3 аннулирован Как написать запрос, который покажет, есть ли в таблице дублирующиеся записи? Как написать запросы, чтобы удалить дубли и оставить только уникальные записи? Какие есть разные способы дедупликации одной и той же таблицы? Возможна ли ситуация, когда после удаления дублей в отчете они появляются снова? И как решать такую проблему, если ты не знаешь источник, откуда в эту таблицу летят дубли, а также не может повлиять на скрипт загрузки? Какой constraint можно поставить на таблицу, чтобы не допускать дублей? Что будет с потоком загрузки, если он попытается вставить записи, нарушающие unique constraint? Как организовать загрузку через staging, чтобы сначала очистить данные, а потом вставить только уникальные записи в целевую таблицу? Какую периодичность запуска выбрать для процесса очистки дублей, если неизвестно, как часто приходят вставки? Как бы ты оптимально решал проблему дублей в таблице, если нельзя быстро найти источник проблемы? ЗАДАЧА 2: Есть 9 одинаковых на вид монет. Одна из них фальшивая, и она легче остальных. Есть только чашечные весы без гирь. Нужно найти фальшивую монету ровно за 2 взвешивания. ——————- Чет со Сбером изичные собесы🦦 it пингвин | data engineer 🐧 #собеседование #менти
2 263
17
Обзор собеседования со СБЕР Вопросы: Какие виды JOIN ты знаешь, и в чем между ними разница? Что такое anti join? Что будет при JOIN по ключу, если в ключевых колонках с обеих сторон есть NULL? Чем отличаются UNION и UNION ALL? Что такое нормализация таблицы? Зачем нужна нормализация, и можешь привести пример нормализованной схемы? Чем отличается OLAP от OLTP? Был ли у тебя опыт работы со Spark? Какой основной плюс Spark в распределенных вычислениях? Какие основные шаги выполняются, когда нужно поджойнить две большие таблицы в Spark? Что значит, что JOIN в Spark — это широкая операция? ЗАДАЧА Таблицы: clients (id,name, start_date, end_date) transaction(id,client_id,amout,date) Найти для каждого клиента сумму транзакций за 1 апреля 2025 года. Вывести id клиента, имя клиента и сумму транзакций. * при этом id в таблице clients меняется по scd2. потом еще какие-то доп. условия интервьюер накидывал на задачу. ——————- Ставьте 50 🏦 сберов и выложу еще один обзор с ними 🫡 it пингвин | data engineer 🐧 #собеседование #менти
1 773
18
Учить инженерию данных по курсам и роликам — это как собирать пазл без картинки на коробке: детали вроде бы есть, а как они складываются вместе — не всегда понятно karpovꓸcourses сделали тест-квест, который эту картинку как раз и показывает: вы сами, шаг за шагом, собираете дата-платформу стартапа — от Excel до Kafka, Spark и ClickHouse — и видите, как отдельные инструменты складываются в цельную архитектуру. Прохождение построено как игра: выбираете следующий шаг, растет уровень зрелости платформы, накапливается ваш опыт, от которого вы получается звание в инженерии данных. Узнайте, какой вы инженер данных: https://clc.to/erid_2W5zFJTycAD Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFJTycAD
1 515
19
Всем привет! Подскажите плз хорошее компьютерное кресло. Нужно с сеткой и анатомической спинкой. Я посмотрел несколько видосиков (например, это) и всякие статьи. Одно нормальное кресло не нашел, склоняюсь к линейке самураев. Но вижу, что в начале у всех отличные отзывы, а после продолжительного использования – плохие. И кто знает норм компьютерный стол (желательно с крыльями и подъемным механизмом) тоже можете ссылочкой поделиться 👉👈 ⬇️
1 861
20
Обзор собеседования с Neoflex ВОПРОСЫ: 1. Что на каждом слое делают с данными? (опиши 3–4 глаголами: raw, staging, ODS, DDS, data mart) 2. Слой data mart — нормализован или нет? 3. Почему data mart денормализован? Что выигрываем? 4. С какими моделями данных сталкивался: звезда, снежинка, data vault? 5. Как косвенно определить по структуре таблицы (без данных, только атрибуты, типы, констрейнты) — это факт или измерение? 6. Почему в таблице фактов не должно быть 3–4–5 больших varchar-полей? 7. Перечисли 6 стандартных констрейнтов на атрибут 8. Перечисли все виды ключей (primary, foreign, unique, простой/составной, натуральный/суррогатный и др.) 9. Какой из перечисленных ключей не является идентификатором таблицы, в которой находится? 10. Какие подвиды суррогатных ключей знаешь? 11. В чём разница между индексами и партициями? 12. Каким образом ты проверял данные? Какие метрики data quality использовал? 13. Приходилось ли разрабатывать конкретные метрики качества данных? Какие? Плюс была несложная задача на исправление ошибок в sql-запросе. — Собеседование было в июне, по зп готовы платить 200к (я думаю +30к можно выторговать). it пингвин | data engineer 🐧 #собеседование #менти
2 035