Data Science: SQL и Аналитика данных
№ 6205468675 На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL. Сотрудничество: @niktwix Менеджер: @Spiral_Yuri
Show more📈 Analytical overview of Telegram channel Data Science: SQL и Аналитика данных
Channel Data Science: SQL и Аналитика данных (@pizdatascience) in the Russian language segment is an active participant. Currently, the community unites 35 831 subscribers, ranking 3 681 in the Technologies & Applications category and 17 985 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 35 831 subscribers.
According to the latest data from 31 July, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -1 754 over the last 30 days and by -159 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 16.25%. Within the first 24 hours after publication, content typically collects 10.79% reactions from the total number of subscribers.
- Post reach: On average, each post receives 5 825 views. Within the first day, a publication typically gains 3 870 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
- Thematic interests: Content is focused on key topics such as sql, индекс, sqlite, строка, index.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“№ 6205468675
На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL.
Сотрудничество: @niktwix
Менеджер: @Spiral_Yuri”
Thanks to the high frequency of updates (latest data received on 01 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
SELECT DISTINCT u.id, u.name
FROM users u
JOIN orders o ON o.user_id = u.id;
Лучше так:
SELECT u.id, u.name
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);
Почему это сильный приём:
EXISTS останавливается, как только находит первое совпадение
не нужно тащить лишние строки
не нужно потом убирать дубли
логика запроса становится честной - ты проверяешь наличие, а не собираешь мусор
Это один из самых частых hidden performance fixes в SQL. Если видишь DISTINCT, сразу спрашивай себя: он тут реально нужен или просто маскирует плохую логику JOIN.
➡️ https://github.com/FalkorDB/QueryWeaver
сё про Data Science
🇷🇺 Читайте нас в MAXSELECT
cardholder_id,
timestamp,
amount,
merchant_id,
timestamp - LAG(timestamp) OVER w AS time_since_last,
CASE WHEN merchant_id <> LAG(merchant_id) OVER w
THEN 'changed' ELSE 'same' END AS merchant_change,
sum(amount) OVER (
PARTITION BY cardholder_id
ORDER BY timestamp
RANGE BETWEEN INTERVAL '24 hours' PRECEDING AND CURRENT ROW
) AS running_24h_total,
ROW_NUMBER() OVER (
PARTITION BY cardholder_id, date(timestamp)
ORDER BY timestamp
) AS tx_of_day
FROM transactions
WINDOW w AS (PARTITION BY cardholder_id ORDER BY timestamp)
ORDER BY cardholder_id, timestamp;
И после этого уже прогонять проверки с помощью WHERE:
SELECT *
FROM tx_with_windows
WHERE tx_of_day >= 5
AND time_since_last < INTERVAL '60 seconds'
AND merchant_change = 'changed';
Главное — не переусердствовать и помнить, что каждый сигнал по отдельности, как правило, ничего не доказывает: и обычному человеку может понадобиться снять деньги с карты несколько раз подряд или сбегать в магазин посреди ночи. Чтобы отсеять честных пользователей от мошенников, нужно смотреть на несколько параметров в совокупности.
Всё про Data Science
🇷🇺 Читайте нас в MAX
SELECT DISTINCT u.id, u.name
FROM users u
JOIN orders o ON o.user_id = u.id;
Лучше так:
SELECT u.id, u.name
FROM users u
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.user_id = u.id
);
Почему это сильный приём:
EXISTS останавливается, как только находит первое совпадение
не нужно тащить лишние строки
не нужно потом убирать дубли
логика запроса становится честной - ты проверяешь наличие, а не собираешь мусор
Это один из самых частых hidden performance fixes в SQL. Если видишь DISTINCT, сразу спрашивай себя: он тут реально нужен или просто маскирует плохую логику JOIN.
Всё про Data Science
🇷🇺 Читайте нас в MAXNOTIFY, например.
Да, действительно, и, если вам нужно мониторить изменения в небольшой, не слишком часто обновляющейся таблице, то это отличный вариант. Но дело в том, что все уведомления NOTIFY падают в одну очередь, и если таких уведомлений много, то они затормозят работу всей БД.
Кроме того, их размер ограничен 8000 байтов, чего может быть недостаточно. А еще, если сервис-получатель был по какой-то причине не доступен и сообщение не дошло, повторное через NOTIFY не отправляется — то есть данные просто потеряются.
В общем, не идеальный вариант.
➡️ Альтернатива — это настроить Write-Ahead Log или WAL, чтобы получать уведомления из него.
Спойлер: этот вариант тоже не идеальный. Как минимум, придется повозиться:
⏺️Изменить wal_level на logical со стандартного replica — так он начнет делать более подробные записи о том, как и что конкретно изменилось в базе.
⏺️Создать publications (то есть, расписать, какие таблицы и действия вы хотите отслеживать) и репликационный слот (то есть отдельную копию WAL, которая гарантирует, что никакие важные данные из лога не удалятся, пока уведомление не будет отправлено).
⏺️Создать listener, который будет получать уведомления и перенаправлять их дальше — в очередную таблицу, в приложение или мессенджер. Или вообще распечатать.
➡️ Но если вам нужно настроить отправку уведомлений и другие способы не подходят, это может быть вполне рабочее решение. Как воплотить его в жизнь, по шагам описано в подробном (очень подробном) гайде.
Всё про Data Science
🇷🇺 Читайте нас в MAXviking://
Память, ресурсы и навыки организованы как директории с уникальными URI.
Агент может ls, find и навигировать по контексту, как разработчик в терминале.
Главный прорыв — многоуровневая загрузка контекста:
- L0 — одно предложение для быстрого поиска
- L1 — обзор ~2000 токенов для принятия решений
- L2 — полные детали, загружаются только когда действительно нужны
Большинство агентов просто загружает всё в контекст и надеется на лучшее.
OpenViking загружает только нужные данные и только в нужный момент.
Результат:
- меньше расходов на токены
- выше точность
- быстрее работа агентов
Retrieval теперь тоже работает логичнее.
Вместо одного плоского семантического поиска:
1. сначала происходит позиционирование на уровне директорий
2. затем рекурсивный поиск внутри наиболее релевантных директорий
Можно буквально видеть траекторию поиска — это больше не чёрный ящик.
Есть и механизм самоэволюции агента.
В конце каждой сессии система автоматически:
- извлекает новые знания
- обновляет память агента
- обновляет память пользователя
То есть агент становится умнее с каждым использованием.
Проект уже имеет:
- 9K звёзд на GitHub
- 13 контрибьюторов
Разработан командой ByteDance Viking, которая строит инфраструктуру векторного поиска с 2019 года.
Проект полностью open-source под лицензией Apache 2.0.
Всё про Data Science
🇷🇺 Читайте нас в MAX