Starrocks and modern data stack – Telegram
Starrocks and modern data stack
333 subscribers
84 photos
69 links
Будни современного стека для работы с данными с позиции платформенного инженера: starrocks, vertica, hadoop & spark, половинка k8s с щепоткой golang.
Не единым гп и скалой жив рынок :)

@barloc
https://news.1rj.ru/str/dbt_users
Download Telegram
Куда же без AI

Пропал на 2 недели, потому что занимался очень инженерными задачами - писал очередной стриминг, потом бота для соединения гитлаба со слаком и опять веселился с апишкой qlik sense. Задачи по миграции висят мертвым грузом, каждую неделю говорю себе "ну еще недельку и точно получится добраться".. и нет.

Последнюю неделю достаточно злостно подсел на курсор и не могу понять есть ли толк :) Точно можно сказать, что его нельзя и не получится применять без знаний ни контекста бизнеса, ни знаний языка. Что в sql, что в python, что в golang - везде в итоге приходится достаточно активно думать. Единственное что, курсор закрывает (или пытается закрыть) какие-то неочевидные корнер кейсы в коде и очень хорошо пишет документацию. Это прям его конек. А уж документацию к моделям в дбт генерировать просто сказка.

В итоге выиграл ли я по перфу - нет, ни сколько. Но приложение может быть будет меньше падать и потомкам описание кода читать понравится :) Двадцать баксов того стоят, тем более можно общаться с ним на русском, не теряя точность при переводе.

 PS Самое злое было, кстати, написать взаимодействие с апи клика. модели генерировали кучу галюцинаций, каждая что-то свое. Поэтому закрытые сервисы и проиграют, с ними не будет опыта и будут дорогие специалисты :) Которые могут открыть веб клика, нажать ф12 и вытянуть необходимые параметры из нетворк консоли 😂
👍2
Совсем не такую надпись вы надеетесь получить как результат запроса
select * from information_schema.task_runs;
, имея при этом абсолютно зеленые метрики в графане и вроде как адекатватный выхлоп на селекты к данным. Да еще в пятницу вечером 🤦‍♂️

Следом запрос show backends показывает, что на половине нод нет данных, что входит опять же в прямое противоречие с графаной. А хартбит в этом запросе и вовсе выдает месячной давности таймстамп.

SR - база, которая обещает вам веселые выходные...
Please open Telegram to view this post
VIEW IN TELEGRAM
😱6😢31
5 минут работы, вошли и вышли

Где-то в конце июня я писал пост про то, что отрезал от текущего кластера старрокс половину дисков. И тогда была чем-то похожая на пост выше история - все таблицы были недоступны на чтение, мета отдавала невалидные значение, а репликацию и вовсе нельзя было посмотреть. Решился вопрос достаточно просто - восстановлением всех таблиц с данными из бекапа.

Логично предположить, что таблицы с технической метой (схема information_schema) точно так же хранятся на основных разделах данных и скорее всего-то же будут испорчены. Тогда я не проверил конкретно эту таблицу, но по остальным решил об успешности проведения работ.

Копаться было интересно, потому что сработало нагромаждение багов. Когда делаешь запрос о судьбе запущенной задачи
SELECT state, PROGRESS, ERROR_MESSAGE FROM information_schema.task_runs where task_name = 'insert-3bf372bf-7a09-11f0-9446-1223cff75f84';

на самом деле идет обращение в совсем другую таблицу (на что я не обратил сначала внимания). И все попытки удалить существующие записи или выполнить транкейт этой таблицы task_runs утыкался в то, что такая операция невозможна.

Посидев, подумав, еще раз прочитав ошибку увидел, что запрос выше внутри превращается на самом деле в запрос
SELECT history_content_json FROM _statistics_.task_run_history


Не сообразив, что это обычная таблица я подумал, что придется чистить таблеты прямо руками с диска и выполнил запрос на получение этих самых таблетов для таблички (и кстати говоря на этом пункте дипсик врёт безбожно, но спасает дока)
SHOW TABLETS FROM _statistics_.task_run_history;

И результат вы можете увидеть выше :) Путь к таблетам неизвестен, но они точно в консистентном состоянии, прямо мамой клянусь :)

Ругнул себя в очередной раз за кубернетес, в котором удаление файлов таблетов на диске не такая уж тривиальная операция вдруг подумал - а что если это обычная OLAP таблица.

Раз, и delete по таблице сработал. Раз, и транкейт по таблице сработал. И сразу после этого все и заработало. Более того, каким-то образом там появилась задача от позавчера (после транкейта то...).

Паника снята, кластер работает штатно, таски показываются. Осадочек остался, но тут и сам наделал делов (а база это кстати переварила, за что ей честь и уважуха).
👍5
Не так давно в телеге добавили поиск по постам, и это прямо мана небесная. Иногда становится скучно и я ищу какую-нибудь чушь, или что-то про СР. В итоге в телеге есть огромная куча каналов про работу на китайском языке, где есть вакансии со стеком на старроксе. А еще неожиданно через канал хабра выяснил, что мироршип пришел на хабр, и там уже даже есть пара статей. Вот например пост про новшества в 3.5.

А я так и сижу со своей расшифровкой доклада с митапа. Оказалалось, перевести доклад в статью не так просто. А нейронка отлично умеет делать выдержку, но что-то не очень переписать доклад в статью. Да еще местами включения информации из интернета вместо самого доклада. Но когда-нибудь я завершу работу! :)
🔥2👍1🤝1
Регресс непонятно почему

Стримы не стоят на месте и вот мы перешагнули размер потока в 10 000 eps. Часто на собесах дата инженеров начинают мучить кафкой, всякими флинками или кафкой стримс - гошка на таком потоке кушает 130 мегабайт памяти и 0.1 процессора надо сказать.

А вот что плохо - delete на большой фактовой таблице стали работать плохо. Плохо, это не как в кликхаузе или вертике, но по сравнению с кластером на старте - стало гораздо хуже. Ради интереса посмотрел что с ресурсами - нигде не нашел затыков, цпу, память, диски - все чистое. Посмотрел бакетирование ради интереса - и не понял вот этих цифр на картинке. Почему оно так - не понимаю. Тут есть документация.

И теперь даже не понять, это регрессы обновлений кластера с версии на версию, старые проблемы миграции дисков, или просто общий регресс кластера (под нагрузкой). Видимо надо поднять новый кластер и потестировать с нуля.
2😭1
Change data capture

Потратил субботу на разбирательство с текущими сервисами для репликации из наших mysql в starrocks. Что видеть отрадно - появилась целая куча инструментов, которым больше не нужна кафка посередине (ну просто зачем иметь еще один лог когда ты уже читаешь из лога, а уж передавать инитиал снепшоты через кафку - отдельный вид мазохизма). Что плохо, они все сделаны на базе debezium, а значит если по каким-то причинам не подошел один, то и все остальные не смогут помочь.

Что может из коробки синкать с настройкой одного конфига и без плясок вокруг: apache seatunnel, apaсhe inlong. Что не умеет в cdc, но может вам помочь например при transaction outbox - sling. Что имеет ограничения на ровном месте и "интересные" настройки - risingwave (внутри дебезиум, но фишки из остальных сервисов в нем будут за деньги).

Итогом дня стало то, что нам не подошел ни один из них :( В принципе даже если форкать, то возврат кода в апстрим потом не примут никогда. С учетом отсутствия джавистов в компании выходит, что нам проще дописывать наш внутренний репликатор на golang, который уже 5+ лет перекладывает данные в vertica. Печалька, хотелось другого окончания. Причны подробно уже затащу в доклад на смартдате, а то надо же что-то там интересное рассказать :)

ps на картинке конфиг для seatunnel со всякими ухищрениями, которыми пытался обойти компанейские особенности
4🔥3👍2💩1
Прикольно было, весёлые уточки :)
2
4.0rc2

Supports Multi-Table Write-Write Transactions, allowing users to atomically commit INSERT, UPDATE, and DELETE operations. These transactions are compatible with both Stream Load and INSERT INTO interfaces, ensuring cross-table consistency in ETL and real-time ingestion scenarios.

Жду, ой как жду
1
Доклад в 10 утра в воскресенье, но циферки того стоили :)
6🔥1
SmartData 2025

Мне очень понравилось. Вот онлайн мне смотреть было не очень, а в офлайне на отлично. Атмосфера, люди, место, общение - классно. Послушал как надо делать, как не надо делать, увидел как люди начинают убегать от меня с криками "опять про старрокс" :)

Мой доклад мне не понравился, и наверное стоит на этом завершить карьеру спикера. Гештальт закрыт, не стоит делать то что не выходит. И поэтому даже как-то неудобно ни презент для спикеров принимать, и время людей жалко :(

А вот что понравилось, так это офигенный доклад от Артёма Маркина "DWH на StarRocks: год в продакшен". В нем все здорово - подача, материал, и вообще итоговое решение проблемы. Был оракл со своими проблемами, стал старрокс с дбт - заложили огромный запас под рост, ускороили работу на порядок, дёшево. Жаль, что видео в открытом доступе долго ждать.

Было и много другого интересного, просто тематика канала чуть в стороне. И sale, и ozon, и много чего.

Всем спасибо большое за общение, очень был рад пообщаться вживую после чатов, вы классные. Увидимся :)
👍166🫡1
Большой релиз с красивой цифрой. Подробности можно посмотреть здесь. К сожалению, в блоге более подробной информации нет (например почему 4, а не 3.6), но есть видео от Челси с саммита на ютубе. Приятно видеть прогресс, но обновляться мы сейчас конечно не будем :)

А кто не читал, вот тут от Владимира Озерова статья-бенч трино/импала/дорис/старрокс. Очень нравится такая подача материала, когда не только цифры показывают, но и объясняют почему они такие в том или ином движке. Как обычно высший класс.
🔥5👍2👏1🤡1
Airflow 3 и StarRocks 4

А вот подоспела и статья в блоге про выход 4 версии для тех, кто как и я не любит смотреть видосы: https://www.starrocks.io/blog/starrocks-4.0-now-available
Написано красиво. Единственное, что мне пока не понятно - это политика релизов. В статье на сайте пишут про поддержку 3 последних минорных версий, но ветка 3.3 все еще является stable (и мы на ней сидим :). В связи с выходом новой мажорной версии по идее стейбл должен уйти на 3.4. Видимо не все сразу и надо подождать еще недельку или две до объявления и окончания поддержки 3.3.

А вот кто совсем не умеет в новые мажорные версии, так это Airflow. Кто помнит релиз второй ветки - так вот с третьей дела на старте (полгода прошло уж) обстоят еще хуже, намного хуже. Появилось множество новых сущностей, которые вроде как должны были повысить отказоустойчивоть и масштабируемость сервиса, но получилось как обычно. Даже в 3.1 - чрезвычайно нестабильная система, особенно новые api-server. Утечки памяти, множество багов везде, поломанные рабочие решения, неудачный гуй. Не верится, что компания, которая зарабатывает на этом продукте деньги могла допустить вот такой релиз, как будто первый год этим занимаются.

В итоге вместо улучшения хоть какого-то: надежности, простоты для стендов разработки - мы получили ведро недостатков, но со змейкой и думом в плагинах. Вангую, что дальше можно идти только по накатанной, и мы ждем новое поколение оркестраторов без этих проблем (не кестра, не дагстер, не перфект - у этих ребят вся архитектура похожа на аф и проблемы где-то рядом). Часто думаю про оркестратор своей мечты, но похоже что в рамках питона он будет не отличаться от аф в силу ограничений экосистемы, а вот на других языках можно придумать интересно...
🤔52
DevOpsConf 2026

Примерно год назад ко мне в почтовый ящик пришло письмо с приглашением выступить на конференции DevOpsConf 2025, ну знаете такая общая болванка на всех. А я подумал - почему бы и нет, и откликнулся. С этого начался мой год конференций и комфортной жизни спикера :)
В этом году я познакомился с очень интересными людьми, посетил Екат (мне очень понравился), и дошел до смартдаты. Но самое забавное, что так и не выступил на этой самой первой конфе, так как резерв не случился 😂

Так вот, открыт набор докладов на следующий 2026 год: https://cfp.devopsconf.io/
Если вам есть, что рассказать - то очень советую. У Онтико очень классная подготовка к докладам - вас научат выступать, готовить хорошие презы, прогонят через обучение и всячески будут помогать. Ну и остальные пре-вовремя и афтер пати звездного состава тоже включены.

ps да, знаю, что не совсем в тематику, но мало ли :) я то начал с этого
👍7
Работа мечты

Вот ссылка: https://spb.hh.ru/vacancy/124275143

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

А не вот эти ваши жсоны по кругу гонять :)
🔥5
Apache Livy & Spark 3.5.7

Вокруг все так любят постгрес, так любят, что в итоге фикс корректной работы с timestamp через JDBC есть только в спарке 3.5.0. Все в костылях, но любовь до гроба :)

А чтобы обновиться до этой ветки на нашем ванильном хадупе надо обновить Livy с версии 0.7 до... Надо сказать, что мы пересобирали старую версию для поддержки нашего 3 спарка. Но очередной обновление скалы все сломало, не считая заодно проблем с поддержкой python >3.8. Поэтому воодушевившись вот этим ишью я пошел искать свежий релиз, а его нет :)
Два топа, 3 прихлопа, сборка 0.9 бранча на маке м3 (надо апнуть версию maven-jar-plugin и maven-assembly-plugin >3.0.0) - и вот желаемый архив на руках. Не забыв поправить забытую кавычку в башнике для запуска в bin/, все завелось с полпинка. В качестве награды в новой версии добавили LIVY_CLASSPATH, куда наконец-то можно пробросить класпас хадупа вместо копирования жарок внутрь.

В целом приключение на пару дней. Надо подметить, что вот эти старые сервисы из наследия HDP сейчас выживают в основном за счет ребят из Китая - посмотрите контрибьюторов ливи, цеппелина. Нормальные стабильные сервисы, в которых нет и не будет уже суперфич, но пользоваться удобно.
Ну и глядя на такого рода баги в спарке для самой популярной бд - не так все плохо в СР, примерно как у всех :)
🔥4
Рынок труда и всякое

К концу года совсем иссякли силы на всякую активность :( Очень хотелось провести закрывающий митап с историями неуспеха и коммерческого успеха, но прям совсем сил не осталось, к сожалению. Ну ничего, в новый год с новыми радужными ожиданиями.

А пока хотелось немножко поговорить про текущий рынок труда на просторах РФ, а он поменялся. Делаю выводы из наблюдения за ХХ и по результатам трехмесячного висения нашей вакансии там же.

Про StarRocks: вакансии есть, примерно десяток набирается. Часть из них по итогам коммерческого внедрения в ближнем зарубежье, часть по внедрениям опенсурса (привет оцрв, Артем, мы). Часть вакансий достаточно интересная для опытных ребят типа продакт менеджера дата платформы МТС или деврела для DIS. Джуны, мидлы и сеньоры тоже востребованы как исполнители на уже внедренные системы, или эксперты для выбора (тот же Х5 поменял требования в своих вакансиях и там снова появился может быть временно SR). Конкуренция с Apache Doris - по нему нет ни одной вакансии, нет такой системы :)

А если говорить вообще про рынок дата инженеров в РФ, то вот такое: наша очень простая вакансия набрала уже больше 150 откликов на ХХ, и такого не бывало никогда. Отклики из больших компаний идут прям массово, маленькие не отстают. Из 150 человек только 2 человека не имели работу, все остальные ищут не отходя от станка. Джуны с резюме мидлов, мидлы с резюме сеньоров, чаще всего смена работы раз в год и менее.
Мне тут кажется, что рынок поменялся очень сильно и вот эта старая парадигма умерла. И бюджетов на такие подвиги не осталось, и данные не стали новой нефтью. А может это просто брюзжание старпера - мне на пенсию пора по меркам айтишечки :)
👏7👍3🔥32🤝2🫡2
Стоматологи, количество релизов и Hive 4

Вчера оказался в кресле у хорошего врача-стоматолога, и делать то в нем особо нечего кроме сна или подсчета количества предметов, которые необходимы при современном лечении зубов. Врач хороший, а число используемых штук зашкалило за несколько десятков (если не сотню) - резиночки какие-то, кольца, салфетки, буры, наждачка, бедный мед брат устал бегать по комнате и ящичкам, иногда убегая на общий склад. Так а почему хороший? А мне показали фото до, в процессе и после - и правда под пломбой не было видно кариеса. Вот мне и подумалось, что хорошего специалиста отличает умение использовать инструмент по необходимости. Решил спроецировать на платформы данных - и получается не очень хорошо :( Может быть потому что такой избыток инструментария помогает эффективно решить задачи хорошему профи, а остальных напрягает. Данные мы вынуждены разбрасывать везде, то есть при куче баз типа текущего хадуп+какой-нить гринплам + какой-нить кликхауз - это требует от специалиста знать их все хорошо и зачем они все нужны, да еще жрут ресурсы. В отличие от мудрой штучки у врача, которую он волен использовать, но может и обойтись. И она не будет есть ресурс кроме вложенных инвестиций.

А между тем созрело время обновлять наш инстанс StarRocks, и если честно разнообразие версий делает этот процесс сложным. Отход от позиции "держим в разработке 3 последних минорных версии" смущает - ветка 3.3 до сих по стейбл и до сих пор получает обновления. 3.4 и 3.5 выглядят одинаково, ну 4 слишком горячая. Как-будто не хватает воли закрыть 3.3 и ехать дальше, а ведь это опенсорс - никаких гарантий никто и не обещал :) В итоге обновились на 3.4.9. Очень ждем 4 ветку, так как без multiquery transactions жизни с нормальным продовым CDC особо нет.

И раз уж пост состоялся про версии всякие и инструментарий, то неожиданно для себя узнал о релизе Apache Hive 4.2: с поддержкой 21 жабы и активного допиливания работы с айсбергом. А HMS они перевели на 17 жабу еще в прошлом релизе, в том числе выпустив его в докере. Не знаю кто вдохнул в него жизнь, но кажется, что старичок еще может побороться на этом попроще.
9👾1
Итоги обновления на 3.4.9

Все в роллинг обновлении прекрасно, кроме вынужденного двойного рестарта всех нод кластера. Ситуация: ушла команда на обновление до новой версии и кластер начинает перегружать ноды по 1 штуке за раз для своего типа - то есть 1 be + 1 fe в нашем случае. Таким образом примерно через 3-5 минут у вас на руках вроде бы обновленный кластер.

Как обычно есть НО. Не знаю внутренней реализации общения нод в кластере с нодами разных версий, но видимо что-то там не совсем корректно работает. По метрикам мы получаем полностью рабочий кластер, данные разложены ровно, запросы идут будет проблем, но если выполнить ту же команду SHOW BACKENDS, то у всех нод кластера время last heartbeat на момент рестарта вместо текущего времени, а половину нод без данных. Впору хвататься за сердце :) К этому добавляется такие графические эффекты, как попытка текущих нод be найти старые ноды по старым ip адресам (хотя в кластере вместо ip используются fqdn).

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

Времени выполнения регулярных заданий dbt на ветке 3.4 по сравнению с 3.3 уменьшилось на 10-15%, по потребляемым ресурсам изменений нет. Вроде бы неплохо получилось :) А может это просто ноды в кластере перегрузились и ресурсы почистили, до этого аптайм был несколько месяцев...
👍72👾1
Цель - найти на картинке себя

Прикольно, получил награду как амбасадор StarRocks в нашем локальном комьюнити :) Интересно что будет в следующем году.
🔥24