ar
Feedback
дата инженеретта

дата инженеретта

الذهاب إلى القناة على Telegram

мелкое — крупно, в глубоком разговоре мудрость приходит по вопросам сюда: @aigul_sea

إظهار المزيد
3 348
المشتركون
+424 ساعات
-127 أيام
+430 أيام
أرشيف المشاركات
Никто еще не попробовал эту штуку в dbt? https://www.getdbt.com/blog/dbt-labs-acquires-sdf-labs https://www.sdf.com/

Спасибо Алексею за полное и лаконичное пояснение 🧡, а я добавлю еще пояснялку с замерами по памяти ➖➖ Я взяла тестовый файлик с 1 млн строк и протестила все функции на нем по типу такого:
import sys

with open('1000000 Sales Records.csv') as f:
    f_list = f.readlines()

print(type(f_list))
print(len(f_list))
print(sys.getsizeof(f_list))  # in bytes
🔶Результаты🔶 🟣read() <class 'str'> 123 793 263 - длина строки 123 793 312 - размер в байтах 🟣readlines() <class 'list'> 1 000 001 - количество строк (+заголовок) 8 448 728 - размер в байтах 🟣файловый итератор <class '_io.TextIOWrapper'> 208 - размер в байтах ➡️ Получилось, что на выборке в 1 млн строк c длиной ~ 200 символов выигрыш по памяти между списком и итератором составил в 40k раз ➖➖ Если мы попробуем сделать такую же штуку с list(range(1000000)) vs range(1000000), то получим нечто похожее: 🟣list(range(1000000)) <class 'list'> 1 000 000 - количество чисел 8 000 056 - размер в байтах 🟣range(1000000) <class 'range'> 1000000 - количество чисел 48 - размер в байтах ➡️ Тут с чиселками выигрыш в 166k раз Вот и думайте #python_tips

for line in f: Использует итерацию по файлу построчно, без загрузки всего файла в память. Самый быстрый и экономичный способ по памяти, особенно для больших файлов. for line in f.read():: Читает весь файл целиком в память как одну строку, а затем проходит по символам, а не по строкам. Это значительно замедляет работу и требует больше памяти. for line in f.readlines():: Читает весь файл в память как список строк. Это быстрее, чем f.read(), но всё ещё требует загрузки всего файла в память. верно рассуждаю?

Крутые дата-каналы 🔥 Собрали тут с ребятами мини-папку с дата-каналами. У меня в телеге под 200 полезных каналов, что я уже выделила папку "cool" для лучших из лучших ❤️ В ней лежит больше половины из дата-папки, и я их частенько почитываю. Сейчас добавила оставшиеся, так что точно рекомендую и вам это сделать 🔥 https://t.me/addlist/a1B07iwrPxUxNWIy

Какой способ/ы выполнятся быстрее?
Anonymous voting

Праздничные выходные заканчиваются, начинаются большие возможности! Уже есть опыт работы с хранилищами данных, но хочешь прокачать скилы и открыть новые карьерные горизонты? Приглашаем на ИТ-интенсив в Открытые школы Т1! За месяц ты бесплатно получишь новые знания, практический опыт и шанс продолжить карьеру в крупнейшей российской ИТ-компании Т1!* А также: 🧩 бесплатное обучение в гибком формате: по вечерам, онлайн, из любого города РФ и РБ; 🧩 материалы от HR для прокачки резюме и подготовки к интервью в Т1; 🧩 знакомство с ИТ-командой, погружение в культуру, проекты и процессы; 🧩 поддержка опытных преподавателей и карьерный фаст-трек до мидла в Т1 для выпускников; 🧩 реальный шанс получить оффер в Т1 и работать в аккредитованной ИТ-компании с современным техстеком и классными бонусами: ДМС, удаленка и крутые офисы, спорт и обучение, митапы и ИТ-конференции, программы признания и развития для твоего роста. Сделай первый шаг в будущее — подай заявку до 10.02! *По выручке, по версии RAEX и CNews Analytics 2023. Реклама. ООО «Т1» ИНН: 7720484492. Erid: 2SDnjdg47fi

Про генераторы и итераторы Мне когда-то советовали прочитать книжку Лутца по питону, но я ее забросила. Теперь мне нечего было делать, и я снова решила к ней вернуться) И тут я как осознала! 📝 Сделаем одно упражнение. Возьмем список, отберем только четные числа двумя способами:
lst = [1, 2, 3, 4]
l1 = [x for x in lst if x % 2 == 0]
l2 = (x for x in lst if x % 2 == 0)

print(type(l1))
# <class 'list'>

print(type(l2))
# <class 'generator'>
А теперь дважды материализуем:
print(list(l1))
print(list(l1))
# [2, 4]
# [2, 4]

print(list(l2))
print(list(l2))
# [2, 4]
# []
Список хранит все в памяти, занимает оперативку, и мы можем его вызывать сколько угодно раз. А генератор закончился и всегда будет пустым🔲 ➖➖➖➖ Если мы попробуем сделать то же самое ручками, то есть еще интересный нюанс. Сделаем два итератора - для функции range и нашего генератора l2. Сначала вызовем первый, потом второй:
r = range(2)
i1 = iter(r)
i2 = iter(r)
print(next(i1))
# 0
print(next(i2))
# 0 - заново

l2 = (x for x in lst if x % 2 == 0)
i1 = iter(l2)
i2 = iter(l2)
print(next(i1))
# 2
print(next(i2))
# 4 - продолжили
🌀 Прикол в том, что у range итераторов может быть много, как будто они передаются по значению. А в остальных случаях как будто по ссылке - когда изменяется одна, изменяется и другая. По сути в тех случаях, когда нам не нужно несколько раз обращаться к одним данным, мы спокойно можем использовать генератор✅

Мы с вами чем-то не тем занимаемся https://music.yandex.com/album/33934790/track/132728259?utm_medium=copy_link

Как дела?) Отдохнули? С пн 13.01 стартует de zoomcamp! Кто еще ждет особого знака судьбы - он здесь🔶 🔮 Зумкемп - это бесплатная штука на пару месяцев, которую я сама проходила 2 года назад. Но не сделала финальный проект и не получила серт, потому что уже нашла работу и выходила на неё. Из стека у нас был GCP, BigQuery, Terraform, Spark, Kafka, Prefect, Postgres, Docker, dbt, Looker Некоторые штуки у меня не удалось применить, и я по итогу заменила гугл бакеты на yandex cloud + google drive 🎄 В этом году оркестратор с Prefect меняется на Kestra, parquet на avro, и вроде все ⚠️ Видосы, стримы, задания и общение с участниками - total english В общем, штука стоящая - тык

Сгенерила себе открытку, пусть тут полежит
Сгенерила себе открытку, пусть тут полежит

Новогоднее чудо✨ Мы тут релизились за 5 дней до нг (потому что можем себе позволить), и я испытала настоящие эмоциональные качели👌😭👌😭👌 Нужно было раскатать один сервис, но ситуация осложнилась тем, что: 🌌до релиза 3 дня 🌌еще нужны доработки 🌌я заболела и ушла на удаленку, а, кроме меня, никто глобально не знал, что нужно доделать и кто с чем может помочь (и минус доступы) ✍️ Я насчитала 10 созвонов за эти 3 дня, и в голове сразу провелась аналогия с докладом от сдека на хайлоаде. Они рассказали, как во время сбоя созванивались сначала раз в полчаса, потом раз в 3 часа… У нас было еще одно бонусное усложнение - у разных людей разный набор доступов. Поэтому на созвонах было ~ по 3 человека, где: 🌌один мог ковыряться в технических сервисах 🌌второй мог потыкать в UI 🌌третий мог сказать, что делать в технике и когда тыкать на кнопочку (это я) Так вот, хроники с полей: 🔵- да, все раскатили! 🔸- а нет, только трубу настроили 🔵- ну теперь точно все готово! 🔸- не совсем, надо править конфиги 🔵- все поправили! 🔸- ммм, доступов к UI не хватает 🔵- доступы получили! 🔸- ой, только из офиса можно 🔵- получили офисные доступы! 🔸- ошибка при входе( а джоба-то упала 🔵- удалили лишние версии и все перераскатили! 🔸- сетевые запросы от наших урлов блокируются, до нг точно не успеют добавить 🔵- все-таки успели! 🔸- но на нашей стороне пути тоже некорректны 🔵- пофиксили конфиги и еще раз перераскатили! 🔸- опять с сетью проблемы, но уже внутри наших микросервисов 🔵- ставим встречку со знающими людьми! 🔸- блин, для отладки нужны привилегированные доступы 🔵- поменяли еще конфиги, еще раз раскатили - все завелось! 🔸- но отчеты по безопасности не проходят 🔵- отключили лишние конфиги, перераскатили - отчеты прошли, ну теперь-то все ок?? 🔸- опять коннекшн к бд протух here we go again… ➖➖➖➖➖➖➖➖ Но новый год не был бы таким волшебным, если бы не исполнение ✨чудес✨ Поэтому эта история с счастливым концом (и парой задач на доработку уже на следующий год) Но не стоит забывать, что за каждым чудом могут стоять люди, которые материализовали это чудо🙂🙂

Вот и настала пора подводить итоги года! Корпораты прошли, адвенты закончились, тайные санты проведены, подарки закуплены (ил
Вот и настала пора подводить итоги года! Корпораты прошли, адвенты закончились, тайные санты проведены, подарки закуплены (или будут закупаться), ну а я собрала некую смесь итогов из канала, работы и жизни 🥗 Немного циферок: 🎄 1672 подписчика: а в начале года вас было всего 182!!! - это в 9,3 раза больше без единой монетки 🍪🍪 🎄 260 постов 🎄 50 походов на концерты, съемки и митапы 🎄 28 поездок на поезде 🎄 22 собеса в нашу команду 🎄 8 встреч random coffee 🎄 7 прочитанных книжек 🎄 3 пройденных курса: де, систем дизайн, англ 🎄 3 путешествия: Питер и Йошкар-Ола 🎄 2 переезда 🎄 2 статьи на хабре: тык1, тык2 🎄 1 подкаст со мной 🎄 1 рилс в качестве амбассадора Сбера а еще: 🧤 командой развернули собственный кластер и многому научились 🍰 попробовала себя в роли девопса ⛸ успела позаниматься k-pop и фигурным катанием ☕️ научилась собирать кубик рубика 5х5 Хотела сделать подборку постов и поняла, что они все такие крутые! 🤭 Вот просто можно взять и полистать. Я пишу от души, и любой пост - это частичка того, что я сделала/осознала/ощутила, но все-таки самые-самые-самые из самых-самых вот здесь: 👍 Крутецкие посты dbt deep dive Покручиваем графы Что спросить на собесе? Зарубежные подкасты про данные Вопросы подписчиков Кейс про паркеты 🥰 Про оптимизацию Разница между MAX(dt::date) и MAX(dt)::date LEFT убивает индексы Разбор count(x) Как я забила всю оперативку Как заруинить джойн в спарке? 🤓 Покекать Вредные советы Как ПСИ проходили Мама, я девопс Наш командный сленг Командный мудборд И еще раз ссылочка на подкаст^^ ➖➖➖➖➖➖➖➖➖➖ Надеюсь, этот год был для вас продуктивным, а следующий будет еще круче! Может быть, до конца года еще что-нибудь напишу, пока не придумала🤭 В заготовках уже лежат 13 постов, но они не ложатся под новогоднее настроение, поэтому вернемся к ним в следующем году❄️ Мои решения для Advent of SQL можно глянуть тут, разберем интересные задачки уже в январе А пока всех поздравляю с наступающим новым годом! 🔴 ❄️ Желаю довести недоделанные дела до конца, хорошо отпраздновать и хорошо отдохнуть, загадать самые искренние пожелания, а я загадаю, чтобы они у всех у вас сбылись! 🍪

Выбор дополнительных победителей (в количестве 3): Победители: 1. hypaslav (@hypaisonfire) 2. Igor (@GorbunovIgor) 3. RED Проверить результаты ➖➖➖➖ Всё, подарок отправлен #1! Всех с наступающим! ❤️❤️

🎉 Результаты розыгрыша: Победитель: 1. Natali (@And_NaN) Проверить результаты

🎅 Розыгрыш! В преддверии нового года решила разыграть полезную книжку по де! Счастливчику отправлю доставкой через озон (про
🎅 Розыгрыш! В преддверии нового года решила разыграть полезную книжку по де! Счастливчику отправлю доставкой через озон (проверьте, что я смогу до вас это доставить) Окончание: 18.12.2024 в 10:00 Всем удачи! 🎁

Про лаги в тг Заметила такой лаг: 1. Пишу второй коммент под постом 2. Выхожу из поста в канал 3. Вижу только 1 коммент 4. Захожу обратно, вижу 2 5. Выхожу 6. Вижу 2 коммента, но нет картинки профиля 7. В момент клика снова вижу, как стал 1 коммент 8. Выхожу 9. Вижу 2 коммента, вижу появление своей аватарки В свете курса по System Design могу предположить, что проблема с консистентностью) 💎 Есть известная теорема CAP, она состоит из 3х понятий. Я попросила AI помочь объяснить вам примеры нарушений как для 5летних😁 C - Consistency - пользователь видит одинаковые данные 🎙 Представь, что ты и твой друг строите башню из LEGO. Вы договорились, что башня будет зелёной. Но, когда он уходит, ты делаешь её красной. A - Availability - при любом обращении система возвращает ответ 🎙 Вы с друзьями устроили вечер настолок. Все готовы играть, но ты не можешь найти свои карточки. Все друзья ждут, а потом скучают и уходят( P - Partition Tolerance - система работает, даже если между нодами сетевые проблемы 🎙 Представь, что ты и твой друг решили сделать "крутой рисунок". Ты рисуешь в одной комнате, а он - в другой. Двери закрыты. В итоге ты нарисовал динозавра, а он - единорога. Всегда можно обеспечить только 2 из 3. 3 из 3 - это уже невозможно. 🕰 Есть также Eventual Consistency - прямо сейчас данные отличаются, но через какое-то время они будут одинаковыми. И такой подход: автор всегда видит свои данные, но другие могут увидеть их чуть попозже. Например, мы записали данные в master, а читаем из slave. Из-за задержки репликации данные могут опаздывать, поэтому на разных нодах разные результаты

Станьте инженером данных с нуля за 5 месяцев, обучаясь на реальных задачах бизнеса. Основная проблема обучений – оторванность
Станьте инженером данных с нуля за 5 месяцев, обучаясь на реальных задачах бизнеса. Основная проблема обучений – оторванность от задач реального бизнеса. На курсе учился складывать 2+2, а на работе – сразу отправляют считать интегралы. Курс-симулятор от Simulative построен таким образом, что вы сразу погружаетесь в настоящую работу: например, вы будете формировать продуктовые рекомендации для клиентов крупного телекома с помощью Clickhouse. Обучение охватывает весь стек, который нужен специалисту: SQL, Python, Metabse, Linux, Docker, Airflow, Clickhouse, Hadoop и Spark. А также готовит к любому собеседованию – в курс включены тестовые задания, пробные интервью (технические и с HR) и многое другое. С трудоустройством поможем, а на VIP тарифе преподаватели и HR спроектируют вам персональный трек обучения и за руку доведут до оффера. Часть стоимости курса вы оплачиваете только, когда найдёте работу. Еще успеваете записаться в текущий поток По промокоду DATA дарим скидку 12%

Прошла неделя Advent of SQL Поделитесь, как у вас дела? Кто ещё проходит? 💻 Мне реально зашла эта штука! sql я люблю, задани
+1
Прошла неделя Advent of SQL Поделитесь, как у вас дела? Кто ещё проходит? 💻 Мне реально зашла эта штука! sql я люблю, задания прикольные, даже пришлось научиться парсить xml (не знаю зачем, но все же) 🐸💬 На реддите тоже завели треды под это дело. Оказывается, в DuckDB и Snowflake можно вот так в одном селекте обращаться к столбцам, которые мы только что посчитали, очень удобно 🔥

+2
По следам F*ckup Meetup 🎙️ Вчера прошёл митап, где рассказывали про фейлы. В заявке нужно было рассказать свою историю, самые крутые зачитали со сцены) Просто 🩷звездочка🩷- это фейл с видоса А также такие:
Перенастраивал систему авторизации, в итоге удалил токены всех существующих пользаков Ввёл регламент проведения работ на проде. В тот же вечер сам зашёл и случайно удалил там все конфиги 1го апреля дропнула бд на проде. Все узнали только 2го, потому что никто не верил. Но на следующий день пришёл бизнес, и все поверили
Из докладов особенно понравились вот эти: 1️⃣ Тестировали на проде в пт в 17:00 на АЭС с эвакуацией целого региона (почти). Запустили скрипт, сервак не ответил, все ушли домой, а скрипт был зациклен🌚 В итоге когда сервак подключился, в правительство полетела куча отбивок о превышении уровня радиации 2️⃣ На графике платежей начали появляться 7-значные цифры. Причём у клиентов не списывались деньги, потому что у платежного шлюза был лимит в 100к (но на это не было нормальных логов) А у нас в бд я тоже видела аномалии по типу "150 млрд пользователей в день", но там проблема с переполнением) 3️⃣ Что-то умное про кафку и карафку (kafka для ruby) 😅 Как решали инцидент с 12 до 21, как тасовали консьюмер группы, как перезапускали кластер без перебалансировки. И что в итоге была проблема в лишнем топике, который когда-то удалили, но где-то он остался ➖➖➖➖ Считаю вечер продуктивным! ⭕️митап интересный ⭕️фуршет был ⭕️встретила 2х знакомых и познакомилась ещё с 4мя

Решила завести свой профиль и канал в сетке Тык для канала Тык для профиля 📱Пока что моя лента на 90% состоит из мемов, но т
Решила завести свой профиль и канал в сетке Тык для канала Тык для профиля 📱Пока что моя лента на 90% состоит из мемов, но там ещё есть вакансии, новости, истории и т.д. По сути сетка - это "линкедин дома" Подписывайтесь, если уже там, или залетайте, если ещё нет 🌼