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

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

Відкрити в Telegram

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

Показати більше
3 348
Підписники
+424 години
-127 днів
+430 день
Архів дописів
Repost from DataSkewer
🔆 Вот и подошел к концу Highload++ 2024. Первый раз был на такой крупной конференции, и я конечно же восхищен. Вот что я могу сказать, из плюсов ➕Очень удобный бот конференции в котором можно отслеживать доклады и устроить Random Coffee ➕Очень широкий спектр тем (от даты до архитектуры, маркетинга и безопасности) ➕Прекрасный кейтеринг ➕Куча C-levelов российского бигтеха с которыми можно вживую поговорить и задать вопросы (переборов страх быть кринжовым) ➕Колоссальные возможности для нетворкинга - я поставил себе цель, познакомиться и обменяться контактами с 10+ специалистами и перевыполнил эту цель в 1.5 раза, без особых усилий. Из минусов (каинда): ➖стоит разделить конференцию на фестивальную часть и часть докладов - невозможно физически посетить все доклады и все стенды - я старался держать баланс, но охватил от силы 30 процентов стендов и 20 процентов докладов. (Доклады к тому же шли в параллель) ➖Звездами этой конференции были PHP и Golang - у меня немного другой стек Ну и подводя итог, рекомендовал бы посетить эту конференцию, специалистам уровня Middle+ Тк у многих докладов есть неслабый порог вхождения, и вам нужно быть хотя бы специалистом конкретно вашей области + иметь хорошие знания в general computer science (вспоминаем о входителях в айти, говорящих, что алгоритмы, паттерны проектирования и прочая БАЗА никому не нужна) - иначе для вас конференция сведется лишь к фестивальной части. В следующем посте, на основе данных этой конференции, расскажу о том когда вашему хадупу/S3 стоит задуматься об использовании Apache Iceberg.

Рекомендасьон Мой коллега по парте сходил на конфу Highload 2-3 декабря Эксклюзивный контент🔥 И вообще пишет про классные штуки

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

🎄 Завтра стартуют advent-челленджи 🎄 Advent of Code Advent of SQL На sql я наткнулась только недавно. Возможно, он проводит
🎄 Завтра стартуют advent-челленджи 🎄 Advent of Code Advent of SQL На sql я наткнулась только недавно. Возможно, он проводится в первый раз? А вот про advent of code мне рассказали в 2020 году в кругу американских прогеров и математиков 🗓️ Это связано с адвент-календарем, в котором каждый день с 1 по 25 декабря люди открывают по одному окошечку с подарком по случаю католического рождества 💻 Обычно первые задачки супер изи, но до 25 дня я не доходила (потому что алгосы - это слабенькое место), а в прошлом году уровень в разы повысился из-за развития AI штук. Что будет в этом году - даже не знаю. Хотя там есть глобальный лидерборд, и некоторые пишут длиннющие однострочники и решают в терминале за миллисекунды 😱 В общем, это интересная штука, потому что: 🩷есть сторителлинг, т.е. вы не просто решаете рандомные задачки, а они еще связаны единой канвой - эльфами, тропическими островами и прочими штуками 🩷можно круто прокачаться в использовании либы itertools (если на питоне) 🩷можно почекать на реддите, как другие решают на абсолютно любом языке (есть даже Excel, Zig, J, Uiua, Raku и куча других ноунеймов) 🩷можно выставить свое решение, чтобы кто-то прокомментил. мои решения даже набирали два лайка 😁 🩷а еще однажды на собесе спросили, в каких это я хакатонах участвую 😅 возможно, это был плюсик в карму!

Ураа, мне пришла приглашалка на митап 🌼 Неужели я достигла уровня значимых факапов? 🍿 А в комментах можете поделиться, были
Ураа, мне пришла приглашалка на митап 🌼 Неужели я достигла уровня значимых факапов? 🍿 А в комментах можете поделиться, были ли у вас неудачи и как вы из них выпутывались. Было бы интересно посмотреть)

🐘 Ребятки, в эту субботу в Москве состоится осенний бигдатник 🐘 Он будет: ⏺️про технологии - Flink, Streamhouse, Iceberg, D
🐘 Ребятки, в эту субботу в Москве состоится осенний бигдатник 🐘 Он будет: ⏺️про технологии - Flink, Streamhouse, Iceberg, Debezium ⏺️про кейсы ⏺️про нетворкинг Движуха на целый день с едой!💃 Кто не в мск - будет онлайн стрим 📺 Кто боится ходить на такие сходки - у меня дома для мотивации уже сколько лет висит цитата Коко Шанель:
Если вы хотите иметь то, что никогда не имели, вам придётся делать то, что никогда не делали.
Я еще в прошлый раз хотела сходить - практически выиграла билеты, но что-то пошло не так( Так что собираюсь в этот раз обязательно быть 🙂 Надеюсь с кем-то из вас увидеться❤️ 🔉Координаты: ⏺️30.11.2024, 10:20 ⏺️Таганская, 9 Когда будете покупать билет, введите в поле "Онлайн/Офлайн, Компания" промокод DATAENGINE. Тогда есть большой шанс, что следующий бигдатник для вас будет бесплатным! За билетами сюда

Кейс про паркеты Предыстория Мы хотим перекладывать паркет-файлики из одной системы в другую. Выложили их на s3. Все, можно з
Кейс про паркеты Предыстория Мы хотим перекладывать паркет-файлики из одной системы в другую. Выложили их на 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
Ура😑

Я прочитала DAMA-DMBOK Это книжка на 830 страниц - "Свод знаний по управлению данными". Мне ее как-то советовали прочитать, и
Я прочитала DAMA-DMBOK Это книжка на 830 страниц - "Свод знаний по управлению данными". Мне ее как-то советовали прочитать, и вот полтора месяца я упорно это делала 📖 Вкратце эта книга про фреймворк DAMA (Data Management Association). Про то, как должно быть. Он включает такие аспекты: 🔵архитектура и моделирование данных 🔵хранение 🔵безопасность 🔵интеграции 🔵основные данные 🔵метаданные 🔵качество данных и еще несколько (на картинке - колесо DAMA) Я по ходу чтения записывала интересные, новые для меня моменты, буду постепенно делиться) ❔ Зачем это все нужно? Одни и те же данные складываются по-разному, называются по-разному. Одинаковые метрики считаются по-разному. Глобальная цель - чтобы я из маркетинга и Оля из любой другой команды понимали, что цена всегда до ндс, а clientid имеет тип string и обозначает человека, который купил у нас продукт. Это нужно, чтобы больше не переписываться в почте на тему "А это что означает? А что заложено в эту метрику?". Мы делаем каталог данных, и каждый ходит туда и смотрит нужные ему вещи: 🟡бизнес-смысл 🟠бизнес-правила 🟡источник 🟠логика преобразований из системы в систему (lineage) 🙂 Еще сквозь всю книгу красной линией проходит мысль - бизнес и IT должны работать вместе. Кстати, у нас когда-то вставал вопрос - нужно ли IT-командам на 100% понимать, как их работа влияет на метрики бизнеса? В Сбере есть активность "Random Coffee", где рандомно подбирается зареганный собеседник. И несколько человек мне ответили, что они просто крутят модельки и жизнь прекрасна 🌼 Что думаете? #dama_dmbok

Мы в этой жизни всё делаем правильно? Картина буквами: 10% от всего плана запросов
Мы в этой жизни всё делаем правильно? Картина буквами: 10% от всего плана запросов

Как я забила всю оперативку ⭐️Нужно было переложить табличку из кх в 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 млн строк пишется за несколько секунд 🙂

А вы знали, что существует лидерский манифест о данных?
+1
А вы знали, что существует лидерский манифест о данных?

📖 IT-подборка Мы с коллегами из других интересных айтишных каналов подготовили для вас огненную подборку🔥 Возможно, там вы найдете что-то новенькое, что закроет кусочек текущих потребностей) А если у вас есть свой канальчик и вы хотите в подборку, можете написать сюда

System Design. №1 Требования Писала тут, что начала проходить курс по SD. Решила вести собственные конспекты, чтобы лучше укл
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

👍 DE на Матемаркетинге 👍 7-8 ноября прошла конфа "Матемаркетинг", где рассказывают в основном про аналитику, рекламу, метри
+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

Я иду на интенсив по англу! Есть люди, которые спрашивают про мой уровень англа и как я до него дошла. Все-таки он очень важе
Я иду на интенсив по англу! Есть люди, которые спрашивают про мой уровень англа и как я до него дошла. Все-таки он очень важен в нашей сфере, и гуглеж на англ - наше все. Так что рассказываю свою краткую историю... 📖 История 🟣Начиналось все очень плохо. Два года (весь 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% на первую покупку) Я в предвушении🙂

Прошедший Data.Meetup 🕒24.10.2024 состоялся Data.Meetup 2024 в Сбере, где сначала рассказывали про сберовские штуки типо суп
+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 и начать разговор🌼 Помню, что еще давно писала ему по поводу рекламы моего канальчика, но после расценок решила ничего не делать))

Я начала курс по ✨систем дизайн✨ Давно хотела в это погрузиться - как проектировать, как считать ресурсы и нагрузку, как выби
Я начала курс по ✨систем дизайн✨ Давно хотела в это погрузиться - как проектировать, как считать ресурсы и нагрузку, как выбирать технологии чтобы не только крутить таблички, но и выбиваться в тех лиды👔 У нас есть закупленные курсы, и конкретно этот от карпова на 5 недель. Я уже посмотрела первый вводный урок про то, что будет: 🔘как собирать фкц и нефкц требования 🔘как считать нагрузку 🔘как делать высокоуровневый дизайн 🔘а как покомпонентный 🔘а что по масштабированию, отзывчивости и мониторингу 🔘а сколько закладывать на это все в бюджет 🔘а может, лучше взять менее идеальную штуку, но по которой у нас есть экспертиза? Среди спикеров Валерий Бабушкин, который накидал кучу непонятных букв типо ELP, consistent hashing, QPS, trie, фильтр Блума и т.д. Ну ладно, не совсем непонятных 😁 Trie я видела в задачках на литкоде, а фильтр Блума использовала в магистерской) Плюс это все еще и с точки зрения данных, а не чисто приложух Короче, звучит супер хайпово 🍢

🌟Ответ🌟 Вопрос тут Правильный вариант - оба! В having можно использовать: ⚫️любую агрегирующую функцию (необязательно ту, которая в селекте) ⚫️колонки из group by ⚫️константы (применение не придумала) Так что чисто технически можно фильтровать значения и в having, но, вероятно, это будет дольше 😔 А в некоторых базенках оптимизатор сам делает, как where

Закулисье IT: честный взгляд изнутри на управление проектами, продуктами и командами Менеджмент продуктов и руководство в IT — сложный процесс, о котором известно не так много. На канале «Кем я хочу стать когда вырасту» автор рассказывает о развитии продуктов, продакт-менеджеров и работе руководителя. Что стоит прочитать в первую очередь: • От чего на самом деле зависит успех в ITПочему стремятся в руководителями и стоит ли это того?Почему не нужно идти на курсы программирования, чтобы работать в IT Все посты основаны на личном опыте более 10 лет в роли тимлида и руководителя. Подписывайтесь на канал, чтобы погрузиться в реальный мир IT без розовых очков. Реклама. Миронова Н.О. ИНН: 772985604739 erid:2VtzqvNtpHS