Public channel ID 69194156236960

Data Science: SQL и Аналитика данных

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

Менеджер: https://vk.cc/cUAKaQ

Channels in category
1 757
This channel's rank
№ 22
Open category →
Channels in category
4 958
This channel's rank
№ 116
Open category →
Open in MAX

Posts for the period

By reactions

Search and the whole feed — after free registration. Custom dates — with a subscription; the channel owner sees them for free. Sorting by reactions — with a subscription. Sign up

Loading…

Loading image…
🔥 SQL-задача: ближайшие точки с подвохом

Карта размером 100 × 100 замкнута: переход вправо от x = 100 возвращает к x = 0. По вертикали действует то же правило.

CREATE TABLE points (
id INT PRIMARY KEY,
x INT,
y INT
);

INSERT INTO points VALUES
(1, 1, 1),
(2, 99, 99),
(3, 50, 50),
(4, 52, 52);


Напишите запрос, который найдёт все пары точек с минимальным расстоянием по прямой с учётом переходов через границы.

Условия:

⏺️ точку нельзя сравнивать с собой;
⏺️ пары (1, 2) и (2, 1) считаются одной;
⏺️ при одинаковом минимуме выведите все пары;
⏺️ результат: id1, id2, distance.

Обычная формула расстояния без учёта границ даст неверный ответ
Views: 107
Go to post Open in MAX Report an inaccuracy
Loading image…
⚡️5 фундаментальных курсов по ИБ по цене одного

Это предложение для тех, кто готов войти в новую профессию прямо сейчас!

🔥Пакет курсов за 50 000 ₽ вместо 250 000 ₽:
▪️ Linux CyberPunk - обычная цена 49 500 ₽ (+ Курс идет с официальным дипломом системного администратора!)
▪️ SQL для хакера - обычная цена 15 000 ₽
▪️ HackerPoint - обычная цена ~70 000 ₽
▪️ HackerPoint (Blue vs Red Team) - обычная цена 43 500 ₽
▪️ AI-помощники на Python - обычная цена 71 500 ₽

Вы экономите 200 000 ₽ и получаете полную базу: от работы с терминалом и базами данных до разработки ИИ-агентов и взлома систем.

🔒 Квота: набор на программу ограничен по количеству мест.

🦔Закрепить за собой скидку и узнать подробности:
👉 https://max.ru/id667015044079_4_bot (https://t.me/cyacademy_support)

Ad post

Views: 242
Go to post Open in MAX Report an inaccuracy
Loading image…
🔥 SQL-задача с опасным подвохом

Какой баланс получит аккаунт после выполнения запроса в PostgreSQL?

CREATE TABLE accounts (
id int PRIMARY KEY,
balance int
);

CREATE TABLE operations (
account_id int,
amount int
);

INSERT INTO accounts VALUES (1, 100);
INSERT INTO operations VALUES
(1, 10),
(1, 20);

UPDATE accounts a
SET balance = a.balance + o.amount
FROM operations o
WHERE o.account_id = a.id;


Многие ответят 130, но PostgreSQL обновит строку только один раз.

Результатом может стать 110 или 120. Если целевая строка соединяется с несколькими строками из FROM, PostgreSQL использует одну из них, но какую именно, не гарантируется.

➡️ Правильный вариант:

UPDATE accounts a
SET balance = a.balance + x.total
FROM (
SELECT account_id, SUM(amount) AS total
FROM operations
GROUP BY account_id
) x
WHERE x.account_id = a.id;


Теперь каждой строке accounts соответствует ровно одна строка источника, а баланс станет 130.
Views: 221
Go to post Open in MAX Report an inaccuracy
Loading image…
🔥 Tabularis - единое open-source приложение для работы с SQL

Если приходится постоянно переключаться между разными клиентами для PostgreSQL, MySQL и SQLite, Tabularis собирает всё в одном desktop-приложении.

Что умеет:

⏺️ PostgreSQL, MySQL/MariaDB и SQLite из коробки
⏺️ SQL notebooks с Markdown, результатами и графиками
⏺️ визуальный конструктор запросов
⏺️ Visual EXPLAIN с интерактивным разбором query plan
⏺️ переменные между ячейками
⏺️ MCP-сервер для AI-агентов
⏺️ расширение поддержки других БД через плагины

Подходит как единое рабочее место для аналитики, разработки и отладки SQL.

Apache 2.0.
Views: 512
Go to post Open in MAX Report an inaccuracy
Loading image…
🔥 Исследователи нашли способ сократить расход токенов ИИ-агентов в 50 раз

Исследователи из Google и Университета Пердью представили (https://arxiv.org/html/2608.26263) SKILL.state — новый подход к памяти агентов. Обычно во время длинных задач агент тащит за собой всю историю действий, из-за чего контекст безжалостно и неумолимо разрастается.

Здесь же смысл в том, что вместо всей истории сохраняется только структурированное текущее состояние: важные факты, прогресс и данные, необходимые для следующего шага.

Остальные, промежуточные рассуждения удаляются.
Views: 546
Go to post Open in MAX Report an inaccuracy
Loading image…
Погружаемся с головой в сложный мир IT-компаний — команда Cloud․ru не просто пишет отчеты о своей работе, а делает ламповый и годный контент про ИИ, облако и инфраструктуру.

За 7 лет ребята выпустили более 130 сервисов, обзавелись своим публичным облаком Cloud․ru Evolution, платформой для частных и гибридных сред и крутой песочницей для генеративных нейросетей. А еще в их рядах уже 2000+ профи.

В соцсетях они щедро делятся экспертизой, свежими новостями, живым опытом команд и рассказывают, как на самом деле дышит IT-индустрия изнутри.

Подписывается и читаем — здесь.
Views: 416
Go to post Open in MAX Report an inaccuracy
Loading image…
SQL-запрос внезапно стал медленным? Проверь не только индексы, но и статистику

Оптимизатор выбирает план запроса на основе статистики по данным. Если она устарела, база может решить, что строк мало, выбрать Nested Loop и в итоге прогнать миллионы сравнений.

В PostgreSQL быстро обновить статистику можно так:


ANALYZE users;


А проверить, насколько оценки оптимизатора отличаются от реальности:


EXPLAIN (ANALYZE, BUFFERS)
SELECT *
FROM users
WHERE status = 'active';


Смотри на разницу между rows= и actual rows=.

Если PostgreSQL ожидал 100 строк, а реально получил 500 000, проблема может быть не в индексе, а в плохой статистике.

Особенно часто это всплывает после массовых INSERT, UPDATE, импорта данных или резкого изменения распределения значений.
Views: 281
Go to post Open in MAX Report an inaccuracy
Loading image…
Одна строка в конфиге ускорила 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
Views: 288
Go to post Open in MAX Report an inaccuracy
Loading image…
Один 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 мс.

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

Важно не только создать индекс, но и написать запрос так, чтобы оптимизатор реально смог его использовать.
Views: 281
Go to post Open in MAX Report an inaccuracy
Loading image…
Ox Alpha уже доступна бесплатно на Yenisei
Пока все обсуждают новые флагманские модели, появилась открытая — Ox Alpha.

Что в ней интересного:
1 млн токенов контекста — можно работать с большими репозиториями, документацией и длинными логами.
Заточена под кодинг и reasoning — модель позиционируется для сложных задач разработки и автономной работы AI-агентов.
Мультимодальность — понимает не только текст, но и изображения и видео.
До 131K токенов на ответ — простор для больших задач без постоянного дробления контекста.

И главное: прямо сейчас Ox Alpha можно попробовать бесплатно на Yenisei.

Заходите на yenisei.ru, выбирайте Ox Alpha и тестируйте сами.

Большая модель. Огромный контекст. Ноль рублей за инференс.

https://yenisei.ru
erid: 2W5zFJSPcGH

Ad post

Views: 239
Go to post Open in MAX Report an inaccuracy
The full feed — after free sign-up
VKontakte Telegram Odnoklassniki
Favorites at datool.ru

Follow the channel in your account

Sign up at datool.ru to add the channel “Data Science: SQL и Аналитика данных” to favorites and track its metrics.

Sign up
For channel owners

Verify your channel

Sign in or sign up at datool.ru, then add our bot to the channel following the instructions in your account. Once ownership is verified, the lock disappears and channel management becomes available.

Sign in or sign up

Report an inaccuracy

Describe what needs fixing. If you have a source, add a link.

You are leaving datool.ru

The link leads to an external website. datool.ru is not responsible for its content — check the address before entering passwords or payment details.

Redirecting in 10 s

Go