rockyourdata | Unsorted

Telegram-канал rockyourdata - Инжиниринг Данных

23384

Делюсь новостями из мира аналитики и карьерными советами. 15 лет в Аналитике и Инжиниринге Данных, 10 лет в MAANG 🛠️ dataengineer.ru | 🏄‍♂️ Surfalytics.com №5017813306 Реклама: https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce

Subscribe to a channel

Инжиниринг Данных

Если закончим книгу по Azure Databricks до конца года, то у меня будет супер коллекция технологий: Snowflake и Databricks - два абсолютных лидера на мировой арене аналитических систем.

Все мои книги тут: https://www.amazon.ca/stores/author/B01A5PVT2M

Читать полностью…

Инжиниринг Данных

Нашел замечательный сервис для проверки ваших Key-Pair - https://isanybodyusingthisprivatekey.com

Просто скопируйте ваш private key и убедитесь, что он порядке😌

PS но лучше не надо, на то он и private key🤗

Читать полностью…

Инжиниринг Данных

Попался пост чувака, кто стал L7 в amazon (Principal DE) после 6 лет как L6 (Sr DE). Это крутой результат, но читая его promo summary (скрин приложил) звучит уж совсем банально и просто (относительно просто).

Мне кажется, так про себя может любой написать, про пользователей, про ТБы данных, про выступления на конференциях, и про конкурсы с плакатами и тп. Все это bullshit.

Что на самом деле работает - в Амазоне много больших и маленьких команд, многие из них это как страртапы.

Вот придумал продукт менеджер идею и получил на нее бюджет и хедкаунт.

Дальше по классике берет SDE, DE, DS, BI и погнали.
М
ного проектов загибаются, а какие-то вырастают в большие организации, как Amazon Flex (даже не знаю что это).

Поэтому как часто это бывает, нужно оказаться в правильной команде, в правильное время. Если вы первый инженер и строите простое хранилище для внутреннего пользования и ваша организация растет, то вы растете вместе с ней. Выше риск, выше награда.

Есть много примеров, когда такие организации закрывались и были сокращения и все ТБы данных шли в топку.

Из его истории видно, что он провтыкал 3 года в одной команде без результата и начал с почти 0 в другой. Там-то карта и поперла) Ну еще надо с менеджером и скип менеджером дружить.

Я видел много мего-умных людей, кто годами тащил на себе проекты и в итоге ничего.

Поэтому есть более эффективные и доступные способы растить свой доход без burnout😇

Читать полностью…

Инжиниринг Данных

⚡️Fivetran хочет купить еще и dbt Labs, после недавний покупки sqlMesh.

Как думаете купит или не купит?

Читать полностью…

Инжиниринг Данных

Мы сейчас пишем книгу по Azure Databricks. У меня одна из глав будет про Spark Streaming на Databrikcs. Накидайте ваши любимые сценарии по стримингу на Spark.

У меня пока такие:
- real-time CDC (Azure SQL -> Events Hubs -> Databricks -> Delta Lake)
- IoT sensor analytics (IoT Hub -> Databricks -> BI)
- real-time scoring (Event Hubs (Kafka endpoint) -> Databricks -> ML Model -> Alerts)
- Databricks Auto Loader (Event Hubs Capture → Bronze/Silver)

Интересно узнать как вы используете Spark streaming на AWS/GCP/Azure или on-prem.

Читать полностью…

Инжиниринг Данных

Все чаще использую MCP в IDE. В моем случае cursor.

Подключаюсь к Snowflake, BigQuery.

Примеры:
- Вот табличка в snowflake, сделай dbt model для нее
- Можешь взять несколько ID и проверить логику в big query
- Я хочу дать доступ в snowflake terraform, можешь написать запрос и посмотреть права
- dbt test упал, почему?

А если тему развивать, то можно уже делать по другому - prod pipeline упал - нужно разобраться почему и написать возможный путь mitigation.

То есть MCP просто дает возможность подключаться к другим инструментом и самостоятельно изучать данные, сохраняя вам время.

Пример MCP для BigQuery:


{
"mcpServers": {
"bigquery": {
"command": "/opt/homebrew/bin/toolbox",
"args": ["--prebuilt","bigquery","--stdio"],
"env": {
"BIGQUERY_PROJECT": "data-1"
}
}
}
}


Еще нужно добавить правило в репозитория agents.md, где написать инструкции, и все будет в разы удобней.

Есть и другой пример. В AWS, я просто использовал AWS CLI клиент, и он может обращаться к облаку и находить нужную информацию. Но вчера я немного встрял. Точнее встрял сегодня😵.

AI инструменты очень хорошо помогают с неизвестными репозиториями, и вы можете быстро разобраться, что за чем, и для чего. Через AWS CLI я смог найти все нужные AWS ресурсы, и понял, что один из API ключей испортился. Я его обновил руками. Но в какой-то момент AI решило заменить production ключи (удалить их все) на новый пустой key pair. Узнал я об этом сегодня, когд инженеры сказали, что все интеграции в Segment/Braze не работают. Было немного стыдно😳

Поэтому спешка с AI, точно не к чему. Еще и по слухам, инструменты стали хуже работать (cost reduction?)

Читать полностью…

Инжиниринг Данных

Airbyte выпустил версию 2.0. Теперь это end-to-end платформа (data ingestion, data transformation, reverse ETL).

Keynote from CEO

Почти все компании не хотят заморачиваться с интеграцией источников данных и использую Fivetran. Затем узнаю ценообразование и офигевают от Monthly Active Rows (MAR) - за каждую загруженную строчку нужно платить. Получается дорого.

И тут уже начинаются разговоры про альтернативы:
- Airflow + Python
- Metano
- Airbyte
- dltHub
- другие инструменты

Как обычно tradeoff - цена/скорость.

Бесплатный Airbyte был всегда проблемным. Облачный (managed) - работает достойно, по слухам. Отличный вариант для небольших компаний.

Расскажите, как у вас дела с Airbyte?

Читать полностью…

Инжиниринг Данных

Оживи робота своим алгоритмом и поборись за призовой фонд в 10 250 000 рублей на True Tech Champ 2025.

True Tech Champ 2025 — это третий всероссийский чемпионат по программированию от МТС с онлайн-этапами отбора и грандиозным шоу-финалом в Москве.

Тебя ждут два трека — выбирай:

I. Алгоритмический [призовой фонд 2 750 000 рублей].

Если классический олимпиадный формат — твоя стихия, этот трек для тебя. Блесни математическими навыками, покажи скилы в работе со структурами данных и написании алгоритмов — и окажись выше соперников в турнирной таблице.

II. Программирование роботов [призовой фонд 7 500 000 рублей].

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

Трек будет интересен начинающим и опытным разработчикам: С++, Go, Python, JS, Java, C# и не только.

Подробности на сайте. Регистрация открыта до 20 октября.

Читать полностью…

Инжиниринг Данных

DuckDB быстрей Spark 🦆

В посте DuckDB benchmarked against Spark сравнили Spark и DuckDB на локальном MacBook Pro, и утка показала отличный результат.

Поэтому если мало данных, можно смело пользоваться уткой. Зависит от вашего сервера, на котором запускается duckdb.

Есть прикольные кейсы, когда Pandas заменяют DuckDB и распаралеливуют процессы, например через lambda или чтобы экономить дорогой Snowflake compute.

Читать полностью…

Инжиниринг Данных

Как появляется технический долг? (Technical debt)

Все очень просто - ушлые ребята менеджеры топят за скорость в ущерб качеству.

Вот свежий пример:

would encourage us to bias for speed over accuracy, ship it (Нужно скорее фокусироваться на скорости, чем на точности, и выкатывать)


Это нормально, иногда “срезать” углы, но когда организация сдвигается в сторону скорости, со временем создаются множество проблемных зон, которые никогда не будут решены и могут замедлить рост.

А как у вас со “speed over accuracy”?

Читать полностью…

Инжиниринг Данных

По инженерным командам заметил определенные patterns.

Например, по размеру команды и поведению.

Я могу разделить команды на две большие группы.

1) маленькая команда 1-3 человека, где все делают все достаточно быстро, помогают друг другу. Это не обязательно стартап, это может быть большая компания, но команды там маленькие и автономные. Инженеры чувствуют свободу и занимаются тем, что нравится.

2) большая команда до 10 человек и выше. Тут уже полная неразбериха, каждые пилит что-то свое, старенькие инженеры не хотят помогать новеньким. Решения принимаются либо очень долго, либо очень быстро и непрозрачно, часто кулуарно. Эксперты становятся bottle neck и могут быть токсичными для всей команды. Особенно их бесит, когда берут новых инженеров с зарплатой на 30% выше, чем у них.

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

->Согласно закону Брукса, каждая “добавленная голова” повышает стоимость координации (n(n-1)/2).

->Согласно эффекту Рингельмана, с ростом группы падает индивидуальный вклад.

->Согласно закону Конуэя, система копирует структуру коммуникаций. Если оргуструктура запутана, продукт тоже будет фрагментирован.

Так же появляется проблемы связанные с “психологической безопасностью”, команда перестает учиться и делиться знаниями.

Как диагностировать проблему?

- Время принятия решения и кол-во решения принятых без обсуждений с командой. Иначе говоря, отсутствия технических документов - tech spec, RAPID, etc
- Задержка с Code Review и очередь к “экспертам”
- Низкие оценки в опросах про эффективность команды (опросы важный элемент для больших команд)
- Четкие сигналы о проблемах на встречать 1:1
- Отсутствие ownership и инициативы от команды

А как у вас обстоят дела с инженерными командами? Вы эксперт bottle neck? Страдаете от закрытости коллег? Не знаете как расшевелить ваши команды?

Читать полностью…

Инжиниринг Данных

Можно бесплатно получить книгу https://buf.build/resources/data-engineering-design-patterns

В комментариях я скачал для вас.

Читать полностью…

Инжиниринг Данных

Вчера все поздравляли Larry… Когда я слышу Larry то почему-то вспоминаю игру Leisure Suit Larry: Love for Sail!, но тут другое….

А сегодня народ стал обсуждать интересные моменты:
- У OpenAI нет 300 миллиардов долларов.
- У них даже близко нет 300 миллиардов долларов.
- Согласно их собственным (и, вероятно, оптимистичным) прогнозам, они не выйдут на прибыль до 2030 года.
- И всё это от компании, которая считала (или заявляла), что GPT-5 будет равнозначен ИИ уровня AGI (спойлер: нет, не стал).
- К слову, у Oracle нет чипов, которые нужны для выполнения контрактов, и даже денег, чтобы их купить.

Сама статья - Peak bubble, автор Gary Marcus сравнивает AI пузырь с тюльпаноманией.

Гэри когнитивный психолог и нейроучёный, профессор в NYU. Известен как критик “чистой” масштабируемой модели ИИ, часто подчёркивающий её ограничения, и сторонник гибридных (нейро-символических) подходов.

Реально Ларри там кому-то нормально откатил, что бы так залететь на пик😌

Читать полностью…

Инжиниринг Данных

Заметил новый pattern, все аналитики (Excel, BI, SQL), которые не знали куда им деваться, и что делать - учить дата инжиниринг или data science, наконец определились и стали AI инженерами.

Возможно хороший pivot🤑

Читать полностью…

Инжиниринг Данных

Норм идея - малышам не давать AI ассистента, а то совсем разучатся соображать.

Или не норм, мы же живем в мире AI, все движется со скоростью света, кто не успел, тот опоздал.

Читать полностью…

Инжиниринг Данных

Новая книга про Iceberg - Architecting an Apache Iceberg Lakehouse (еще в процессе создания)

Читать полностью…

Инжиниринг Данных

Увидел интересное репо, в котором автор собрал локальный опенсорсный стек:

Data Forge includes a complete modern data stack with industry-standard tools:

🗄️ Storage & Catalog
- MinIO → S3-compatible object storage for data lakes
- Hive Metastore → Centralized metadata catalog for tables and schemas
⚡ Compute Engines
- Trino → Interactive SQL query engine for federated analytics
- Apache Spark → Distributed processing for batch and streaming workloads
🌊 Streaming & CDC
- Apache Kafka → Event streaming platform
- Schema Registry → Schema evolution and compatibility
- Debezium → Change data capture from databases
🗃️ Databases
- PostgreSQL → Primary OLTP database (source system)
- ClickHouse → Columnar analytics database (sink)
🔄 Orchestration
- Apache Airflow 3 → Workflow orchestration
📊 Visualization & Exploration
- Apache Superset → Modern BI and data visualization
- JupyterLab → Interactive data science environment

Идеальный стек для отечественного (СНГ) дата инженера.

PS автору если интересно, может и вебинарчик провести для нас.

Читать полностью…

Инжиниринг Данных

🔥 Ваши данные стоят слишком дорого, чтобы ими рисковать

Positive Technologies 8 октября запустит новый продукт — PT Data Security*. Он создан, чтобы вовремя выявлять угрозы и предотвращать утечки, пока они не привели к кризису.

На онлайн-трансляции вы первыми узнаете:

— Какие задачи и риски сегодня определяют настоящее и будущее рынка защиты данных.
— Какие вызовы стоят перед компаниями на рынке защиты данных.
— Почему Positive Technologies выходит на рынок защиты данных с новым подходом.

🕒 15:00 мск
📍 Онлайн
👉 Регистрация

*Защита данных

Читать полностью…

Инжиниринг Данных

Выходные всегда самое продуктивное время работать или учиться🤩

Смотрю курс cursor - https://cursor.com/learn, очень интересно и качественно.

Сейчас уже все разработчики разделились на тех, кто с Cursor, тех кто с Claude code, и всех остальных. Чтобы получить максимальную пользу от инструмента важно узнать как он работает из 1х рук.

Так же на картинке монитор dell 49inch curved. Обожаю его, хотя он не 4к. Дома у меня 2 монитора dell 4k 32”, но этот я люблю больше.

А на wallpaper у меня пшеничные поля из села Тарутино 🥰! Я переодически меняю пейзажы из этого села, ведь там прошло мое детство, а мой прадед построил музей посвященный Великой Отечественной войне и Войне 1812 года. Всего 90км от Москвы. В планах у меня сделать сайт для музея, именно для этого и делались эти фотографии:
- Тарутино Пейзажи
- Тарутино Коллажи
- Тарутино Храм
- Тарутино музей экспозиция
- Тарутино музей территория

Спасибо супер талантливому фотографу Екатерине Советкиной. Кстати наш митап по Инжинирингу Данных, который был зимой в Т-Банк, тоже ее работа.

Читать полностью…

Инжиниринг Данных

Последни года полтора у меня была подписка на Audible - сервис Amazon, с онлайн книгами. Классный сервис, книги часто читают сами авторы. Обычно я слушаю книги в машине и часто с детьми, пока развожу на тренировки.

Несмотря на то, что в Audible есть все книги, по факту у меня была проблема, что в среднем книги это 12-20 часов аудио, и чтобы прослушать одну книгу, уходило очень много времени. Дома я не слушаю аудио книги, в машине я часто после работы и устаю. Детям еще сложней держать в голове контекст.

Поэтому я отменил подписку на audible и пришел к выводу, что большие книги должны быть художественные или технические (где много hands-on). А в бизнес книги будет намного удобней использовать краткое содержание и основные идеи и выводы. Моя логика простая - я могу слушать 2-3 месяца книгу на 20 часов и узнать что-то новое, но пропустить часть важных идей, или могу за 2-3 месяца послушать 15-25 кратких содержаний. Концентрация идей будет выше, детям будет интересней, ведь теперь я могу успевать слушать не только бизнес, но и про природу, эволюцию, развитие, подростков и тп.

Вот пример двух последних книг:
- Тайная жизнь деревьев, Петер Вольлебен - узнали много интересного про деревья.
- Умные родители - гениальный ребенок, Тони Бьюзен - очень весело было слушать с детьми и обсуждать как они будут воспитывать своих детей и сравнивать как мы их воспитываем

На картинке мой список summarу, который накидал на ближайшее время.

Сервис и качество мне очень понравился и есть возможность купить бессрочный тариф. Это не реклама, а именно мой личный опыт, возможно кому-то будет интересно.

https://smartreading.ru

Заодно я знаю создателя сервиса, поэтому рад поддержать хороший продукт. На сайте у них еще множество интересных книг и инфографик, которые команда Smart Reading создают на базе summaries, возможно я предложу в будущем издать такую книгу про Дата Инжиниринг.

Читать полностью…

Инжиниринг Данных

Интересное обновление на стороне потребления данных. С 24 сентября для всех открывается доступ к Нейроаналитику в BI-платформе DataLens — ИИ-агенту, который умеет "читать" дашборды и генерировать по ним инсайты и даже код.

Фишка в том, что теперь бизнес-пользователи могут напрямую спрашивать у данных: «почему упали продажи?» или «какой канал лучше работает?». Без того, чтобы дергать аналитика за каждую мелочь.

Инженеры тоже выигрывают: агент сам пишет код для кастомных визуализаций и ускоряет доработку отчётов. То есть результаты вашей работы начинают анализироваться ИИ напрямую, без лишних шагов.

Данные перестают быть «табличками для отчёта» и начинают отвечать сами.

Читать полностью…

Инжиниринг Данных

Вы управляете процессами, продуктами и людьми?

Тогда вам точно на avito.tech.conf! Авито Тех (это ИТ-команда Авито) анонсировал свою первую конференцию для лидов и менеджеров, которая пройдет 17 октября в Москве и онлайн.

В программе:
- Доклады про лучшие практики управления от менеджеров Авито;

- Возможности для нетворка с менеджерами топовых IT-компаний;

- Воркшопы и интерактивные зоны для прокачки навыков.

Все доклады и спикеры — уже на сайте!

Что сказать, продано! Уже пошли регистрироваться по ссылке (говорят, количество мест ограничено, а попасть хочется очень!)

Реклама. ООО «Авито Тех» Erid 2VtzqvyAyJL

Читать полностью…

Инжиниринг Данных

«Съешьте лягушку!» (англ. Eat That Frog!) - короткая, но очень полезная книга. Брайн Трейси там изложил базу, как нужно делать карьеру.

🔫😊🔫

Сегодня я услышал классную идею: лидер ― это человек, которому не нужен постоянный надзор и контроль сверху.

Тему лидерства затерли до дыр. Когда мы слышим про лидеров, мы представляем каких-то очень крутых людей, которые успешные, эффективные, мыслят стратегически и далее по списку.

А всего-то нужно:
-> Самостоятельно ставить цели и двигаться к ним без внешнего давления.
-> Брать ответственность за результаты, а не перекладывать её на руководителя или обстоятельства.
-> Самомотивироваться и мотивировать других, не ожидая, что кто-то будет «подгонять».
-> Дисциплинированно работать, даже если рядом начальника.

Важно конечно не только теорию знать, но и применять ее на практике.

PS после этой книги, emojis с Pepe приобретают новый смысл! 👀

Читать полностью…

Инжиниринг Данных

Если раньше хороший инженер умел писать хороший код, то теперь AI может писать код за нас. Конечно, его нужно проверять, но как мы выше писал -

would encourage us to bias for speed over accuracy, ship it

То получается, все таки время у нас не так много, на написания кода. Я спорить не буду с экспертами, кто будет доказывать, что ❌уйн😮 ваш AI и ничего он не понимает в написании кода😇

Лучше расскажу другую идея, что системный дизайн сейчас очень важен, так как AI (еще) не способен понять бизнес контекст и ему все равно, что там будет Batch или Streaming. С poker face он вам будет доказывать, что Batch лучше, streaming. А если ему сказать, что он не прав, он вам точно также расскажет, что Streaming лучше Batch.

Для меня сейчас самое ценное это System Design. Его намного сложней “списать” и “придумать” на собеседовании, если не было реального опыта. Далее был бы data modelling, но без него можно существовать, а вот без правильной архитектуры совсем сложно.

Для любого собеседования на ML, DE - system design must have. Ну и самим было бы классно разбираться, что зачем и почему. Так что качайте системный дизайн для аналитических и ML систем, и там обязательно должно быть место для GenAI.

Читать полностью…

Инжиниринг Данных

👩‍💻👨‍💻 Хочешь узнать, как AI реально меняет работу инженеров в России?

Александр, автор канала Книжный Куб рассказал про исследование в Т-Банке: они собирают данные о том, как компании применяют AI, что работает, а что — просто хайп.

Пройти можно здесь 👉 Ссылка на опрос (≈30 минут).

А в январе–феврале будут результаты + отчёт по методологии.

PS в РФ паттерн использования AI инструментов отличается от того, что я вижу в Северной Америке, поэтому мне будет тоже интересно узнать его результаты.

Читать полностью…

Инжиниринг Данных

Приглашаем на единственную в России специализированную конференцию по инженерии данных

SmartData 2025 пройдет 5–6 октября в Санкт-Петербурге. Трансляция тоже будет.

Программа конференции охватывает все стороны работы с данными — от Analytical до Data и ML Engineering, Data Governance и Data Quality, от старых добрых Airflow и Hadoop до Bleeding Edge «в лице» StarRocks и DataFusion Comet. От классических пайплайнов до самых новых технологий.

SmartData — не про «ценность данных для бизнеса». Это площадка, где обсуждают, как устроены реальные системы.

Подробности и билеты — на сайте конференции.
С промокодом ROCKYOURDATA персональные билеты дешевле.

Реклама. ООО «Джуг Ру Груп». ИНН 7801341446

Читать полностью…

Инжиниринг Данных

High SQL: практики, которые стоит забрать себе 😉

Делимся записью докладов с митапа ЮMoney о работе с базами данных.

Илья, разработчик ЮMoney и один из спикеров события, поделился, что для него главный критерий успешности доклада — новизна. Даже пересказ чужого опыта в инфотейнмент-формате не заходит так, как решение актуальных проблем отрасли.

«Судя по отклику зала, особенно зашёл доклад Миши про DG. И было интересно взглянуть на актуальный опыт ”а как у них“ от Димы», — делится Илья.

Инсайты с выступлений, которые участники унесли с собой:

🟣 Data-agnostic-подход DBT позволяет мигрировать между разными хранилищами без переписывания SQL-логики, сохраняя версионность и автоматизацию через Git и CI/CD.
🟣 Производительность БД зависит от множества факторов: выбирайте эффективные ключи, проектируйте секционирование, не стремитесь покрыть индексами все запросы и подбирайте оптимальные сценарии загрузки данных.
🟣 Контроль качества данных эффективен только при комплексном подходе: собственная система с UI/API, интеграция с каталогом и «светофором» для метрик актуальности, точности и согласованности, а также вовлечение владельцев данных, инженеров и бизнес-заказчиков.

Смотрите записи докладов на YouTube и ВКонтакте, а фотографии лежат в альбоме ™️

Читать полностью…

Инжиниринг Данных

Великий день для Oracle DBA, конечно если владеете акциями Oracle.

Вот коллеги из Oracle в США точно могут открывать шампанское 🥇

Читать полностью…

Инжиниринг Данных

Data Driven: Превращаем данные в двигатель бизнеса. Практическая конференция для аналитиков.

20 сентября приглашаем опытных аналитиков на конференцию Data Driven. Разговоров о теории не будет — только о том, как с помощью данных находить точки роста и напрямую влиять на ключевые бизнес-метрики.

Ваш практический план на день:
1. Знания: Выберите свой трек
-Трек для продуктовых аналитиков, data-аналитиков и data scientists.
-Трек для data-инженеров, системных и BI-аналитиков.

2. Опыт: Нетворкинг без купюр
-Дискуссии и обмен опытом с коллегами.
-Личные встречи 1:1 с руководителями направлений аналитики.
-Диалоги с экспертами Поиска и Рекламных технологий.
-Карьерные консультации от наших HR-экспертов.

3. Практика: Игры с пользой
-Квиз — проверим не только знания, но и смекалку.
-Квест-комната — решите реальные рабочие кейсы и сразу же обсудите решения с нашими экспертами. А победителей ждут крутые призы: радиоуправляемый робот, станции с Алисой и многое другое.

4. Отдых: Афтепати
Закрепим успех в неформальной обстановке за фуршетом и под хорошую музыку.

Где? Москва + онлайн-трансляция для тех, кто не в городе.
Регистрация уже открыта здесь, ждем вас!


Реклама. ООО "Яндекс". ИНН 7736207543

Читать полностью…

Инжиниринг Данных

Concurrency (конкурентность )- одна из самых важные характеристик в базе данных. Что будет, если несколько процессов будут писать в одну таблицу? Традиционные базы данных уже научились это делать, а вот с озером данных или гибридным озером данных (lake house), не так все просто.

Когда несколько процессов одновременно пытаются записать данные в одну и ту же таблицу, это может привести к серьезным проблемам:
- Потерянные обновления (Lost Updates): Один процесс записывает данные, а второй тут же их перезаписывает, не зная о предыдущей операции.
- Несогласованные данные (Inconsistent Data): Данные могут оказаться в некорректном или неполном состоянии.
- Гонки данных (Race Conditions): Результат операции зависит от того, какой из процессов завершится первым, что делает результат непредсказуемым.

Традиционные реляционные базы данных, такие как PostgreSQL, MySQL и SQL Server, давно решили эту проблему. У них есть встроенные механизмы, которые гарантируют надежность транзакций по принципу ACID (Atomicity, Consistency, Isolation, Durability).

Они используют:
- Блокировки (Locking): Процессы временно блокируют доступ к данным, пока не завершат свою операцию.
- Управление параллельным доступом с помощью версий (MVCC): Вместо блокировки база данных создает разные версии данных. Это позволяет читателям видеть старую версию, пока новый процесс записывает новую.

Архитектура Data Lake и Lakehouse принципиально отличается. Они построены на распределенных файловых системах (HDFS, Amazon S3, Azure Blob Storage), которые изначально созданы для хранения огромных объемов данных, а не для поддержки транзакций.

Основные проблемы:
- Нет встроенной поддержки ACID: Файловые системы не поддерживают атомарные транзакции. Если запись прервется на полпути, файл может остаться поврежденным.
- Работа с файлами, а не со строками: Изменение одной строки данных может потребовать перезаписи всего большого файла, что крайне неэффективно и опасно.

Чтобы решить эти проблемы, появились транзакционные фреймворки, которые добавляют уровень управления транзакциями поверх озер данных. Самые известные из них:

- Delta Lake
- Apache Hudi
- Apache Iceberg

Эти фреймворки создают слой метаданных, который ведет журнал всех изменений, обеспечивая атомарность операций и изоляцию снапшотов. Это позволяет им работать с данными в озерах так же надежно, как и традиционные базы данных.

В статье shahsoumil519/can-10-spark-writers-perform-concurrent-appends-to-an-iceberg-table-simultaneously-774bccc030c7">Can 10 Spark Writers Perform Concurrent Appends to an Iceberg Table Simultaneously? автор проверил, могут ли 10 одновременных процессов Spark успешно записывать (добавлять) данные в одну и ту же таблицу Apache Iceberg.


Тест 10 параллельных Spark‑записей (`MERGE INTO`) в разные партиции Iceberg‑таблицы на S3.

Проверяется, как система справляется с одновременными обновлениями: выполняется 10 Spark‑джобов, каждый таргетит отдельную партицию, и анализируются успехи и неудачи операций.

Основные настройки Iceberg для надёжной параллельной записи:
- `commit.retry.num-retries = 20` — попыток на случай конфликтов,
- `commit.retry.min-wait-ms = 30000` — минимальная задержка между попытками,
- `write.merge.isolation-level = snapshot` — слой изоляции, гарантирующий консистентность снимков.

Результат: несмотря на возникающие ошибки во время выполнения, автоматические ретраи и snapshot‑изоляция позволяют успешно завершить все `MERGE INTO` операции, сохранив целостность данных.

Читать полностью…
Subscribe to a channel