cookie

Utilizamos cookies para mejorar tu experiencia de navegación. Al hacer clic en "Aceptar todo", aceptas el uso de cookies.

avatar

Я – Дата Инженер

💻 Как войти в IT? 💵 Как стать Data Engineer 🗄 Что такое Big Data и кто ей управляет? _____________________________ Делюсь опытом и полезными материалами. Написать мне @halltape

Mostrar más
Publicaciones publicitarias
1 258
Suscriptores
Sin datos24 horas
+427 días
+16630 días

Carga de datos en curso...

Tasa de crecimiento de suscriptores

Carga de datos en curso...

Photo unavailableShow in Telegram
🔈 ПОДПИСЫВАЙСЯ НА МОЙ BOOSTY! https://boosty.to/halltape_data/purchase/2729017?ssource=DIRECT&share=subscription_link Я оформил Boosty и теперь он доступен по ссылке! https://boosty.to/halltape_data/purchase/2729017?ssource=DIRECT&share=subscription_link Что вы получаете по подписке: ⭐️ Чат в Telegram (Расскажу про зарплаты на рынке, вопросы с собесов, красные флаги в команде и компании, солью все полезные материалы многое другое) ⭐️ Созвоны в Discord (Еженедельно созваниваемся и я рассказываю всю правду про профессию без розовых очков, а еще отвечаю на ваши вопросы многое другое) - ЗАПИСИ СОЗВОНОВ БУДУТ ДОСТУПНЫ! В планах: ⭐️ Видео уроки с обзором тех технологий, о которых никто нормально в сети не рассказывает (например как пользоваться Spark или YARN) ⭐️ Устраивать сходки в МСК, СПБ 300 руб/месяц Официальный старт планирую 1 июля, но можно залетать уже сегодня. Ближайший созвон предлагаю уже 6 июля! Темы для созвонов: ⚫️ Какую зарплату просить на старте? ⚫️ Сколько зарабатывают действующие DE? ⚫️ Расскажи типичный день DE? ⚫️ Как не спалиться в том, что не шаришь? И надо ли? ⚫️ Крутить опыт или нет? Как попасть на первую работу? ⚫️ Пет проекты. Надо или никто не смотрит? ⚫️ Что такое Scrum, kanban, agile? Это вообще нужно? ⚫️ Что надо, а что точно не стоит учить для DE? И куча еще других тем, которые вы сможете предложить сами! https://boosty.to/halltape_data/purchase/2729017?ssource=DIRECT&share=subscription_link
Mostrar todo...
🔥 17👍 4💩 3👎 1💯 1
Photo unavailableShow in Telegram
💡 Проблема мелких файлов для бабушек! Ч1. Откуда берутся мелкие файлы, почему это плохо и как этого избежать? 🖥 Прочтем Спарком csv файл. Он изначально один. Без разницы какого размера. Спарк загружает этот csv файл, дробит на мелкие кусочки и раскидывает по разным серверам, чтобы потом это все параллельно считать. Можно считать, что он делит таблицу, как колбасу, где один кусок это одна или несколько строк. 🎮 Пусть он там фильтрует, группирует данные, а потом еще считает кол-во строк. Все это время он гоняет строки по сети между серверами. Именно перемешивает. И теперь, когда мы начинаем сохранять данные (без разницы в таблицу, в parquet или csv), то Спарк не склеивает все эти куски в один файл. Он вам выгружает в том виде, в котором они раскидались на последней стадии трансформации. ⬇️ В итоге, если у него после вычислений все разбито на 10 кусков, то и сохранится 10 файлов. В каждом будет свой набор строк. А если 1000, то и сохранит вам тысячу файлов. Чтобы получить один файлик, нужно написать repartition или coalesce перед сохранением. Repartition может собрать все куски и склеить их в то кол-во, которое вы ему укажите. Можно как уменьшить, так и увеличить кол-во. При этом он старается склеивать на равнозначные кусочки. Это вызывает доп перегонку данных по сети. Но зато у вас нет перекоса, что в одном файле будет 80% данных, а в другом 20%. Coalesce работает только на уменьшение и старается избегать перемешивания. Если укажите coalesce(1), то спарк с минимальными потерями все склеит в один файлик и сохранит на диск. Но не надо это делать с огромными таблицами. Это к вопросу про чтение данных. Если коротко: Чтение таких таблиц очень долгое. ℹ️ Вывод. Спарк сохраняет в том виде, в котором вычислял. Ему можно указать, чтобы он склеивал в один кусок или дробил на определенное кол-во частей и сохранял в таком виде на диск. Большие данные склеивать в один файл не стоит. А вот почему мелкие файлы это именно плохо, об этом в следующем посте!
Mostrar todo...
👍 16🔥 4🤣 1
Photo unavailableShow in Telegram
🧊 Spark для бабушек! Итак, на spark пишут код. Он похож на python + sql. Spark нужен для того, чтобы считать очень большие данные. Делает он это распределенно, т.е. на нескольких серверах и параллельно! Pandas например так не умеет, он сразу умрет. ⚫️ Представьте у вас таблица 1Тб. Все Excel, питоны и пандасы уже не могут ее прожевать. Тут приходит на помощь Спарк. Причем это не просто "библиотека", это именно движок. Т.е. мы можем указать Спарку буквально сколько памяти, ядер процессора, степень параллелизма вычислений и многое другое. Мы буквально можем контроллировать все процессы сами. Причем для этого есть даже специальный Веб интерфейс Spark UI. Там можно смотреть, на какой стадии сейчас крутятся данные, на каких серверах, сколько памяти это сжирает и как именно перемещаются данные по сети! 🟡 Так вот вернемся к таблице в 1Тб. Давайте прочитаем эту таблицу и присоединим к ней маленькую табличку в 1Мб. Важно отметить, что Спарк читает эту таблицу с диска, делит ее по своему на части и раскладывает по серверам в оперативную память. Если что-то не помещается, то он может часть сгрузить к себе на диск. Т.е. наша огромная таблица теперь физически раздербанена на куски. Но это позволит дальше делать параллелльные вычисления, которые ускорят процесс до сверхсветовой скорости. 🟡 Теперь представим, что нам надо присоединить таблицу размером в 1Мб. Спарку можно намеренно указать, чтобы он не дербанил эту мелкую таблицу на куски, а взял и отправил по копии на каждый сервер, где лежат куски от раздербаненной большой таблицы. Пусть каждая копия 1Мб локально сджойниться с небольшим кусочком от большой таблицы, а потом результат уже присылай нам на экран. Это позволяет избежать перегонки огромного кол-ва данных по сети во время операций соединений данных. Конечно, в спарке еще много преимуществ и фишек, но о них в другой раз! Для тех, кто хочет почитать поглубже, гуглите BroadcastJoin, getNumPartitions, repartition, coalesce
Mostrar todo...
36🔥 13👍 6💯 2
Чего вам не хватает? Сейчас настраиваю Boosty! Там будет все включено: *️⃣Еженедельные созвоны *️⃣Доступ к чату (расскажу вам всю поднаготную, будем делиться опытом, материалами, а может даже организуем сходку) *️⃣Доступ к собесам (что спрашивают, сколько дают денег, какой стек и подводные камни) Напишите, что еще хотелось бы видеть в подписке? Я решил, что будет одна цена 300 руб. Мне проще вести один чат и не думать об уровнях подписок. Если тема будет развиваться, сделаю уровни подешевле. Например только созвоны или только чат.
Mostrar todo...
👍 30🔥 8💯 3🤡 1
🧐 Каждый DE точно должен это знать! Речь идет про SCD - Медленно меняющимися измерения (Slowly Changing Dimensions) Если вы сейчас вообще не поняли, что это, то либо вам еще рано, либо прямо сейчас начинайте изучать. Например вы записали в хадуп данные о себе, что у вас 100 рублей на счете. А потом поняли, что хотите больше, а функции update таблицы нет! Нельзя поменять значение, где 100 рублей и поставить 1 000 000. Вам либо стирать таблицу и перезаписывать, либо фильтровать и перезаписывать, либо использовать SCD. Сейчас объясню что это. SCD позволяет вести историчность строки. Не просто поменять значение в ячейке, а именно контроллировать даты, когда меняется значение. При этом старое значение не удаляется. Если очень коротко про SCD в HADOOP: Каждая строка имеет еще один или два столбца с датой. Эта дата обозначает актуальность строки. Например я записал строку 1 июня со значением баланса счета в 100 рублей. А потом 15 июня я выиграл миллион и записал строку с балансом счета в 1 000 100 рублей. Получается у меня две строки с разными датами. И очевидно, что актуальной информацией является строка от 15 июня. При этом я смогу также посмотреть историчность. Это конечно касается Hadoop. Там можно только добавлять данные или стирать вовсе. Поэтому у меня в одной из витрин некоторые строки обновляются именно по такой логике. Есть реально поле, которое содержит в себе дату и чем она позже, тем актуальней данные)) Но по факту в транзакционных системах конечно можно идти дальше и хранить значение, как начала жизни строки, так и конца. Например у вас два столбца:
start_dt и end_dt
В start_dt пишите 2024-06-01, а в end_dt пишите 9999-12-31. И когда информация обновилась, то вместо 9999-12-31 (столбец end_dt) вы пишите 2024-06-14 (тут именно транзакция). И дальше записываете новую строку, где start_dt пишите 2024-06-15, а в end_dt 9999-12-31. Таким образом видно, когда строка обновилась (какие были данные и так далее). Добавлять таких строк можно сколько угодно. Плюс в том, что у нас историчность. Минус в том, что куча данных, дополнительных столбцов и стремительно растет нагрузка! Я рассказал именно про SCD2. Но их всего 5 версий. SCD1 - это просто изменить значение в ячейке. SCD3 - это когда у вас хранится предыдущее значение ячейки в соседнем столбце. SCD4 - это когда основная таблица перезаписывает данные, а старые улетают в отдельную таблицу Остальные SCD уже являются комбинациями предыдущих и сильно усложняют подход. Ну кстати мой пример с Хадуп не совсем прям SCD2, но подход похожий. Я просто считаю, что дата окончания актуальности предыдущей строки - это дата добавления новой. Прикрепляю скрины с Карпов Курсес про SCD. Мне очень нравится, как у них описано это в лекциях!
Mostrar todo...
👍 25🔥 12👎 2 1😴 1
Кто ты сейчас?Anonymous voting
  • Пока только учусь 👀
  • Прохожу собесы на Джуна 💬
  • Крепкий джун ✔️
  • Действующий Мидл 🔒
  • Прохожу собесы на Мидл+ 🛡
  • Сеньор/Лид/Господь 👑
0 votes
Photo unavailableShow in Telegram
💵 За правильный ответ даю оффер на лям! Сходу отвечаем на вопросы HR:
1. Почему уходишь с нынешней работы? 2. Сколько хочешь денег? 3. Что для тебя красный флаг в команде?
К слову вы обязаны спрашивать и ту сторону. Можете прямо проводить собеседование им. Пусть рассказывают о себе также подробно, как и вы. Вам потом с этими людьми работать между прочим.
1. Расскажите типичную задачу на работе. Подробно, где пишите код, кто его проверяет или так без код ревью в прод? 2. Команду собираете с нуля или на замену того, кто ушел? А DevOps будет, который будет сервисы поднимать или на меня повесите? 3. Что из стека в вакансии вы реально используете, а что в планах использовать?
Очевидно, что не только вы можете быть с сюрпризом, но и команда. Поэтому прагматичней подходите к таким делам. Что, если команда разваливается или вы будете там единственным спецом, а может это вообще будет команда из стажеров и никакой экспертности. Спрашивайте про бюрократию. Про системного аналитика. Короче ковыряйте больные места у работодателей. Иначе в будущем их придется ковырять вам. Пишите в комменты свои вопросы рекрутерам и командам на собесе!
Mostrar todo...
👍 12💯 6🔥 3👾 1
Photo unavailableShow in Telegram
🥲 Однострочники, ваш выход! Когда я на степике решал задачки, то меня бесили однострочники в комментах. Эти люди предлагали свои решения в одну строку, когда ты написал 30. В одной строке есть колоссальный плюс до того момента, пока она читабельна. В ином случае, решение лучше расписывать и не выкобениваться. Надо учитывать и время, которое потратит человек, когда будет читать ваш гениальный код! Задача: Надо вывести 1, если из первой строки можно собрать вторую строку. И 0, если нельзя В комментах интересны самые короткие решения! Но можете делиться и полотнами))
Mostrar todo...
4👌 3❤‍🔥 2🔥 2
👩‍💻 Индексы в PostgreSQL! . b-tree | hash | brin | gist | sp_gist Для тех, кто прям преисполнился в постгре, есть ДВА ЧАСА класного материала про индексы в БД! Тема большая, словно океан, поэтому всегда можете возвращаться к этому докладу в течение обучения и работы! 🔗 И давайте так. Если вкатываетесь в IT, то знать какие индексы бывают ХОРОШО. Но не надо убиваться по каждому из них. Во первых не запомните, а во вторых на первой работе у вас может быть вообще spark, вместо postgre и тогда эта информация забудется еще быстрее. Всегда успеете вернуться сюда и посмотреть!
Mostrar todo...
Андрей Сальников — Индексы в PostgreSQL. Как понять, что создавать

Ближайшая конференция — Joker 2024, 9 октября (Online), 15–16 октября (Санкт-Петербург + трансляция). Подробности и билеты:

https://jrg.su/Ypf1HW

— — Любой разработчик знает, что индексы — это мощный инструмент, который может улучшить работу запросов в базе данных и, как следствие, сократить отклик приложения или сервиса на внешние запросы. Но опыт Андрея, как ДБА, показывает, что у разработчиков нет понимания, какой, когда и из каких соображений можно создавать индекс. Спикер приведет простые и понятные примеры, которые вы сможете легко повторить на своих реальных базах данных. Скачать презентацию:

https://squidex.jugru.team/api/assets/srm/5a15546d-af53-46d4-be84-63367a5aaaf3/jpoint2022.andrei-.salsnikov.pdf

🔥 15👍 3 1💯 1
Photo unavailableShow in Telegram
👍 А вы бы их взяли на работу? Это не реклама, но видос годный. Есть два кандидата: Один с хардами, но мертвый, другой общительный, но слабый на харды. Кого возьмете, кого лесом пошлете?
Mostrar todo...
5🔥 3💯 1
Elige un Plan Diferente

Tu plan actual sólo permite el análisis de 5 canales. Para obtener más, elige otro plan.