Advent of Code
Advent of SQL
На sql я наткнулась только недавно. Возможно, он проводится в первый раз?
А вот про advent of code мне рассказали в 2020 году в кругу американских прогеров и математиков
В общем, это интересная штука, потому что:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍9
System Design. №2 Расчет ресурсов
Как же это все интересно, куча циферок...☺️
Нужно учитывать 4 пункта:
1️⃣ Пользователи
MAU, DAU, сколько в пик, прирост в день/месяц/несколько лет, отношение чтения к записи, сколько генерится контента
💬 MAU/DAU (Monthly/Daily Active Users) - сколько пользаков в месяц/день
2️⃣ Сеть
Сколько одновременных соединений, трафик, какие данные и сколько передают пользаки в день, RPS
Ну и облака - это медленнее, чем физические сервера
3️⃣ Вычисления
Сколько rps на получение текста, на чтение и запись в бд, на запуск ML-моделей
Недавно общалась с одним коллегой из отдела биометрии, он сказал, что на прохождение даже одной модельки может уходить время 200ms. А если их несколько - вот ты уже стоишь у кассы и ждешь несколько секунд, пока пройдет оплата😐
4️⃣ Хранение
Сколько нужно сейчас, сколько будет прирастать в течение длительного периода
Что мы будем хранить на HDD, SSD, RAM. Горячие/теплые/холодные/ледяные данные
Сколько нужно заложить на репликацию
➖ ➖ ➖ ➖ ➖
Пока я поняла, что нужно:
- прикинуть DAU, MAU
- научиться считать RPS, скорость, соединения, количество данных
- экстраполировать это на несколько лет вперед
- взять цены и просуммировать
Если вообще нет представлений, то можно поковыряться в планах облачных провайдеров и составить общую картинку.
Но с осознанием пока сложно, чувствую, надо это все еще раз пересмотреть)
#system_design
Как же это все интересно, куча циферок...
Нужно учитывать 4 пункта:
MAU, DAU, сколько в пик, прирост в день/месяц/несколько лет, отношение чтения к записи, сколько генерится контента
Сколько одновременных соединений, трафик, какие данные и сколько передают пользаки в день, RPS
Ну и облака - это медленнее, чем физические сервера
Сколько rps на получение текста, на чтение и запись в бд, на запуск ML-моделей
Недавно общалась с одним коллегой из отдела биометрии, он сказал, что на прохождение даже одной модельки может уходить время 200ms. А если их несколько - вот ты уже стоишь у кассы и ждешь несколько секунд, пока пройдет оплата
Сколько нужно сейчас, сколько будет прирастать в течение длительного периода
Что мы будем хранить на HDD, SSD, RAM. Горячие/теплые/холодные/ледяные данные
Сколько нужно заложить на репликацию
Пока я поняла, что нужно:
- прикинуть DAU, MAU
- научиться считать RPS, скорость, соединения, количество данных
- экстраполировать это на несколько лет вперед
- взять цены и просуммировать
Если вообще нет представлений, то можно поковыряться в планах облачных провайдеров и составить общую картинку.
Но с осознанием пока сложно, чувствую, надо это все еще раз пересмотреть)
#system_design
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤷2
Рекомендасьон
Мой коллега по парте сходил на конфу Highload 2-3 декабря
Эксклюзивный контент🔥
И вообще пишет про классные штуки
Мой коллега по парте сходил на конфу Highload 2-3 декабря
Эксклюзивный контент
И вообще пишет про классные штуки
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DataSkewer
🔆 Вот и подошел к концу Highload++ 2024.
Первый раз был на такой крупной конференции, и я конечно же восхищен.
Вот что я могу сказать, из плюсов
➕Очень удобный бот конференции в котором можно отслеживать доклады и устроить Random Coffee
➕Очень широкий спектр тем (от даты до архитектуры, маркетинга и безопасности)
➕Прекрасный кейтеринг
➕Куча C-levelов российского бигтеха с которыми можно вживую поговорить и задать вопросы (переборов страх быть кринжовым)
➕Колоссальные возможности для нетворкинга - я поставил себе цель, познакомиться и обменяться контактами с 10+ специалистами и перевыполнил эту цель в 1.5 раза, без особых усилий.
Из минусов (каинда):
➖стоит разделить конференцию на фестивальную часть и часть докладов - невозможно физически посетить все доклады и все стенды - я старался держать баланс, но охватил от силы 30 процентов стендов и 20 процентов докладов. (Доклады к тому же шли в параллель)
➖Звездами этой конференции были PHP и Golang - у меня немного другой стек
Ну и подводя итог, рекомендовал бы посетить эту конференцию, специалистам уровня Middle+
Тк у многих докладов есть неслабый порог вхождения, и вам нужно быть хотя бы специалистом конкретно вашей области + иметь хорошие знания в general computer science (вспоминаем о входителях в айти, говорящих, что алгоритмы, паттерны проектирования и прочая БАЗА никому не нужна) - иначе для вас конференция сведется лишь к фестивальной части.
В следующем посте, на основе данных этой конференции, расскажу о том когда вашему хадупу/S3 стоит задуматься об использовании Apache Iceberg.
Первый раз был на такой крупной конференции, и я конечно же восхищен.
Вот что я могу сказать, из плюсов
➕Очень удобный бот конференции в котором можно отслеживать доклады и устроить Random Coffee
➕Очень широкий спектр тем (от даты до архитектуры, маркетинга и безопасности)
➕Прекрасный кейтеринг
➕Куча C-levelов российского бигтеха с которыми можно вживую поговорить и задать вопросы (переборов страх быть кринжовым)
➕Колоссальные возможности для нетворкинга - я поставил себе цель, познакомиться и обменяться контактами с 10+ специалистами и перевыполнил эту цель в 1.5 раза, без особых усилий.
Из минусов (каинда):
➖стоит разделить конференцию на фестивальную часть и часть докладов - невозможно физически посетить все доклады и все стенды - я старался держать баланс, но охватил от силы 30 процентов стендов и 20 процентов докладов. (Доклады к тому же шли в параллель)
➖Звездами этой конференции были PHP и Golang - у меня немного другой стек
Ну и подводя итог, рекомендовал бы посетить эту конференцию, специалистам уровня Middle+
Тк у многих докладов есть неслабый порог вхождения, и вам нужно быть хотя бы специалистом конкретно вашей области + иметь хорошие знания в general computer science (вспоминаем о входителях в айти, говорящих, что алгоритмы, паттерны проектирования и прочая БАЗА никому не нужна) - иначе для вас конференция сведется лишь к фестивальной части.
В следующем посте, на основе данных этой конференции, расскажу о том когда вашему хадупу/S3 стоит задуматься об использовании Apache Iceberg.
Решила завести свой профиль и канал в сетке
Тык для канала
Тык для профиля
📱 Пока что моя лента на 90% состоит из мемов, но там ещё есть вакансии, новости, истории и т.д. По сути сетка - это "линкедин дома"
Подписывайтесь, если уже там, или залетайте, если ещё нет🌼
Тык для канала
Тык для профиля
Подписывайтесь, если уже там, или залетайте, если ещё нет
Please open Telegram to view this post
VIEW IN TELEGRAM
По следам F*ckup Meetup
🎙️ Вчера прошёл митап, где рассказывали про фейлы. В заявке нужно было рассказать свою историю, самые крутые зачитали со сцены)
Просто🩷 звездочка🩷 - это фейл с видоса
А также такие:
Из докладов особенно понравились вот эти:
1️⃣ Тестировали на проде в пт в 17:00 на АЭС с эвакуацией целого региона (почти).
Запустили скрипт, сервак не ответил, все ушли домой, а скрипт был зациклен🌚 В итоге когда сервак подключился, в правительство полетела куча отбивок о превышении уровня радиации
2️⃣ На графике платежей начали появляться 7-значные цифры. Причём у клиентов не списывались деньги, потому что у платежного шлюза был лимит в 100к (но на это не было нормальных логов)
А у нас в бд я тоже видела аномалии по типу "150 млрд пользователей в день", но там проблема с переполнением)
3️⃣ Что-то умное про кафку и карафку (kafka для ruby) 😅 Как решали инцидент с 12 до 21, как тасовали консьюмер группы, как перезапускали кластер без перебалансировки. И что в итоге была проблема в лишнем топике, который когда-то удалили, но где-то он остался
➖ ➖ ➖ ➖
Считаю вечер продуктивным!
⭕️ митап интересный
⭕️ фуршет был
⭕️ встретила 2х знакомых и познакомилась ещё с 4мя
Просто
А также такие:
Перенастраивал систему авторизации, в итоге удалил токены всех существующих пользаков
Ввёл регламент проведения работ на проде. В тот же вечер сам зашёл и случайно удалил там все конфиги
1го апреля дропнула бд на проде. Все узнали только 2го, потому что никто не верил.
Но на следующий день пришёл бизнес, и все поверили
Из докладов особенно понравились вот эти:
Запустили скрипт, сервак не ответил, все ушли домой, а скрипт был зациклен🌚 В итоге когда сервак подключился, в правительство полетела куча отбивок о превышении уровня радиации
А у нас в бд я тоже видела аномалии по типу "150 млрд пользователей в день", но там проблема с переполнением)
Считаю вечер продуктивным!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍7 5
Прошла неделя Advent of SQL
Поделитесь, как у вас дела? Кто ещё проходит?
💻 Мне реально зашла эта штука! sql я люблю, задания прикольные, даже пришлось научиться парсить xml (не знаю зачем, но все же)
🐸 💬 На реддите тоже завели треды под это дело. Оказывается, в DuckDB и Snowflake можно вот так в одном селекте обращаться к столбцам, которые мы только что посчитали, очень удобно 🔥
Поделитесь, как у вас дела? Кто ещё проходит?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍19
This media is not supported in your browser
VIEW IN TELEGRAM
Про лаги в тг
Заметила такой лаг:
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. Из-за задержки репликации данные могут опаздывать, поэтому на разных нодах разные результаты
Заметила такой лаг:
1. Пишу второй коммент под постом
2. Выхожу из поста в канал
3. Вижу только 1 коммент
4. Захожу обратно, вижу 2
5. Выхожу
6. Вижу 2 коммента, но нет картинки профиля
7. В момент клика снова вижу, как стал 1 коммент
8. Выхожу
9. Вижу 2 коммента, вижу появление своей аватарки
В свете курса по System Design могу предположить, что проблема с консистентностью)
C - Consistency - пользователь видит одинаковые данные
A - Availability - при любом обращении система возвращает ответ
P - Partition Tolerance - система работает, даже если между нодами сетевые проблемы
Всегда можно обеспечить только 2 из 3. 3 из 3 - это уже невозможно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4💅3
дата инженеретта
🎅 Розыгрыш! В преддверии нового года решила разыграть полезную книжку по де! Счастливчику отправлю доставкой через озон (проверьте, что я смогу до вас это доставить) Окончание: 18.12.2024 в 10:00 Всем удачи! 🎁
Выбор дополнительных победителей (в количестве 3):
Победители:
1. hypaslav (@hypaisonfire)
2. Igor (@GorbunovIgor)
3. RED
Проверить результаты
➖ ➖ ➖ ➖
Всё, подарок отправлен #1!
Всех с наступающим!❤️ ❤️
Победители:
1. hypaslav (@hypaisonfire)
2. Igor (@GorbunovIgor)
3. RED
Проверить результаты
Всё, подарок отправлен #1!
Всех с наступающим!
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13👍5 3
Вот и настала пора подводить итоги года!
Корпораты прошли, адвенты закончились, тайные санты проведены, подарки закуплены (или будут закупаться), ну а я собрала некую смесь итогов из канала, работы и жизни🥗
Немного циферок:
🎄 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 можно глянуть тут, разберем интересные задачки уже в январе
А пока всех поздравляю с наступающим новым годом!🔴
❄️ Желаю довести недоделанные дела до конца, хорошо отпраздновать и хорошо отдохнуть, загадать самые искренние пожелания, а я загадаю, чтобы они у всех у вас сбылись! 🍪
Корпораты прошли, адвенты закончились, тайные санты проведены, подарки закуплены (или будут закупаться), ну а я собрала некую смесь итогов из канала, работы и жизни
Немного циферок:
а еще:
Хотела сделать подборку постов и поняла, что они все такие крутые!
dbt deep dive
Покручиваем графы
Что спросить на собесе?
Зарубежные подкасты про данные
Вопросы подписчиков
Кейс про паркеты
Разница между MAX(dt::date) и MAX(dt)::date
LEFT убивает индексы
Разбор count(x)
Как я забила всю оперативку
Как заруинить джойн в спарке?
Вредные советы
Как ПСИ проходили
Мама, я девопс
Наш командный сленг
Командный мудборд
И еще раз ссылочка на подкаст^^
Надеюсь, этот год был для вас продуктивным, а следующий будет еще круче!
Может быть, до конца года еще что-нибудь напишу, пока не придумала
Мои решения для Advent of SQL можно глянуть тут, разберем интересные задачки уже в январе
А пока всех поздравляю с наступающим новым годом!
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤35🔥10👍4🎄4 4🤔1
Мы тут релизились за 5 дней до нг (потому что можем себе позволить), и я испытала настоящие эмоциональные качели
Нужно было раскатать один сервис, но ситуация осложнилась тем, что:
У нас было еще одно бонусное усложнение - у разных людей разный набор доступов. Поэтому на созвонах было ~ по 3 человека, где:
Так вот, хроники с полей:
here we go again…
Но новый год не был бы таким волшебным, если бы не исполнение
Поэтому эта история с счастливым концом (и парой задач на доработку уже на следующий год)
Но не стоит забывать, что за каждым чудом могут стоять люди, которые материализовали это чудо
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄35🔥4👍2
Как дела?) Отдохнули?
С пн 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
В общем, штука стоящая - тык
С пн 13.01 стартует de zoomcamp!
Кто еще ждет особого знака судьбы - он здесь
Из стека у нас был GCP, BigQuery, Terraform, Spark, Kafka, Prefect, Postgres, Docker, dbt, Looker
Некоторые штуки у меня не удалось применить, и я по итогу заменила гугл бакеты на yandex cloud + google drive
В общем, штука стоящая - тык
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24❤6🔥4
Мы с вами чем-то не тем занимаемся
https://music.yandex.com/album/33934790/track/132728259?utm_medium=copy_link
https://music.yandex.com/album/33934790/track/132728259?utm_medium=copy_link
Yandex Music
Язык для славян
Научно-технический рэп • Track • 2024
😁8❤2🔥2 2
Про генераторы и итераторы
Мне когда-то советовали прочитать книжку Лутца по питону, но я ее забросила. Теперь мне нечего было делать, и я снова решила к ней вернуться) И тут я как осознала!
📝 Сделаем одно упражнение. Возьмем список, отберем только четные числа двумя способами:
А теперь дважды материализуем:
Список хранит все в памяти, занимает оперативку, и мы можем его вызывать сколько угодно раз.
А генератор закончился и всегда будет пустым🔲
➖ ➖ ➖ ➖
Если мы попробуем сделать то же самое ручками, то есть еще интересный нюанс.
Сделаем два итератора - для функции range и нашего генератора l2. Сначала вызовем первый, потом второй:
🌀 Прикол в том, что у range итераторов может быть много, как будто они передаются по значению. А в остальных случаях как будто по ссылке - когда изменяется одна, изменяется и другая.
По сути в тех случаях, когда нам не нужно несколько раз обращаться к одним данным, мы спокойно можем использовать генератор✅
Мне когда-то советовали прочитать книжку Лутца по питону, но я ее забросила. Теперь мне нечего было делать, и я снова решила к ней вернуться) И тут я как осознала!
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 - продолжили
По сути в тех случаях, когда нам не нужно несколько раз обращаться к одним данным, мы спокойно можем использовать генератор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤8🔥8
Какой способ/ы выполнятся быстрее?
Anonymous Poll
23%
for line in f.read():
42%
for line in f.readlines():
41%
for line in f:
👍2