дата инженеретта
Open in Telegram
мелкое — крупно, в глубоком разговоре мудрость приходит по вопросам сюда: @aigul_sea
Show more3 348
Subscribers
+424 hours
-127 days
+430 days
Posts Archive
3 348
Repost from DataSkewer
🔆 Вот и подошел к концу Highload++ 2024.
Первый раз был на такой крупной конференции, и я конечно же восхищен.
Вот что я могу сказать, из плюсов
➕Очень удобный бот конференции в котором можно отслеживать доклады и устроить Random Coffee
➕Очень широкий спектр тем (от даты до архитектуры, маркетинга и безопасности)
➕Прекрасный кейтеринг
➕Куча C-levelов российского бигтеха с которыми можно вживую поговорить и задать вопросы (переборов страх быть кринжовым)
➕Колоссальные возможности для нетворкинга - я поставил себе цель, познакомиться и обменяться контактами с 10+ специалистами и перевыполнил эту цель в 1.5 раза, без особых усилий.
Из минусов (каинда):
➖стоит разделить конференцию на фестивальную часть и часть докладов - невозможно физически посетить все доклады и все стенды - я старался держать баланс, но охватил от силы 30 процентов стендов и 20 процентов докладов. (Доклады к тому же шли в параллель)
➖Звездами этой конференции были PHP и Golang - у меня немного другой стек
Ну и подводя итог, рекомендовал бы посетить эту конференцию, специалистам уровня Middle+
Тк у многих докладов есть неслабый порог вхождения, и вам нужно быть хотя бы специалистом конкретно вашей области + иметь хорошие знания в general computer science (вспоминаем о входителях в айти, говорящих, что алгоритмы, паттерны проектирования и прочая БАЗА никому не нужна) - иначе для вас конференция сведется лишь к фестивальной части.
В следующем посте, на основе данных этой конференции, расскажу о том когда вашему хадупу/S3 стоит задуматься об использовании Apache Iceberg.
3 348
Рекомендасьон
Мой коллега по парте сходил на конфу Highload 2-3 декабря
Эксклюзивный контент🔥
И вообще пишет про классные штуки
3 348
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
3 348
🎄 Завтра стартуют advent-челленджи 🎄
Advent of Code
Advent of SQL
На sql я наткнулась только недавно. Возможно, он проводится в первый раз?
А вот про advent of code мне рассказали в 2020 году в кругу американских прогеров и математиков
🗓️ Это связано с адвент-календарем, в котором каждый день с 1 по 25 декабря люди открывают по одному окошечку с подарком по случаю католического рождества
💻 Обычно первые задачки супер изи, но до 25 дня я не доходила (потому что алгосы - это слабенькое место), а в прошлом году уровень в разы повысился из-за развития AI штук. Что будет в этом году - даже не знаю. Хотя там есть глобальный лидерборд, и некоторые пишут длиннющие однострочники и решают в терминале за миллисекунды 😱
В общем, это интересная штука, потому что:
🩷есть сторителлинг, т.е. вы не просто решаете рандомные задачки, а они еще связаны единой канвой - эльфами, тропическими островами и прочими штуками
🩷можно круто прокачаться в использовании либы itertools (если на питоне)
🩷можно почекать на реддите, как другие решают на абсолютно любом языке (есть даже Excel, Zig, J, Uiua, Raku и куча других ноунеймов)
🩷можно выставить свое решение, чтобы кто-то прокомментил. мои решения даже набирали два лайка 😁
🩷а еще однажды на собесе спросили, в каких это я хакатонах участвую 😅 возможно, это был плюсик в карму!
3 348
Ураа, мне пришла приглашалка на митап 🌼 Неужели я достигла уровня значимых факапов?
🍿 А в комментах можете поделиться, были ли у вас неудачи и как вы из них выпутывались. Было бы интересно посмотреть)
3 348
🐘 Ребятки, в эту субботу в Москве состоится осенний бигдатник 🐘
Он будет:
⏺️про технологии - Flink, Streamhouse, Iceberg, Debezium
⏺️про кейсы
⏺️про нетворкинг
Движуха на целый день с едой!💃
Кто не в мск - будет онлайн стрим 📺
Кто боится ходить на такие сходки - у меня дома для мотивации уже сколько лет висит цитата Коко Шанель:
Если вы хотите иметь то, что никогда не имели, вам придётся делать то, что никогда не делали.Я еще в прошлый раз хотела сходить - практически выиграла билеты, но что-то пошло не так( Так что собираюсь в этот раз обязательно быть 🙂 Надеюсь с кем-то из вас увидеться❤️ 🔉Координаты: ⏺️30.11.2024, 10:20 ⏺️Таганская, 9 Когда будете покупать билет, введите в поле "Онлайн/Офлайн, Компания" промокод DATAENGINE. Тогда есть большой шанс, что следующий бигдатник для вас будет бесплатным! За билетами сюда
3 348
Кейс про паркеты
Предыстория
Мы хотим перекладывать паркет-файлики из одной системы в другую. Выложили их на s3. Все, можно забирать. Казалось бы, что может пойти не так?
Но этот процесс прошел несколько итераций, прежде чем я сказала "все ок" 😊
1️⃣
Проблема: Illegal Parquet type: FIXED_LEN_BYTE_ARRAY
Смысл: паркет не умеет читать тип FixedString из кх
Решение: удаляем столбец или сохраняем в формате String
2️⃣
Проблема: Required field 'codec' was not present!
Смысл: связано с несопоставимыми алгоритмами компрессии файлов
Решение: используем другой алгоритм (н-р, Snappy)
3️⃣
Проблема: Строковые типы отображаются вот так: [57 65 62 4B 69 74]
Смысл: отображается в бинарном виде
Решение:
SELECT unhex(regexp_replace(StartURL, ' ', ''))
(или без unhex)
Но это неудобно все преобразовывать на этапе чтения
4️⃣
Проблема: делаю printSchema() и вижу, что все строковые поля имеют тип binary
Решение: сохраняем в string
5️⃣
Проблема: date в формате 20031
Смысл: это количество дней от 1970-01-01
Решение:
df.withColumn(
'new_date',
F.date_from_unix_date(date)
)
6️⃣
Проблема: функция date_from_unix_date появилась в версии 3.5.0, а у нас ниже
Решение: делаем примерно так и кладем все в string на этапе записи
SELECT date_add('1970-01-01', 20031) AS new_date
Ура😑3 348
Я прочитала DAMA-DMBOK
Это книжка на 830 страниц - "Свод знаний по управлению данными". Мне ее как-то советовали прочитать, и вот полтора месяца я упорно это делала 📖
Вкратце эта книга про фреймворк DAMA (Data Management Association). Про то, как должно быть. Он включает такие аспекты:
🔵архитектура и моделирование данных
🔵хранение
🔵безопасность
🔵интеграции
🔵основные данные
🔵метаданные
🔵качество данных
и еще несколько (на картинке - колесо DAMA)
Я по ходу чтения записывала интересные, новые для меня моменты, буду постепенно делиться)
❔ Зачем это все нужно?
Одни и те же данные складываются по-разному, называются по-разному. Одинаковые метрики считаются по-разному.
Глобальная цель - чтобы я из маркетинга и Оля из любой другой команды понимали, что цена всегда до ндс, а clientid имеет тип string и обозначает человека, который купил у нас продукт.
Это нужно, чтобы больше не переписываться в почте на тему "А это что означает? А что заложено в эту метрику?". Мы делаем каталог данных, и каждый ходит туда и смотрит нужные ему вещи:
🟡бизнес-смысл
🟠бизнес-правила
🟡источник
🟠логика преобразований из системы в систему (lineage)
🙂 Еще сквозь всю книгу красной линией проходит мысль - бизнес и IT должны работать вместе. Кстати, у нас когда-то вставал вопрос - нужно ли IT-командам на 100% понимать, как их работа влияет на метрики бизнеса?
В Сбере есть активность "Random Coffee", где рандомно подбирается зареганный собеседник. И несколько человек мне ответили, что они просто крутят модельки и жизнь прекрасна 🌼
Что думаете?
#dama_dmbok
3 348
Мы в этой жизни всё делаем правильно?
Картина буквами: 10% от всего плана запросов
3 348
Как я забила всю оперативку
⭐️Нужно было переложить табличку из кх в s3 через Airflow. Табличка небольшая, проблем быть не должно
Идея №1
1️⃣Считать табличку из кх в pandas dataframe
2️⃣Сохранить датафрейм в .csv файл
3️⃣Залить в s3 через либу boto3
Пока тестирую и отлаживаю на 10 строках - все ок. Убираю лимит - и Airflow становится очень плохо, он не прогружается и не дает завершить таску 🥲
Смотрю в источник - там 12млн строк. Неужели pandas не может столько переварить? Очевидно, надо искать другой способ
Идея №2
Я раньше сталкивалась, что в кх можно прям запросом читать из s3. Вот так:
SELECT * FROM s3()
Оказывается, это работает и на запись!
INSERT INTO FUNCTION s3()
SELECT * FROM your_table
В эту функцию можно добавлять разные настройки. Из полезного - разбить вашу табличку на несколько файликов. Примерно такой код у меня работает:
INSERT INTO FUNCTION
s3(
'filename_{{_partition_id}}.csv.gz',
'S3_ACCESS_KEY',
'S3_SECRET_ACCESS_KEY',
'CSVWithNames'
)
PARTITION BY rand % 10
SELECT * FROM your_table;
Что тут есть?
⚫️{_partition_id} – это переменная, которая пробрасывается сама. Просто счетчик от 0
Если вставлять этот код в строку, нужно обязательно обрамить скобками {} дважды – иначе s3 воспринимает это по-другому и падает с ошибкой
⚫️.gz – алгоритм компрессии файликов
⚫️CSVWithNames – мы включаем названия столбцов первой строкой
⚫️PARTITION BY [столбец] - можно выбрать существующий или просто задать рандомно
И этот метод работает просто в разы быстрее. Теперь табличка на 12 млн строк пишется за несколько секунд 🙂3 348
📖 IT-подборка
Мы с коллегами из других интересных айтишных каналов подготовили для вас огненную подборку🔥
Возможно, там вы найдете что-то новенькое, что закроет кусочек текущих потребностей)
А если у вас есть свой канальчик и вы хотите в подборку, можете написать сюда
3 348
System Design. №1 Требования
Писала тут, что начала проходить курс по SD. Решила вести собственные конспекты, чтобы лучше укладывалось в голове.
🍊Первое - нужно ответить себе на вопрос:
Зачем нужна эта система?Отсюда определить фкц и нефкц требования: ✨Фкц - это фичи. Которые будут нужны, даже если у нас суперкомпьютер с неограниченными ресурсами и ничего никогда не ломается. ✨Нефкц - вопросики к ограничениям системы, большинство замеряются метриками Основные вот эти: 1. Производительность и масштабируемость ⚫️Requests/Queries per second (RPS/QPS) - запросы в сек ⚫️Connections per second (CPS) - соединения к серверу в сек ⚫️Throughput - пропускная способность в байтах/сек ⚫️Latency - задержка отклика (сеть, диск) в мс. Оптимально < 100ms 2. Отзывчивость ⚫️First Contentful Paint (FCP) - время загрузки первого элемента на страничке. Оптимально < 1.8s ⚫️Largest Contentful Paint (LCP) - время загрузки самого большого элемента на страничке. Оптимально < 2.5s ⚫️Time To Interactive (TTI) - время загрузки всех интерактивных элементов ⚫️Time To First Byte (TTFB) - время получения первого байта видоса ⚫️Bitrate - скорость передачи данных, бит/с 3. Надёжность и доступность ⚫️Uptime - процент времени работы системы ⚫️Availability - процент времени работы системы с учетом ее обслуживания, т.е. эта метрика может быть ниже ⚫️Mean time between failures (MTBF) - время работы между отказами ⚫️Mean Time To Repair (MTTR) - время восстановления после сбоя 4. Безопасность Это соблюдение стандартов безопасности, защита от несанкционированного доступа, шифрование и т.д. Тут можно потыкаться в метриках и потестить сайтики #system_design
3 348
+2
👍 DE на Матемаркетинге 👍
7-8 ноября прошла конфа "Матемаркетинг", где рассказывают в основном про аналитику, рекламу, метрики, АБ-тесты и т.п. Я смотрела в онлайне, пробежалась глазками по всем докладам, изучила наиболее ДЕшные и делюсь с вами)
Расскажу про 4 доклада с крутыми спикерами:
1️⃣ Data mesh на modern stack - рук. DWH, Магнит Омни (картинка 1)
✍ Data mesh (сеть данных) - когда вместо единой платформы есть команды-домены, которые ответственны за свой маленький кусок.
Здесь заинтересовал подход к data governance (управление данными) - системные аналитики описывают данные рядом с кодом. Если нет описания или оно неактуальное, не будет заапрувлен Pull Request через GitLab Actions.
2️⃣ Data mesh: от теории к реальности - зам. CDO, Райффайзен (картинка 2)
Рассказывали про историю развития платформы, пилот и результаты. Мысль: Data mesh - по сути микросервисы
3️⃣ Как понять, какая организация хранилища подходит вам? - рук. DWH, Яндекс Поиск/Реклама
Тут были экзистенциальные мысли:
Почему у вас выгодно делать продукт "данные"?
"Само" хорошо не будет.4️⃣ Как построить облачную платформу данных в условиях импортозамещения - CDO, Лучи (ex. BestDoctor) - картинка 3 Тут рассказывали про альтернативные технологии, кроме всем известных выделенных жирным. Накидываю вам еще больше незнакомых буковок, но я тоже про половину не слышала, так что все норм: ⚫️Обработка: Airflow, dbt, Kafka, Flink, Spark Streaming, DolphinScheduler, Prefect, Kestra, Airbyte, Flyte, Mage, RedPanda, Pulsar, NATS ⚫️DWH: Greenplum, ClickHouse, Trino, CockroachDB, Doris, Ignite, StarRocks ⚫️Управление данными: OpenMetadata, DataHub, Atlas, Great Expectations, Marquez, LakeFS, Nessie, Elementary У них было DWH на Greenplum. В итоге они поменяли стек на: Storage - S3 Metastore - Iceberg REST Catalog Compute - Trino Оркестратор - Dagster ➖➖➖➖➖➖➖➖ Самое забавное, что в трех самых технических докладах рассказывали про data mesh. Плюс удивлена, что пригласили букмекерские конторы. Как мне кажется, они не особо котируются. Кто-то стал частичкой мероприятия? #system_design
3 348
Подъехала запись и презы с митапа
https://developers.sber.ru/kak-v-sbere/events/data_meetup_october
3 348
Я иду на интенсив по англу!
Есть люди, которые спрашивают про мой уровень англа и как я до него дошла. Все-таки он очень важен в нашей сфере, и гуглеж на англ - наше все. Так что рассказываю свою краткую историю...
📖 История
🟣Начиналось все очень плохо. Два года (весь 2-3 класс) мы просто читали, а в 4 снова начали учить буквы 💢
🟣В 5 всем классом поменяли препода, но уже были проблемы с аудированием.
🟣В 8 я перешла в другую школу с делением на сильную и слабую группы. По тестам я чуть недотянула, но мне разрешили остаться в сильной и попробовать. Мы на уроках смотрели Гарри Поттера в оригинале, и все понимали, а я нет 😭
🟣В 10 нам сказали, что именно мы все пишем ЕГЭ в след году. Я год с лишним ходила к репетитору, пока нам не сказали "отмена"
🟣В универе снова были входные тесты, и групп было уже 4 по градации. Да, я попала в сильную! Некоторые снова смотрели фильмы в оригинале без субтитров и имели большой словарный запас. Тогда я тоже начала смотреть фильмы 📺
🟣На 3 курсе я начала играть в онлайн-игрульку и наткнулась на english-speaking community. В течение 3х лет я подключалась на голос для обсуждений, читала абсолютно все чатики, постила мемы на англ, вела свой словарик частых сокращений, переписывалась с игроками в личке. Заметила, что у меня появился американский акцент
🟣Потом я захотела получить опыт иностранных собесов на будущее, но мое резюме было никому не нужно 🥲
А сейчас я наткнулась на AgileFluent, они помогают специалистам из IT и digital находить работу за рубежом, а также прокачивать бизнес-английский. У них есть крутые программы, ориентированные не на королевский Future Perfect Continuous in the Past, а на жизнь. И я решила попробовать какой-нибудь интенсив на 1 месяц.
Всего их 3, но мне понравились вот эти:
1️⃣ Engish for IT teams, где на англ ведутся скрам-церемонии (планирование, стендапы, демо, ретро)
2️⃣ Focus on Speaking - как решать конфликты, как давать фидбек и вести переговоры
Решила, что если с первым понятно - когда у тебя есть задачи, то кажется несложным спланировать спринт и рассказывать, чем ты занимался вчера и чем будешь заниматься сегодня.
А вот со вторым уже что-то поинтереснее.
🙂 Встречи 2 раза в неделю, где мы будем обсуждать реальные жизненные ситуации. Поток стартует 11 ноября, и если вы тоже хотите запрыгуть, то можете использовать мой реферальный код CREF-MMTTRM (7% на первую покупку)
Я в предвушении🙂
3 348
+2
Прошедший Data.Meetup
🕒24.10.2024 состоялся Data.Meetup 2024 в Сбере, где сначала рассказывали про сберовские штуки типо супермаркета или карты данных, а потом про Trino, Iceberg и Flink.
🐰 Оказалось, что у нас Trino внедряют, но как обычно с банковскими обвязками. Сейчас там сейчас 300+ пользователей, еще планируются доработки и добавление функционала. Показалось, что лучше еще подождать, пока это все подъедет. А на одном недавнем митапе мне сказали, что в озоне пилотится Trino.
Про Trino+Iceberg рассказывал спикер, который в этом году выступал на SmartData с похожим докладом тык
🐿 Больше всего понравился практический доклад по Flink - объясняли про окна событий на пальцах (точнее на белочках и орешках) и как их джойнить между собой. Лайк 👍
Я тут поресерчила в конфлюэнсе - у нас есть R&D команда, которая занимается ресерчами новых технологий. И они еще в начале 2022 года (если не раньше) тестили Trino, Iceberg, Hudi, Delta Lake (но не знаю, к чему пришли).
А на кофе-брейке я осмелилась подойти к CDO WB и начать разговор🌼 Помню, что еще давно писала ему по поводу рекламы моего канальчика, но после расценок решила ничего не делать))
3 348
Я начала курс по ✨систем дизайн✨
Давно хотела в это погрузиться - как проектировать, как считать ресурсы и нагрузку, как выбирать технологии
чтобы не только крутить таблички, но и выбиваться в тех лиды👔
У нас есть закупленные курсы, и конкретно этот от карпова на 5 недель. Я уже посмотрела первый вводный урок про то, что будет:
🔘как собирать фкц и нефкц требования
🔘как считать нагрузку
🔘как делать высокоуровневый дизайн
🔘а как покомпонентный
🔘а что по масштабированию, отзывчивости и мониторингу
🔘а сколько закладывать на это все в бюджет
🔘а может, лучше взять менее идеальную штуку, но по которой у нас есть экспертиза?
Среди спикеров Валерий Бабушкин, который накидал кучу непонятных букв типо ELP, consistent hashing, QPS, trie, фильтр Блума и т.д.
Ну ладно, не совсем непонятных 😁 Trie я видела в задачках на литкоде, а фильтр Блума использовала в магистерской)
Плюс это все еще и с точки зрения данных, а не чисто приложух
Короче, звучит супер хайпово 🍢
3 348
🌟Ответ🌟
Вопрос тут
Правильный вариант - оба!
В having можно использовать:
⚫️любую агрегирующую функцию (необязательно ту, которая в селекте)
⚫️колонки из group by
⚫️константы (применение не придумала)
Так что чисто технически можно фильтровать значения и в having, но, вероятно, это будет дольше 😔 А в некоторых базенках оптимизатор сам делает, как where
3 348
Закулисье IT: честный взгляд изнутри на управление проектами, продуктами и командами
Менеджмент продуктов и руководство в IT — сложный процесс, о котором известно не так много. На канале «Кем я хочу стать когда вырасту» автор рассказывает о развитии продуктов, продакт-менеджеров и работе руководителя.
Что стоит прочитать в первую очередь:
• От чего на самом деле зависит успех в IT
• Почему стремятся в руководителями и стоит ли это того?
• Почему не нужно идти на курсы программирования, чтобы работать в IT
Все посты основаны на личном опыте более 10 лет в роли тимлида и руководителя.
Подписывайтесь на канал, чтобы погрузиться в реальный мир IT без розовых очков.
Реклама. Миронова Н.О. ИНН: 772985604739 erid:2VtzqvNtpHS
Available now! Telegram Research 2025 — the year's key insights 
