Data Science: SQL и Аналитика данных
№ 6205468675 На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL. Сотрудничество: @niktwix Менеджер: @Spiral_Yuri
Mostrar más📈 Análisis del canal de Telegram Data Science: SQL и Аналитика данных
El canal Data Science: SQL и Аналитика данных (@pizdatascience) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 38 443 suscriptores, ocupando la posición 3 573 en la categoría Tecnologías y Aplicaciones y el puesto 16 832 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 38 443 suscriptores.
Según los últimos datos del 10 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -1 444, y en las últimas 24 horas de 15, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 13.17%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 10.93% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 5 057 visualizaciones. En el primer día suele acumular 4 197 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 0.
- Intereses temáticos: El contenido se centra en temas clave como sql, индекс, sqlite, строка, index.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“№ 6205468675
На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL.
Сотрудничество: @niktwix
Менеджер: @Spiral_Yuri”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 11 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
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
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
