дата инженеретта – Telegram
дата инженеретта
2.98K subscribers
242 photos
28 videos
4 files
102 links
мелкое — крупно,
в глубоком разговоре
мудрость приходит

по вопросам сюда: @aigul_sea
Download Telegram
Прошедший 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 и начать разговор🌼 Помню, что еще давно писала ему по поводу рекламы моего канальчика, но после расценок решила ничего не делать))
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥112👍1🌚1
Я иду на интенсив по англу!

Есть люди, которые спрашивают про мой уровень англа и как я до него дошла. Все-таки он очень важен в нашей сфере, и гуглеж на англ - наше все. Так что рассказываю свою краткую историю...

📖 История

🟣Начиналось все очень плохо. Два года (весь 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% на первую покупку)
Я в предвушении🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍832
👍 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍9🔥41
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3🤔1
А вы знали, что существует лидерский манифест о данных?
👍1
Как я забила всю оперативку

⭐️Нужно было переложить табличку из кх в 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 млн строк пишется за несколько секунд 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2119👍3
Мы в этой жизни всё делаем правильно?

Картина буквами: 10% от всего плана запросов
🌚10👍1🤔1
Я прочитала DAMA-DMBOK

Это книжка на 830 страниц - "Свод знаний по управлению данными". Мне ее как-то советовали прочитать, и вот полтора месяца я упорно это делала 📖

Вкратце эта книга про фреймворк DAMA (Data Management Association). Про то, как должно быть. Он включает такие аспекты:
🔵архитектура и моделирование данных
🔵хранение
🔵безопасность
🔵интеграции
🔵основные данные
🔵метаданные
🔵качество данных
и еще несколько (на картинке - колесо DAMA)

Я по ходу чтения записывала интересные, новые для меня моменты, буду постепенно делиться)

Зачем это все нужно?

Одни и те же данные складываются по-разному, называются по-разному. Одинаковые метрики считаются по-разному.

Глобальная цель - чтобы я из маркетинга и Оля из любой другой команды понимали, что цена всегда до ндс, а clientid имеет тип string и обозначает человека, который купил у нас продукт.

Это нужно, чтобы больше не переписываться в почте на тему "А это что означает? А что заложено в эту метрику?". Мы делаем каталог данных, и каждый ходит туда и смотрит нужные ему вещи:
🟡бизнес-смысл
🟠бизнес-правила
🟡источник
🟠логика преобразований из системы в систему (lineage)

🙂 Еще сквозь всю книгу красной линией проходит мысль - бизнес и IT должны работать вместе. Кстати, у нас когда-то вставал вопрос - нужно ли IT-командам на 100% понимать, как их работа влияет на метрики бизнеса?

В Сбере есть активность "Random Coffee", где рандомно подбирается зареганный собеседник. И несколько человек мне ответили, что они просто крутят модельки и жизнь прекрасна 🌼

Что думаете?

#dama_dmbok
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2365👍2
Кейс про паркеты

Предыстория

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


Ура😑
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🐘 Ребятки, в эту субботу в Москве состоится осенний бигдатник 🐘

Он будет:
⏺️про технологии - Flink, Streamhouse, Iceberg, Debezium
⏺️про кейсы
⏺️про нетворкинг

Движуха на целый день с едой!💃
Кто не в мск - будет онлайн стрим 📺

Кто боится ходить на такие сходки - у меня дома для мотивации уже сколько лет висит цитата Коко Шанель:

Если вы хотите иметь то, что никогда не имели, вам придётся делать то, что никогда не делали.


Я еще в прошлый раз хотела сходить - практически выиграла билеты, но что-то пошло не так( Так что собираюсь в этот раз обязательно быть 🙂 Надеюсь с кем-то из вас увидеться❤️

🔉Координаты:

⏺️30.11.2024, 10:20
⏺️Таганская, 9

Когда будете покупать билет, введите в поле "Онлайн/Офлайн, Компания" промокод DATAENGINE. Тогда есть большой шанс, что следующий бигдатник для вас будет бесплатным!

За билетами сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
135🔥4👍1
Ураа, мне пришла приглашалка на митап 🌼 Неужели я достигла уровня значимых факапов?

🍿 А в комментах можете поделиться, были ли у вас неудачи и как вы из них выпутывались. Было бы интересно посмотреть)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13👍1
🎄 Завтра стартуют advent-челленджи 🎄

Advent of Code
Advent of SQL

На sql я наткнулась только недавно. Возможно, он проводится в первый раз?
А вот про advent of code мне рассказали в 2020 году в кругу американских прогеров и математиков

🗓️ Это связано с адвент-календарем, в котором каждый день с 1 по 25 декабря люди открывают по одному окошечку с подарком по случаю католического рождества

💻 Обычно первые задачки супер изи, но до 25 дня я не доходила (потому что алгосы - это слабенькое место), а в прошлом году уровень в разы повысился из-за развития AI штук. Что будет в этом году - даже не знаю. Хотя там есть глобальный лидерборд, и некоторые пишут длиннющие однострочники и решают в терминале за миллисекунды 😱

В общем, это интересная штука, потому что:

🩷есть сторителлинг, т.е. вы не просто решаете рандомные задачки, а они еще связаны единой канвой - эльфами, тропическими островами и прочими штуками

🩷можно круто прокачаться в использовании либы itertools (если на питоне)

🩷можно почекать на реддите, как другие решают на абсолютно любом языке (есть даже Excel, Zig, J, Uiua, Raku и куча других ноунеймов)

🩷можно выставить свое решение, чтобы кто-то прокомментил. мои решения даже набирали два лайка 😁

🩷а еще однажды на собесе спросили, в каких это я хакатонах участвую 😅 возможно, это был плюсик в карму!
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🤷2
Рекомендасьон

Мой коллега по парте сходил на конфу 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.
Решила завести свой профиль и канал в сетке

Тык для канала
Тык для профиля

📱Пока что моя лента на 90% состоит из мемов, но там ещё есть вакансии, новости, истории и т.д. По сути сетка - это "линкедин дома"

Подписывайтесь, если уже там, или залетайте, если ещё нет 🌼
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍4🌚3
По следам F*ckup Meetup

🎙️ Вчера прошёл митап, где рассказывали про фейлы. В заявке нужно было рассказать свою историю, самые крутые зачитали со сцены)

Просто 🩷звездочка🩷- это фейл с видоса

А также такие:

Перенастраивал систему авторизации, в итоге удалил токены всех существующих пользаков

Ввёл регламент проведения работ на проде. В тот же вечер сам зашёл и случайно удалил там все конфиги

1го апреля дропнула бд на проде. Все узнали только 2го, потому что никто не верил.
Но на следующий день пришёл бизнес, и все поверили


Из докладов особенно понравились вот эти:

1️⃣ Тестировали на проде в пт в 17:00 на АЭС с эвакуацией целого региона (почти).
Запустили скрипт, сервак не ответил, все ушли домой, а скрипт был зациклен🌚 В итоге когда сервак подключился, в правительство полетела куча отбивок о превышении уровня радиации

2️⃣ На графике платежей начали появляться 7-значные цифры. Причём у клиентов не списывались деньги, потому что у платежного шлюза был лимит в 100к (но на это не было нормальных логов)

А у нас в бд я тоже видела аномалии по типу "150 млрд пользователей в день", но там проблема с переполнением)

3️⃣ Что-то умное про кафку и карафку (kafka для ruby) 😅 Как решали инцидент с 12 до 21, как тасовали консьюмер группы, как перезапускали кластер без перебалансировки. И что в итоге была проблема в лишнем топике, который когда-то удалили, но где-то он остался



Считаю вечер продуктивным!
⭕️митап интересный
⭕️фуршет был
⭕️встретила 2х знакомых и познакомилась ещё с 4мя
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍75