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

по вопросам сюда: @aigul_sea
Download Telegram
👍 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
Прошла неделя 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