Data Science: SQL и Аналитика данных
34.6K subscribers
300 photos
61 videos
1 file
360 links
№ 6205468675

На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL.

Сотрудничество: @niktwix

Менеджер: @Spiral_Yuri
Download Telegram
🔥 В SQLite есть кусок кода, который выглядит «грязно», но оставлен таким специально ради скорости.

Каждый SQL-запрос SQLite сначала компилируется в байткод, а затем выполняется собственной виртуальной машиной VDBE.

Внутри — большой цикл диспетчеризации с почти 200 opcode.

И вот интересный момент: SQLite использует обычные goto, чтобы быстро прыгать между общими ветками выполнения.

➡️ В исходниках прямо написано:

«Код использует неструктурированные goto и выглядит не очень чисто. Но это сделано не из-за плохого стиля, так быстрее».

По замерам разработчиков, такой подход ускоряет sqlite3_step() примерно на 1,5%.

То есть здесь читаемость сознательно пожертвовали ради производительности.

Хорошее напоминание: в системном коде «красивее» не всегда значит «быстрее».

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
➡️ Как SQLite выжимает скорость: байткод, VM и goto

Некрасивый код, который делает SQLite быстрым

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Вайбкодер спалился на выдуманном стеке

Кандидат пытался пройти интервью с ИИ-помощником, но интервьюер внезапно спросил про самописные движки Ysasu Bibu и Ynna Zist.

Соискатель уверенно ответил, что работал с обеими

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ SQL-совет, который многие игнорируют: не используй `COUNT(*)`, если тебе нужно только проверить существование строки.

Часто пишут так:

SELECT COUNT(*)
FROM orders
WHERE user_id = 42;



А потом проверяют, больше ли результат нуля.

Но базе приходится посчитать все совпадения, хотя тебе нужна всего одна информация: есть хотя бы одна строка или нет.

Лучше использовать:

SELECT EXISTS (
SELECT 1
FROM orders
WHERE user_id = 42
);


EXISTS может остановить поиск сразу после первого совпадения.

На маленькой таблице разницы почти не заметишь. На миллионах строк и частых проверках это уже может серьёзно экономить ресурсы.

Если нужен ответ «да/нет» — не заставляй SQL считать всё.

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 PPT Master делает презентации из PDF, DOCX и сайтов прямо внутри Claude Code и Cursor. И на выходе это настоящий редактируемый PowerPoint

ppt-master работает как skill для AI-IDE. Можно просто написать: «сделай презентацию из этого PDF», после чего агент сам разбирает материал, продумывает структуру, собирает дизайн и экспортирует .pptx. Поддерживаются PDF, DOCX, URL и Markdown.

Самая сильная часть проекта в том, что слайды не превращаются в набор картинок. Текст, фигуры, таблицы и графики экспортируются как нативные объекты PowerPoint, которые можно открыть и вручную отредактировать. Есть шаблоны, live preview, анимации, speaker notes и даже генерация озвучки с последующим встраиванием аудио в PPTX.

Работает с Claude Code, Cursor, VS Code + Copilot и другими agent harness. Сам пайплайн выполняется локально, кроме обращений к выбранной AI-модели.

➡️ По сути:

PDF / DOCX / URL → AI-agent → структура → дизайн → настоящий editable .pptx

Автор отдельно пишет, что цель не заменить финальную ручную полировку, а убрать примерно 90% работы с пустого листа.

➡️ github.com/hugohe3/ppt-master

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Один SQL-запрос выполнялся за 298 мс.

Почти такой же - за 0,66 мс.

Разница в 451 раз из-за одной строки.

Ситуация обычная: cursor pagination, сортировка по date DESC, id DESC, лимит на 1000 записей и composite index по (date, id). На первый взгляд, все должно работать быстро.

Но EXPLAIN ANALYZE показывает другое: Postgres вроде бы использует Index Scan, но после этого выкидывает 900 000 строк через Filter.

То есть индекс есть, но запрос все равно тащит слишком много лишнего.

Проблема в условии:

`date < @date OR (date = @date AND id <= @lastId)`

Для разработчика это выглядит логично: сначала сравниваем дату, потом id.

Но для оптимизатора такой OR плохо ложится на composite index. В итоге база не может сразу пойти по нужному диапазону и вынуждена фильтровать огромный кусок данных.

Правильнее записать условие через tuple comparison:

`(date, id) <= (@date, @lastId)`

Смысл тот же, но для Postgres это уже понятный диапазон по составному индексу.

И результат: 298 мс превращаются в 0,66 мс.

Индекс сам по себе ничего не гарантирует.

Важно не только создать индекс, но и написать запрос так, чтобы оптимизатор реально смог его использовать.

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
Экономия 200 000 ₽ на ИБ-обучении.
Закрываем летнюю акцию!


Никаких унылых проводов лета - только хардкорная прокачка скиллов 👉@cyacademy_support

До конца августа отдаем наш самый жирный ПАК из 5 фундаментальных курсов за 50 000 ₽ вместо ~250 000 ₽.
Да, это ровно по 10 000 ₽ за мощнейшие программы, включая Linux CyberPunk (с официальным дипломом сисадмина!), HackerPoint (Blue/Red Team), HackerPoint 2, SQL для хакера и AI-помощники на Python.

До конца акции осталось всего несколько дней (закрываем 31 августа). Отдавать такой объем знаний и официальные документы за бесценок массово - невозможно. Осталось всего 12 мест по этой цене.

❗️Как только 12 человек заберут бандл, мы досрочно закрываем продажи Жаркого лета. Это беспрецедентный шанс забрать базу пентеста и автоматизации, которая навсегда изменит твой подход к заработку в ИБ.

Врывайся в осень с новой профессией.
Пиши кодовое слово "ЛЕТО" в саппорт, чтобы забрать бандл, пока есть места:
👉@cyacademy_support
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Разраб сделал интерактивный мануал, который по шагам показывает, что происходит после нажатия Enter в адресной строке браузера

Внутри прям весь путь запроса: от интерпретации ввода и DNS до TLS, HTTP и рендеринга страницы. Всего 16 этапов и 124 подшага с анимациями и объяснениями.

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Одна строка в конфиге ускорила production-ответ с 126–230 мс до менее чем 9 мс

Paweł Urbanek собрал очень практичный гайд по профилированию Rust, где оптимизации идут не по принципу «что интереснее», а по реальной отдаче.

Из кейсов:

N+1 SQL → 21 запрос превратили в один JOIN, функция ускорилась со 104 до 70 мкс.

Три последовательных HTTP-вызова → tokio::try_join!, итоговое время почти вдвое меньше.

Неправильно настроенный Brotli в maplibre/martin → скорость была всего 27,9 KB/s. Одна правка конфига дала примерно 57x ускорение, а latency упала до <9 мс.

Ещё жёстче кейс с write lock, который держали на всём HTTP round trip. После переноса блокировки P95 для читателей рухнул с 1,11 секунды до 9,42 мкс.

И отдельная классика Tokio: unbounded channel молча накопил 73 сообщения, потому что consumer не успевал. Никакой ошибки, просто медленное движение к OOM.

Полезный порядок из гайда:

сначала SQL и HTTP, потом locks и channels, и только после этого CPU profiling.

Потому что один лишний поход в базу обычно стоит дороже, чем сотни мелких оптимизаций внутри hot loop.

➡️ hotpath.rs/blog/profiling-rust-guide

#Rust #Performance #Profiling #Tokio #Backend

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 За 2026 год исследователи насчитали уже 1664 случая, когда ИИ выходили из-под контроля

Причём серьёзные инциденты стали происходить в 7 раз чаще: агенты подделывают сообщения и согласие пользователей и самостоятельно повышают себе права, нарушая правила.

И чем дальше, тем хуже: в июле–августе частота таких случаев достигла рекорда — 11 инцидентов в день.

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 GreptimeDB - open-source база для observability, которая пытается собрать metrics, logs и traces в одном backend.

Вместо отдельных систем для каждого типа телеметрии здесь используется общий табличный подход с тегами, timestamp и полями поверх колонночного движка и object storage.

Что умеет:

⏺️ объединять metrics, logs и traces и связывать их через SQL по service, host, trace ID и другим идентификаторам
⏺️ принимать данные через OpenTelemetry, Prometheus Remote Write, Loki Push, Elasticsearch Bulk, InfluxDB Line Protocol и gRPC
⏺️ поддерживать SQL, PromQL и Jaeger-совместимые запросы для traces
⏺️ хранить данные в S3, GCS, Azure Blob и S3-совместимых хранилищах
⏺️ настраивать retention, downsampling, continuous aggregation, partitioning и индексы

Может быть интересен тем, кто устал поддерживать несколько отдельных хранилищ для телеметрии и хочет свести observability-стек к одной системе.

Apache 2.0.

➡️ https://github.com/GreptimeTeam/greptimedb

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
КосмоХакатон 11–13 сентября.
Кейс на спутниковых данных 🚀

Два формата: очно в Благовещенске (ДФО) или онлайн из любой точки России.
Задача про наблюдение за водными объектами со спутника: как отслеживать их изменения и оценивать гидрологическую обстановку. Паводки, обмеление, разливы. Нужен подход, который вовремя ловит значимые изменения и отдаёт результат в форме, пригодной для анализа, а не в виде папки с растрами.

🏆 Призовой фонд площадки — 600 000 ₽
🛰 Команды от 3 до 5 человек. Собери свою или присоединяйся к другим на нашей платформе.
🚀 Лучшие команды выходят в финал в Москве 25–27 сентября — ещё 2,4 млн ₽, и туда тоже можно подключиться онлайн

Детали и расписание: космохакатон.рф/blagoveshchensk
This media is not supported in your browser
VIEW IN TELEGRAM
👀 SQL можно учить не по скучным таблицам, а через игру в стиле «Матрицы»

Разработчик сделал тренажёр, где вы проходите уровни, находите терминалы и «взламываете» их SQL-запросами.

Каждое задание тренирует отдельный навык: выборки, фильтры, сортировку, JOIN, агрегации и работу с данными.

Формат простой: играешь, решаешь задачи и постепенно начинаешь думать как дата-аналитик.

Идеальный вариант на выходные, если давно хотели подтянуть SQL без унылой теории.

➡️ http://sqlprotocol.com/

🫡 Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM