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 38 443 subscribers, ranking 3 573 in the Technologies & Applications category and 16 832 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 38 443 subscribers.
According to the latest data from 10 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -1 444 over the last 30 days and by 15 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 13.17%. Within the first 24 hours after publication, content typically collects 10.93% reactions from the total number of subscribers.
- Post reach: On average, each post receives 5 057 views. Within the first day, a publication typically gains 4 197 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 11 June, 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
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Ты случайно «подсматриваешь» в тест. Примеры: 👉 нормализация на всём датасете до split 👉 target encoding на всех данных 👉 feature, напрямую связанная с таргетом Модель показывает космический скор, а в проде — провал.Случайный split там, где нельзя
Ты делаешь random split… но данные зависимы. Примеры: 👉 временные ряды 👉 пользователи (один и тот же user в train и test) 👉 сессии Модель узнаёт данные, а не обобщает.Игнорирование времени
В задачах с временем: 👉 ❌ случайный split 👉 ✅ train = прошлое, test = будущее Иначе ты: 👉 обучаешься на будущем 👉 предсказываешь прошлое Это не ML. Это читерство.4️⃣ Дисбаланс классов в split
Ты сделал split и получил: 👉 train: 5% positive 👉 test: 1% positive Метрики начинают врать. Решение: 👉 stratified splitСлишком маленький test
Test = 50 объектов Accuracy = 90% Звучит круто. Но это статистический шум. Маленький test = ненадёжная оценка.Тест используется как валидация
Классическая ошибка: 👉 обучился 👉 посмотрел на test 👉 подкрутил модель 👉 снова посмотрел Это уже не test. Это validation 2.0.Дубликаты в train и test
Если один и тот же объект попал в обе выборки: Модель просто запоминает. Особенно критично: 👉 CV 👉 e-commerce 👉 табличные данные с IDНеправильный split в CV
Cross-validation тоже можно сломать: 👉 leakage между фолдами 👉 группы не учитываются 👉 time-series перемешаны Используй: 👉 GroupKFold 👉 TimeSeriesSplitГлавный инсайт Train/test split — это не про «разделить данные». Это про симуляцию реального мира. Если split не отражает прод — все метрики бесполезны. В одном предложении Плохой split может сделать плохую модель «идеальной» — до момента, когда она выйдет в прод. Всё про Data Science 🇷🇺 Читайте нас в MAX
DATEDIFF
DATEDIFF: эта функция вычисляет разницу между двумя датами. Она используется для того, чтобы обеспечить сравнение именно «сегодняшних» и «вчерашних» температур.
Если сформулировать обычным языком следующий запрос, то окажется, что он выражает следующую идею: нужно выбрать такие идентификаторы, чтобы температура, соответствующая представляемым ими датам, была бы больше, чем температура на «вчерашние» по отношению к ним даты.
SELECT DISTINCT a.Id
FROM Weather a, Weather b
WHERE a.Temperature > b.Temperature
AND DATEDIFF(a.Recorddate, b.Recorddate) = 1
Всё про Data Science
🇷🇺 Читайте нас в MAXClient
↓
Query layer
↓
SSD / memory cache (горячие данные)
↓
Object storage (источник истины)
То есть:
⏺️ холодные данные хранятся дешево в object storage
⏺️ часто используемые попадают в SSD или RAM cache
⏺️ запросы остаются быстрыми (<100ms), но стоимость инфраструктуры падает на порядок
Vector search становится ключевой частью AI-систем:
⏺️ RAG
⏺️ AI-ассистенты
⏺️ semantic search
⏺️recommendation systems
Но именно retrieval слой часто становится самой дорогой частью AI-инфраструктуры.
Архитектура turbopuffer показывает, что:
> дешевый storage + умный cache
> может заменить дорогие memory-based search системы.
Будущее AI-поиска может выглядеть так:
⏺️ object storage как источник данных
⏺️ stateless compute
⏺️ дешёвый storage
⏺️ кэш для hot data
И тогда поиск по миллиардам документов становится почти “zero-cost” инфраструктурой.
Подробнее:
https://turbopuffer.com/blog/zero-cost
Всё про Data Science
🇷🇺 Читайте нас в MAX
Установка Google Chrome (Ubuntu / Debian)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
Запуск браузера
google-chrome
Обновление системы (включая браузер)
sudo apt update && sudo apt upgrade -y
Проверка версии
google-chrome --version
Всё про Data Science
🇷🇺 Читайте нас в MAX
Available now! Telegram Research 2025 — the year's key insights 
