Открытый канал ID 69194156236960

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

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

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

Каналов в рубрике
1 733
Место этого канала
№ 21
Открыть рубрику →
Каналов в рубрике
4 770
Место этого канала
№ 115
Открыть рубрику →

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

🔥 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.

Обычная формула расстояния без учёта границ даст неверный ответ
Просмотры: 33
Перейти в пост Открыть в MAX Сообщить о неточности
⚡️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)

Рекламный пост

Просмотры: 201
Перейти в пост Открыть в MAX Сообщить о неточности
🔥 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.
Просмотры: 211
Перейти в пост Открыть в MAX Сообщить о неточности
🔥 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.
Просмотры: 509
Перейти в пост Открыть в MAX Сообщить о неточности
🔥 Исследователи нашли способ сократить расход токенов ИИ-агентов в 50 раз

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

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

Остальные, промежуточные рассуждения удаляются.
Просмотры: 544
Перейти в пост Открыть в MAX Сообщить о неточности
Погружаемся с головой в сложный мир IT-компаний — команда Cloud․ru не просто пишет отчеты о своей работе, а делает ламповый и годный контент про ИИ, облако и инфраструктуру.

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

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

Подписывается и читаем — здесь.
Просмотры: 415
Перейти в пост Открыть в MAX Сообщить о неточности
SQL-запрос внезапно стал медленным? Проверь не только индексы, но и статистику

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

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


ANALYZE users;


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


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


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

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

Особенно часто это всплывает после массовых INSERT, UPDATE, импорта данных или резкого изменения распределения значений.
Просмотры: 281
Перейти в пост Открыть в MAX Сообщить о неточности
Одна строка в конфиге ускорила 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
Просмотры: 288
Перейти в пост Открыть в MAX Сообщить о неточности
Один 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 мс.

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

Важно не только создать индекс, но и написать запрос так, чтобы оптимизатор реально смог его использовать.
Просмотры: 280
Перейти в пост Открыть в MAX Сообщить о неточности
Ox Alpha уже доступна бесплатно на Yenisei
Пока все обсуждают новые флагманские модели, появилась открытая — Ox Alpha.

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

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

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

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

https://yenisei.ru
erid: 2W5zFJSPcGH

Рекламный пост

Просмотры: 239
Перейти в пост Открыть в MAX Сообщить о неточности
Вся лента — после бесплатной регистрации
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Data Science: SQL и Аналитика данных» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

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

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти