TGViewer
Channel Public Channel
дата инженеретта

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

@data_engineerette

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

по вопросам сюда: @aigul_sea
Subscribers
3.44K
Photos
306
Videos
28
Links
129

Showing posts older than #297 · Back to latest

Older Posts 15 shown
Post #296 2.99K
А есть тут такие же ненормальные люди, как я, которые пишут код с телефона? 🤣
  • 🤷 25
  • 😁 22
  • 🌚 10
  • 🤔 9
  • 👍 8
  • ❤ 2
Post #289 5.28K
🔶Запись готова🔶

Выложила запись на ютуб

Но у меня ни таймкоды не подтянулись, ни ссылки не работают 😁 Так что придется ручками потыкаться в описании или смотреть все 🥰

Спасибо всем, кто пришел! Меня ваши сердечки и огонечки очень подбадривали❤️

Немного статистики: 400 человек в пике, 600 в тотале!

Ссылка на материалы: https://github.com/Aigul9/spark-webinar
  • ❤ 54
  • 🔥 25
  • 👍 10
Post #282 3.71K

Forwarded from Симулейтив

🧑‍💻 Вебинар: Собираем витрину данных, как в бигтехе, от описания до результата

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

О том, как аналитику строить витрину данных, разберём в прямом эфире на примере реальной задачи 28 января в 19:00 по МСК. Спикер вебинара — Айгуль Сибгатуллина, Data Engineer в Сбер, автор телеграм-канала @data_engineerette.

Вебинар пройдёт в нашем любимом режиме «решение тестового задания» — представим, что мы владельцы бизнеса, и на практическом примере покажем, зачем и почему мы это делаем.

Что будет:
🟠 Построение воркфлоу от этапа получения ТЗ до создания полноценной витрины;
🟠 Какие инструменты нужны для дата-инженера;
🟠 Как разобраться с методологией на разных диалектах;
🟠 Как объединить данные из нескольких источников;
🟠 Spark в работе дата-инженера: преобразования и оптимизации;
🟠 Как AI может ускорить процессы.

➡️ Зарегистрироваться
  • 🔥 51
  • 👍 13
  • ❤ 12
  • 🦄 2
Post #281 2.93K
я популярити

мой первый доклад по де в таком масштабе💺
уже нагенерила идеи, данные и скрипт, сегодня доделываю презу и потом пойду репать спич 😥
даже на почту эта рассылка пришла!
  • ❤ 19
  • 🔥 5
Post #279 3.41K
Спасибо Алексею за полное и лаконичное пояснение 🧡, а я добавлю еще пояснялку с замерами по памяти

➖➖

Я взяла тестовый файлик с 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
  • 👍 21
  • 🔥 3
Post #278 2.79K

Forwarded from Алексей

for line in f:

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

for line in f.read()::

Читает весь файл целиком в память как одну строку, а затем проходит по символам, а не по строкам. Это значительно замедляет работу и требует больше памяти.

for line in f.readlines()::

Читает весь файл в память как список строк. Это быстрее, чем f.read(), но всё ещё требует загрузки всего файла в память.

верно рассуждаю?
  • 👍 14
  • ❤ 3
Post #276 2.38K
  • 👍 2
Post #274 2.62K
Про генераторы и итераторы

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

📝 Сделаем одно упражнение. Возьмем список, отберем только четные числа двумя способами:

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 итераторов может быть много, как будто они передаются по значению. А в остальных случаях как будто по ссылке - когда изменяется одна, изменяется и другая.

По сути в тех случаях, когда нам не нужно несколько раз обращаться к одним данным, мы спокойно можем использовать генератор✅
  • 👍 26
  • ❤ 8
  • 🔥 8
Post #272 3.07K
Как дела?) Отдохнули?

С пн 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
В общем, штука стоящая - тык
  • 👍 24
  • ❤ 7
  • 🔥 4
Post #271 2.94K
Сгенерила себе открытку, пусть тут полежит
  • 🔥 33
  • 👍 6
Post #270 3.29K
✨Новогоднее чудо✨

Мы тут релизились за 5 дней до нг (потому что можем себе позволить), и я испытала настоящие эмоциональные качели👌😭👌😭👌

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

✍️ Я насчитала 10 созвонов за эти 3 дня, и в голове сразу провелась аналогия с докладом от сдека на хайлоаде. Они рассказали, как во время сбоя созванивались сначала раз в полчаса, потом раз в 3 часа…

У нас было еще одно бонусное усложнение - у разных людей разный набор доступов. Поэтому на созвонах было ~ по 3 человека, где:
🌌один мог ковыряться в технических сервисах
🌌второй мог потыкать в UI
🌌третий мог сказать, что делать в технике и когда тыкать на кнопочку (это я)

Так вот, хроники с полей:

🔵- да, все раскатили!
🔸- а нет, только трубу настроили
🔵- ну теперь точно все готово!
🔸- не совсем, надо править конфиги
🔵- все поправили!
🔸- ммм, доступов к UI не хватает
🔵- доступы получили!
🔸- ой, только из офиса можно
🔵- получили офисные доступы!
🔸- ошибка при входе( а джоба-то упала
🔵- удалили лишние версии и все перераскатили!
🔸- сетевые запросы от наших урлов блокируются, до нг точно не успеют добавить
🔵- все-таки успели!
🔸- но на нашей стороне пути тоже некорректны
🔵- пофиксили конфиги и еще раз перераскатили!
🔸- опять с сетью проблемы, но уже внутри наших микросервисов
🔵- ставим встречку со знающими людьми!
🔸- блин, для отладки нужны привилегированные доступы
🔵- поменяли еще конфиги, еще раз раскатили - все завелось!
🔸- но отчеты по безопасности не проходят
🔵- отключили лишние конфиги, перераскатили - отчеты прошли, ну теперь-то все ок??
🔸- опять коннекшн к бд протух
here we go again…

➖➖➖➖➖➖➖➖

Но новый год не был бы таким волшебным, если бы не исполнение ✨чудес✨
Поэтому эта история с счастливым концом (и парой задач на доработку уже на следующий год)
Но не стоит забывать, что за каждым чудом могут стоять люди, которые материализовали это чудо🙂🙂
  • 🎄 35
  • 🔥 4
  • 👍 2
Post #268 4.05K
Вот и настала пора подводить итоги года!

Корпораты прошли, адвенты закончились, тайные санты проведены, подарки закуплены (или будут закупаться), ну а я собрала некую смесь итогов из канала, работы и жизни 🥗

Немного циферок:

🎄 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 можно глянуть тут, разберем интересные задачки уже в январе

А пока всех поздравляю с наступающим новым годом! 🔴
❄️ Желаю довести недоделанные дела до конца, хорошо отпраздновать и хорошо отдохнуть, загадать самые искренние пожелания, а я загадаю, чтобы они у всех у вас сбылись! 🍪
  • ❤ 36
  • 🔥 10
  • 👍 4
  • 🎄 4
  • 🤔 1
Post #267 3.12K
дата инженеретта 🎅 Розыгрыш! В преддверии нового года решила разыграть полезную книжку по де! Счастливчику отправлю доставкой через озон (проверьте, что я смогу до вас это доставить) Окончание: 18.12.2024 в 10:00 Всем удачи! 🎁
Выбор дополнительных победителей (в количестве 3):

Победители:
1. hypaslav (@hypaisonfire)
2. Igor (@GorbunovIgor)
3. RED

Проверить результаты

➖➖➖➖

Всё, подарок отправлен #1!
Всех с наступающим! ❤️❤️
  • 😁 13
  • 👍 5
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →