пост писал еще будучи в Сбере в мае. Вариантов на самом деле намного больше. Вопрос какие инструменты у вас под рукой.
Постараюсь кратко. У меня есть витрина, в которую летят данные по кредитам, картам, ипотекам и куче других продуктов. Источники для каждого продукта разные, поэтому если я буду каждый день грузить данные всегда за вчера, а источник по картам еще не обновился или вообще умер, то у меня какие-то продукты загрузятся, а какие-то нет. Очевидно, что завтра и послезавтра данные по картам за позавчера, даже если они появились, уже никогда не прогрузятся.
Если конкретно, то пусть по кредитам у меня прилетело 500 000 строк, а по картам прилетело 0 строк (пустой датафрейм). Мне надо запомнить, что по картам в этот день было пусто, но ошибки не было. Скрипт успешно отработал. Или прилетело по картам всего 2 строки, а ожидается 10 000. Мне по-любому надо запомнить, что в эти даты был сбой!
Брать просто максимальную дату загруженных данных из витрины тоже нельзя. Ну он покажет, что данные актуальны. Но они ведь актуальны только по кредитам. А считать максимальнуюю дату по каждому продукту, учитывая, что таблица растет стремительно, будет все сложнее и сложнее.
Поэтому я подумал сделать маленьку таблицу, куда будут писать логи, типа
date, product_name, total_rows
Т.е. при каждом вычислении я пишу туда тип продукта, кол-во строк в датафрейме и дату загрузки. Тем самым у меня будет табличка из 2000-4000 строк ЗА ГОД! И это если у меня около 10 продуктов. Такое можно и в Excel открыть!
И при каждой загрузке мой спарк будет ходить в эту маленькую таблицу и просто забирать даты, по которым либо прилетело 0 строк, либо высчитывать разницу дат между сегодня и максимальной датой по каждому продукту в этой таблице. По ресурсам это просто смехотворно! Очень быстро.
Здесь можно конечно сделать историю с партиционированием в самой витрине по типу продукта и дате, тем самым объединить данные в рамках продуктов. Но тогда мы не сможем контроллировать кол-во строк. Нам придется вычислять отсутствующие даты в метаданных партиций со списком сгенерированных дат. Короче это сложно и не наглядно.
Тем более моя таблица с логами прекрасно может быть визуализирована в BI. Все метрики уже посчитаны, остается лишь написать очень простые запросы и при том очень легкие по отношению к СУБД. Т.е. мы буквально сможем контроллировать загрузку и актуальность данных по стольким продуктам, сколько сами пожелаем!
Кстати эта маленькая табличка должна иметь свойство обновляться. Если за 2024-06-01 у нас было 0 строк и мы сделали загрузку на 4 000 строк, то очевидно, что логи с нулем надо удалить. Здесь можно внедрить SCD, но мне историчность пока не нужна и я просто делаю group by и оставляю max(date).
Насколько понятно, что я написал?))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥8❤2🤯1
Anonymous Poll
27%
17 сентября
13%
18 сентября
14%
19 сентября
19%
20 сентября
31%
21 сентября
29%
22 сентября
👍1🔥1👏1
Обучаем разработчиков платформы данных и берём в команду ⚡️
Регистрируйся на онлайн-интенсив в Открытые школы Т1!
От тебя нужен только опыт работы от 6 месяцев в проектах разработки хранилищ данных и желание попасть в команду Т1.
Лучшим участникам предложим оффер в Т1 — крупнейшую ИТ-компанию страны по версии RAEX и CNews Analytics 2023🔝.
Зачем участвовать?
⚙️Приобрести ценный опыт. Одними из первых на рынке внедряем технологии для управления данными.
⚙️Получить поддержку наставников. Карьерные треки для выпускников Открытых школ позволяют быстрее вырасти в мидла.
⚙️ Работать в классной компании, где есть все айтишные бонусы (ДМС, удалёнка и крутые офисы, спорт и обучение).
⌛️ Быстрое обучение: 1 месяц.
💻 Гибкий формат: все этапы онлайн, занятия по вечерам.
Бигтех ждёт тебя, подавай заявку до 13 сентября!
Старт интенсива: 16 сентября.
Реклама. Информация о рекламодателе
Регистрируйся на онлайн-интенсив в Открытые школы Т1!
От тебя нужен только опыт работы от 6 месяцев в проектах разработки хранилищ данных и желание попасть в команду Т1.
Лучшим участникам предложим оффер в Т1 — крупнейшую ИТ-компанию страны по версии RAEX и CNews Analytics 2023🔝.
Зачем участвовать?
⚙️Приобрести ценный опыт. Одними из первых на рынке внедряем технологии для управления данными.
⚙️Получить поддержку наставников. Карьерные треки для выпускников Открытых школ позволяют быстрее вырасти в мидла.
⚙️ Работать в классной компании, где есть все айтишные бонусы (ДМС, удалёнка и крутые офисы, спорт и обучение).
⌛️ Быстрое обучение: 1 месяц.
💻 Гибкий формат: все этапы онлайн, занятия по вечерам.
Бигтех ждёт тебя, подавай заявку до 13 сентября!
Старт интенсива: 16 сентября.
Реклама. Информация о рекламодателе
👎9🤔5🔥4❤3👍3
21 сентября в 12:00
Мощнейший стрим, где я отвечу на часто задаваемые вопросы про то, как сейчас на рынке DE, с какими проектами залетать в IT и не поздно ли?
Плюс вы накинули мне в комментах кучу дополнительных тем, которые могут даже не уместиться и в ДВА СТРИМА!
Постараюсь ответить на бОльшую часть, а также зарядить вас мотивацией и пушечной энергией, чтобы вы уже в этом году или край ВЕСНОЙ следующего года залетели в профессию!
Также анонсирую менторство и в целом расскажу, кому оно может быть нужно, а кому и бесполезно!
Стрим будет под запись, поэтому не страшно, если пропустишь. Сможешь вернуться позже и посмотреть в записи!
P.S. Вы также сможете задать свой вопрос на стриме, если хотите!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤10👍2😁1
Когда я пришел на свою первую работу в качестве Data Engineer, то первое время я ВООБЩЕ НИЧЕГО НЕ ПОНИМАЛ!
Т.е. эта витрина очевидно собиралась из каких-то сырых данных (таблиц), потом соединялась с другими по своей сложной логике, потом обновляла данные из другой таблицы и черти что еще! Я, пришел, такой зеленый, смотрел на код на Spark и не понимал даже откуда начать копать, чтобы разобраться...
🏗 При этом сборка витрины – это же ведь просто написанный код. И он часто меняется, дополняется. В некоторых источниках могло измениться поле (столбец), поэтому надо переписывать часть блока кода. А иногда могла замениться и вся таблица источник!
Как вы понимаете, документация не может так быстро корректироваться. Это надо еще отследить, передать в задачи системному аналитику! Я за то, чтобы документация писалась хотя бы на полгода жизни. Иначе в ней смысла абсолютно нет.
Но не везде так сложно. Умные люди придумали решение этой проблемы. Одно из решений – это DataHub. Оно open source, поэтому можете поставить у себя локально. Визуально это просто интерфейс, в котором вы можете проследить, как собирается табличка и из каких источников. Более того, можно увидить имена пользователей, типы полей, их наименование и разную статистику. Короче максимально удобная вещь, особенно при онбординге на новом месте!
Будете на собесе, можете спросить, есть ли у команды что-то похожее на DataHub! Кстати, из тех компаний, которые используют DataHub – это компания Сравни (кстати можете подписаться на их TG канал). Они даже статью отдельно об этом написали на Хабре! Да и в целом рекомендую на них подписаться. Довольно прогрессивные ребята в плане data стека.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19👍13🔥5😁2
В 12:00 стрим по московскому времени. Отвечу на ваши вопросы, расскажу про рынок DE, стек, а также анонсирую менторство!
Будет запись, поэтому сможете посмотреть потом в записи.
По времени не дольше двух часов.
Кстати, вы еще можете накинуть сюда дополнительных вопросов в комменты, пока есть возможность!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥3
Запись СТРИМА
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13
Что делать c Youtube. Где теперь смотрите контент?
Anonymous Poll
11%
1%
18%
79%
18%
4%
Свой вариант (в комменты)
Это субботний стрим с лучшей картинкой + лучше звук!
➡️ Смотреть здесь
У меня Youtube работает нормально только через YOTA. Т.е. когда я раздаю интернет с телефона, то ютуб работает нормально. А вот с домашнего провайдера все печально. Но пока ютуб остается лучшей площадкой для распространения и просмотра контента. Я конечно гружу параллелльно на альтернативные площадки, но это в целом не имеет смысла. Только, как хранилище видео. Просмотров и трафика там нет.
Я на ютубе с июня 2008 года и помню все его интерфейсы. И просто взять и заменить его не получится. Там уже загружено невероятное кол-во контента + система рекомендаций.
Ну все равно подписывайтесь на ютуб канал!
https://www.youtube.com/@halltape/videos
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
РАЗДАЮ БАЗУ И МОТИВАЦИЮ ПО DATA ENGINEER!
Стрим в канале https://t.iss.one/halltape_data
Раздаю базу и мотивацию для тех, кто хочет залететь в профессию, но не знает с чего начать или столкнулся с блокером
Полезные ссылки:
Telegram канал: https://t.iss.one/halltape_data
Twitch канал: https://www.twitch.tv/halltape…
Раздаю базу и мотивацию для тех, кто хочет залететь в профессию, но не знает с чего начать или столкнулся с блокером
Полезные ссылки:
Telegram канал: https://t.iss.one/halltape_data
Twitch канал: https://www.twitch.tv/halltape…
👍13🔥4❤3
Записаться здесь
Приходи на менторство, если есть такие вопросы:
📌 Сколько просить денег на собеседовании?
📌 Крутить ли опыт или нет?
📌 Идти на стажировку или сразу на джуна?
📌 Берут ли после 30, 40, 50 лет в IT?
📌 Не знаешь с чего начать изучение
📌 Не понимаешь какой пет проект нужен и нужен ли он вообще
📌 Запутался в теории и уже не понимаешь, что надо знать на джуна
А может у тебя есть вопросы конкретно по технологии. Например тебе неясно, как работает Spark, чем он отличается от Pandas, а может ты до сих пор не понял(а), что такое Hadoop и как он связан с HDFS? Или может тебе хочется понять, что именно делает (прямо руками) на работе Дата Инженер!
Со всеми этими вопросами ты можешь писать мне! Разберемся!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👎12👍10😁3❤2
BI разработчик в Магнит Tech
Проект: СУСМ ОЦО (отдельное направление)
4 дашборда на данным момент
Отчет аналитика SLA
Цель:
Объединить операционные показатели ОЦО из различных систем в единую структурированную базу данных для мониторинга полной нагрузки на персонал и оперативного перераспределения ресурсов в случае форс-мажоров.
Задачи:
-разработка и развитие BI-отчетности ОЦО, -миграция отчетности в импортозамещенную BI-платформу
Стек технологий:
Qlik sense (это важно), yandex clickhouse, apache superset
Ждем от тебя:
-опыт работы в bi-инструментах (qlik, superset,pixbi)
-опыт разработки сложных моделей данных
-опытный пользователь sql. html css, java script приветствуются
-самостоятельность
Что предлагаем:
-очень интересный сложный продукт с большим количеством пользователей
-формат работы: полная удаленка, при желании – гибрид/офис
-оформление в IT-компании, аккредитованной в Министерстве цифрового развития
@Fedotovais
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👎3🔥3🤔1
Смотрите. Вот вы прочитали данные из источников, трансформировали и если просто сохраните данные в таблицу, то физически она будет в виде кучи мелких файлов формата .parquet. Если это таблица за полгода, то будут сотни миллионов мелких файлов, что для HDFS очень плохо. Нужно стремиться, чтобы файлы были около 128Мб!
Что надо делать?
Если у вас инкрементальная загрузка за один день, после всех трансформаций пишете
df.repartition("date_column") - "date_column" это столбец с датой
Тогда Спарк перемешает все данные в памяти и склеит их в один файл. Тут нужно будет посмотреть. Если файл будет создаваться размером от 10 до 130Мб, то в целом можно так и оставить.
Если будет 1Гб, то можно в repartition добавить цифру 8. Тогда он будет разделять на равные кусочки по 128Мб.
Дальше, после того, как за один день у вас все укрупнено, пишите partitionBy("date_column"). Тогда для каждого дня создается отдельная папка.
В итоге у вас столько папок, сколько загружено дней. Одна папка = один день. И внутри каждой папки один и несколько крупных файлов.
В итоге при чтении таблицы, можно читать только определенные дни без FULL SCAN и сами файлики внутри папок не будут нагружать HDFS + их чтение тоже ускорится, так как это чтение одного файла, а не тысяч мелких.
Чтобы понять, насколько много у вас файлов и папок в HDFS есть такая команда:
hdfs dfs -count -v hdfs://hive/schema/table
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥8❤5👎1
Как по залету? Будем праздновать?
Anonymous Poll
10%
Залетел в IT летом 2024
10%
Прохожу собесы сейчас
3%
На руках оффер. Выхожу на работу
20%
Только начал учиться
10%
До 2025 пока не планирую собесы
38%
Залетел в IT раньше 2024
10%
Другое
👍6❤2🔥2
Уверен, среди вас есть люди, кто хочет начать вести свой телеграм канал. Но вы не знаете, как собрать первых подписчиков, о чем писать и будут ли тебя читать..
Сначала найти спрос, потом сделать предложение. Не наоборот. Если вы думаете, что рассказы про вашу жизнь или работу в целом могут быть интересны людям - это заблуждение.
Дальше я только обслуживал этот спрос, создавая контент. Дополнительный трафик у меня идет с YouTube. Там люди переходят с моего канала и с подкастов. Есть спрос на то, что такое DE, как войти в IT или как сменить направление в IT. Пока этот спрос существует, я могу его обслуживать и получать аудиторию.
Более того. Если выбранная ниша еще и на хайпе, то она сама будет толкать вас наверх, даже если качество вашего контента будет невысокое. В период золотой лихорадки сами знаете, что продавать.
Как выбрать нишу?
Поискать, что уже есть на рынке и оценить объем людей. Очевидно, что в DE нельзя собрать канал на 1млн человек. Столько просто нет специалистов. Но 10 владельцев бизнесов в вашем канале может принести больший профит, нежели 1млн школьников.
Люди приходят в ваш канал и вам нужно дать им реальную ценную инфу. Им пока что плевать на то, какой вы талантливый. Закройте им их боль, а потом может у них появится к вам симпатия. Вы работаете наемным сотрудником и обслуживаете спрос ваших подписчиков.
Вот вам пример. Я могу создать канал, в котором буду рассказывать, как я пишу посты, как монетизируется канал, как запустить бусти и в целом привлекать аудиторию.. Часть из вас может перейти туда и вот мои первые 10-20–30 человек. Я закрываю потребность, потому что знаю, что она есть.
Не наоборот. Кстати, если вам интересен формат бусти в IT и насколько он шире по контенту, чем основной канал, то можете перейти по ссылке и подписаться.
https://boosty.to/halltape_data
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2🔥2