Инжиниринг Данных
23.5K subscribers
1.98K photos
56 videos
192 files
3.2K links
Делюсь новостями из мира аналитики и карьерными советами.

15 лет в Аналитике и Инжиниринге Данных, 10 лет в MAANG

🛠️ dataengineer.ru | 🏄‍♂️ Surfalytics.com

№5017813306

Реклама:
https://almond-rule-130.notion.site/1199f595f76a8030ba1be1e607c9a8ce
Download Telegram
А вы когда-нибудь задумывались, кто отбирает доклады на ваши любимые конференции? Познакомьтесь с программным комитетом Practical ML Conf от Яндекса.

🔊 Ребята из программного комитета сообщают: число заявок превзошло все мыслимые и немыслимые ожидания. В некоторых секциях конкурс достиг 7 человек на доклад! Эксперты в ML сейчас отбирают самые классные темы и спикеров, так что будет очень много практичных и сочных выступлений. Рассказываем в карточках, кто состоит в программном комитете.

📝 Practical ML пройдёт 7 сентября в Москве, и, конечно, мы проведем онлайн-трансляцию.

👥 Узнать полный состав программного комитета и посмотреть доклады, прошедшие отбор, можно здесь.

И подписывайтесь на @Yandex for ML, там мы скоро начнём рассказывать о программе Practical ML Conf 2023.

#реклама
❤‍🔥10🐳4🗿3🤷‍♀2🌚2
Появилась ссылка на мое выступление на MDF Fest - Gentle vs Hardcore Data Engineer, Tue, Aug 22, 3:00 PM PDT
🍾23👨‍💻3❤‍🔥1🤷‍♀1🙊1
🌚25🎄4🙈2
А как жить? Хороший вопрос. Но это замечательное видео на 1,5 часа, Алексей простым и понятным языком рассказал про базовые и очевидные вещи, про которые многие знают, но все равно не делают. Если вы встряли, стоите на месте, то я вам рекомендую смотреть это видео каждую неделю, пока не измените свою жизнь.

Тут и про спорт, и про иностранные языки, вообще много все, и много лично перекликается с моим опытом и мировоззрением. Я давно понял, что винить никого не нужно в своих неудачах, просто надо делать. Важна дисциплина, важен спорт, важен английский язык, важны книги, важно отвечать за слова и помогать другие безвозмездно и далее по списку. А ведь у меня и синий пояс по джиуджитсу и по плавания разряд, а я все время не нахожу на качественный спорт из-за работы. Буду меняться. Обязательно еще раз послушаю видео. Ведь для успешного человека и для качественной жизни важны и голова и тело💪

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

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

В Канаде за такие слова можно, я имею ввиду про контекст видео, про успешных мужиков, чтобы лучше привлекать женщин😁 скажут вам что вы харасите их🫣
🫡46❤‍🔥19🐳3🍾3🙈3🙊1🤷1
Разве есть что-то более простое и понятное по алгоритмам?

Если вы никогда ничего не изучали про алгоритмы начните с книги Адитья Бхаргава «Грокаем алгоритмы» 📖 и вы не просто не будете бояться алгоритмов, вы их полюбите. В книге очень доступные объяснения и даже картинки есть!

Перечитываю не в первый раз, помогает быстро освежить теорию в памяти. В нашей семье два айтишника и две таких книжки, потому что хорошей книги много не бывает. Кто читал?
#айтишница
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥83🌭8👨‍💻2🍌1🎄1
Forwarded from Чартомойка
Мастерская, конечно, работа с цифрами и визуализацией.
А по зарплатам аналогичный график будет?
🙈47😭11🐳8🍌4🫡1🤷1
Очередной раунд собеседования успешно пройден. Спасибо современным технологиям, все как вы любите;)
🍾50🐳4🎄1
Давайте рассмотрим пример Databricks failure (Spark Job Crash) с ошибкой "Out of Memory" или если быть точней - "Executor heartbeat timed out." . Согласно графику из Spark Metrics, видно, что кластер находится под высокой нагрузкой и не вывозит (картинка в следующем примере).

Сам по себе job простой - SparkSQL join 2х таблиц, который никогда не выполняется.

Если посмотреть логи, то можно увидеть информацию про garbage collection (я недавно шарил презентацию про оптимизацию Spark и проблемы GC):

2023-08-03T18:41:59.782+0000: [Full GC (Ergonomics) [PSYoungGen: 2012308K->0K(4189184K)] [ParOldGen: 10396300K->8628584K(10632192K)] 12408608K->8628584K(14821376K), [Metaspace: 137299K->137299K(1181696K)], 2.9204327 secs] [Times: user=9.30 sys=0.16, real=2.92 secs] 
2023-08-03T18:42:13.326+0000: [Full GC (Ergonomics) [PSYoungGen: 874490K->0K(4189184K)] [ParOldGen: 9882410K->8734574K(10954240K)] 10756900K->8734574K(15143424K), [Metaspace: 137405K->137405K(1181696K)], 3.6903566 secs] [Times: user=11.13 sys=0.09, real=3.69 secs]
2023-08-03T18:42:24.128+0000: [Full GC (Ergonomics) [PSYoungGen: 614069K->0K(4189184K)] [ParOldGen: 10084503K->10137697K(12568064K)] 10698573K->10137697K(16757248K), [Metaspace: 137417K->137417K(1181696K)], 7.4416142 secs] [Times: user=24.72 sys=0.09, real=7.45 secs]
.
.
2023-08-03T18:45:48.356+0000: [Full GC (Ergonomics) [PSYoungGen: 2430464K->2430025K(4304384K)] [ParOldGen: 12567859K->12567859K(12568064K)] 14998323K->14997884K(16872448K), [Metaspace: 137502K->137502K(1181696K)], 11.6564436 secs] [Times: user=44.72 sys=0.18, real=11.66 secs]
2023-08-03T18:46:00.013+0000: [Full GC (Ergonomics) [PSYoungGen: 2430464K->2430025K(4304384K)] [ParOldGen: 12567859K->12567858K(12568064K)] 14998323K->14997883K(16872448K), [Metaspace: 137502K->137502K(1181696K)], 11.5040092 secs] [Times: user=44.30 sys=0.10, real=11.50 secs]
2023-08-03T18:46:11.518+0000: [Full GC (Ergonomics) 2023-08-03T18:46:23.979+0000: [Full GC (Ergonomics) [PSYoungGen: 2430464K->2430439K(4304384K)] [ParOldGen: 12567858K->12567858K(12568064K)] 14998322K->14998297K(16872448K), [Metaspace: 137503K->137503K(1181696K)], 11.9345509 secs] [Times: user=45.50 sys=0.16, real=11.94 secs]
2023-08-03T18:46:35.914+0000: [Full GC (Ergonomics) [PSYoungGen: 2430464K->2430451K(4304384K)] [ParOldGen: 12567858K->12567858K(12568064K)] 14998322K->14998310K(16872448K), [Metaspace: 137503K->137503K(1181696K)], 11.6086862 secs] [Times: user=44.60 sys=0.18, real=11.61 secs]


Время GC больше 10 секунд (real=11.50 secs) и так же видно что у Spark Executor не хватает памяти:

23/08/03 18:41:09 INFO UnsafeExternalSorter: Thread 50 spilling sort data of 2.2 GiB to disk (0 time so far)
23/08/03 18:41:21 INFO UnsafeExternalSorter: Thread 50 spilling sort data of 2.2 GiB to disk (1 time so far)
23/08/03 18:41:29 INFO UnsafeExternalSorter: Thread 50 spilling sort data of 2.1 GiB to disk (2 times so far)
23/08/03 18:41:36 INFO UnsafeExternalSorter: Thread 50 spilling sort data of 2.1 GiB to disk (3 times so far)
23/08/03 18:41:57 INFO UnsafeExternalSorter: Thread 50 spilling sort data of 2.0 GiB to disk (0 time so far)


Перед тем как наш джоб kaput, мы видим ошибку "GC overhead limit exceeded":

23/08/03 18:36:15 WARN TaskSetManager: Lost task 5.0 in stage 29.0 (TID 1738) (xx.xxx.xxx.xxx executor 0): java.lang.OutOfMemoryError: GC overhead limit exceeded


Так же несколько executers выдали ошибку exit status 52, что тоже значит "out of memory".

23/08/03 18:36:19 WARN TaskSetManager: Lost task 212.0 in stage 29.0 (TID 1945) (10.224.176.134 executor 0): ExecutorLostFailure (executor 0 exited caused by one of the running tasks) Reason: Command exited with code 52


Для начало можно было добавить в конфигурацию Spark Executer Java Option "G1GC as the garbage collection algorithm" и для sc.setSystemProperty указать KryoSerialize для "spark.serializer". Что это такое, лучше спросить у chatGPT;)
🌚7🙈1
Но это не сильно помогло и поэтому постаринке нужно просто увеличить размер Spark Executor, то есть у каждой ноды должно быть в 2 раза больше оперативки и ядер. Вообще это классика, на любую проблему я всем рекомендую удвоить compute.

PS Практически каждый день мне приходится иметь дело с ошибками Spark, и 60% из них это "Out of Memory". 20% это связано с настройкой сети, особенно если используется Databricks внутри виртуальной сети (VNET/VPC) и опцию Secure Cluster Connectivity (No Public Ip). То есть без доступа к интернету. Другие 10% это интеграция Databricks c BI, другими базами, Git. Ну остальное это уже по мелочи.

PPS Этот пример очень хорошо демонстрирует разницу между Snowflake и Databricks. Оба продукта для аналитики и консолидации данных. Но вот в Snowflake тюнить не надо, просто размер кластера удваивать иногда, а вот у Databricks можно и потюнить, но все равно потом удвоить кластер😜
💘5🦄2
Сегодня был супер плодотворный день! Для проекта #Surfalytics пробую разные форматы взаимодействия для максимального результата. Так как я все равно целый день работаю в офисе в выходной, то взял Никиту, у него уже хороший бекграунд по аналитике и SQL, но он пока не инженер. За два дня мы много прокачали кейсы по GitHub\Gitlab. Dbt модели, макросы для Redshift, использование командной строки, создания качественных Pull Requests, модели данных в Looker и еще по мелочи. А главное работали над реальным кейсом end to end решения.

Самое интересное, что решается не задача получения новых скилов, а повышения уровня заработка в 3 раза, чтобы можно было получить ипотеку в одном из самых дорогих городов мира, да и в целом качество жизни поднять.

Примерно такие вот цели у Surfalytics, помогать людям быть успешными и достигать результата.
❤‍🔥99🗿7
Смотрите, что я нашел - Learn Cobol in 1 Day. Мне кажется можно достаточно сильно прокачать свое резюме, если туда вписать знания Cobol. Вдруг вы скучаете и не знаете, чтобы вам еще поучить? А вдруг Cobol специалисты на вес золота? Это же какая возможность закрыть потребность рынка👌
🌚15🤷‍♂5🍾5🫡4😭3🗿3
Тут иногда обсуждения про недвижку, ипотеки и все что с этим связано. Можно провести вебинар на тему недвижки, например в Канаде? Как это работает, +\- и тп, может еще и из других стран получится. Мне кажется ипотека это важный элемент ИТ мира:)
Anonymous Poll
66%
Было бы интересно😍
34%
Совсем не интересно!😵
❤‍🔥9🌚3🌭1
Forwarded from Книжный куб (Alexander Polomodov)
Apache Kafka. Потоковая обработка и анализ данныз (Kafka: The Definitive Guide)

Все привыкли, что я читаю книги достаточно быстро, но вот с этой книгой получилось не так - пока я читал перевод первого издания вышло второе:) Первое издание вышло осенью 2017 году, а второе в конце 2021. Первое издание состоит из 11 глав

1. Meet Kafka - в этой главе мы встречаемся с главным героем и знакомимся с базовыми понятиями обмена сообщениями, дальше мы узнаем про основы Kafka: сообщения и пакеты, схемы сообщений, топики и партиции, producers и consumers, а также как выглядят сами брокеры и как они объединяются в кластера.
2. Installing Kafka - здесь авторы рассказывают про установку Kafka и на что обращать внимание при выборе железа (интересно, что во втором издании авторы делают больший акцент на переезде в облака)
3. Kafka Producers: Writing Messages to Kafka - здесь обсуждаются вопросы записи в Kafka (само название говорит о том, что эта система ориентирована на писателей:) ). Здесь говорится про конфигурацию producers, сериализацию и работу с партициями
4. Kafka Consumers: Reading Data from Kafka - здесь идет речь про то, как читать из Kafka и управлять оффсетом через разные варианты коммитов: автокоммит, асинхронный и синхронный коммит
5. Kafka Internals - эта часть интересна тем, кто любит заглядывать под копот. Тут идет речь про то, как работает сам кластер, как реализуется членство в кластере, что такое контроллер, как выглядит репликация, а дальше обработка запросов (на запись и на чтение), а дальше как работает физический уровень
6. Reliable Data Delivery - здесь обсуждаются гарантии доставки и как их обеспечить за счет совместной работы producer, Kafka и consumers. Здесь как раз можно почитать про семантику at least once и exactly once в Kafka
7. Building Data Pipelines - здесь кратко рассказывается про ETL пайплайны и работу с Kafka Connect (подробнее на эту тему рекомендую почитать Data Pipelines Pocket Reference)
8. Cross-Cluster Data Mirroring - про репликацию данных между кластерами и что лучше стягивать данные с удаленного кластера, чем их пушить в удаленный кластер (если есть такая возможность)
9. Administering Kafka - вопросы администрирования Kafka, здесь зарыто достаточно сложности, но эту часть определенно стоит почитать, если у вас Kafka в production:)
10. Monitoring Kafka - здесь обсуждаются вопросы мониторинга и они по большей части относятся к мониторингу java приложений и дальше использованию JMX для получения данных для мониторинга из процессов Kafka
11. Stream Processing - это интересный раздел про потоковую обработку, который подан очень сжато, но позволяет понять область применимости Kafka Streams API

На этом книга оканчивается, но есть смысл сразу пойти и изучить второе издание, чтобы оценить накопившиеся за пять лет различия:))

#Data #Databases #Engineering #SoftwareArchitecture #Software #SoftwareDevelopment #Management #Queue
❤‍🔥18👨‍💻3🍌1
🔔 На нашем канале DataLearn новое видео (да не прошло и пол года😊)

📕К нам в гости пришли ребята из WikiBot, которые создают сервис по созданию чат-бота с искусственным интеллектом для общения с клиентами.

Спикеры: Сергей Христолюбов и Роман Чуприков

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

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

🔥Инфа в общем очень сочная и актуальная.

Переходи и смотрите:
🔗 https://www.youtube.com/watch?v=8IRKx3d7tZY

Ссылки на ребят:
🔗https://WikiBot.tomleto.pro

Контакты:
🔗https://t.me/tom_leto
🔗https://linkedin.com/in/khristolyubov

#вебинар #datalearn
🐳20❤‍🔥4🙈1🙊1
AI, ML, data science, и что там еще есть в запасе buzz words? Все эти вещи всегда идут отдельно от BI, DWH, Data Engineering (ETL) с точки зрения имплементации и интеграции.

Ясное дело, все это должно работать вместе, с целью приносить ценность бизнесу, но на практике видим, что редко получается совместить все в одном продукте или команде, уже молчу про одного человека🫣

Картинку взял из Introducing Synapse Data Science in Microsoft Fabric. Я думаю такими темпами и Power BI превратится в аналог WeChat, в котором можно заказывать еду, оплачивать коммунальные платежи и бронировать путешествия.
🦄11❤‍🔥4🤷‍♂3
В Авито недавно выложили новые вакансии для аналитиков в разные команды.

➡️ Продуктовый аналитик в команду новостроек
➡️ Аналитик данных в команду новостроек
➡️ Старший аналитик продаж — команда Авито Авто
➡️ Аналитик данных в направление инцидент и проблем менеджмент

Как всегда, очень классные условия:
• Талантливая команда и возможность реализовать свои идеи в проекте с многомиллионной аудиторией;
• Мощное железо, дополнительные мониторы и всё, что нужно для комфортной работы;
• Прозрачная система премий;
• Личный бюджет на обучение, который можно тратить на книги, курсы и конференции;
• ДМС со стоматологией с первого дня, в офисе принимают терапевт и массажист;
• Возможность работать удалённо или сочетать работу из дома и офиса;
• Красивый комфортный офис в 2 минутах от метро «Белорусская» с панорамным видом на центр города, местами для уединённой работы, двумя спортивными залами, зонами отдыха и гамаками.

Выбирайте понравившееся направление и откликайтесь!

#реклама
🗿9❤‍🔥5🙈1
SQL + dbt - это прям классика современного аналитического решения. Хлебом не корми, только дай аналитику написать еще один CTE и конвертнуть десяток SQL запросов в dbt Dag (direct acylic graph). А если еще подключить Looker для insights, то можно вообще уйти в аналитическую нирвану.

PS ссылка на новую книгу (уверен будет Best Seller), это из разряда Pivot Tables Analytics in Excel 2005.
💘40❤‍🔥11🐳10