Data Science: SQL и Аналитика данных
№ 6205468675 На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL. Сотрудничество: @niktwix Менеджер: @Spiral_Yuri
Больше📈 Аналитический обзор Telegram-канала Data Science: SQL и Аналитика данных
Канал Data Science: SQL и Аналитика данных (@pizdatascience) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 35 384 подписчиков, занимая 3 691 место в категории Технологии и приложения и 18 176 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 35 384 подписчиков.
Согласно последним данным от 25 августа, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -631, а за последние 24 часа — 21, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 17.10%. В первые 24 часа после публикации контент обычно набирает 11.33% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 6 050 просмотров. В течение первых суток публикация набирает 4 007 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 0.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как sql, индекс, sqlite, строка, index.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“№ 6205468675
На простом языке: про работу с данными, современные технологии, AI, машинное обучение и, немного, SQL.
Сотрудничество: @niktwix
Менеджер: @Spiral_Yuri”
Благодаря высокой частоте обновлений (последние данные получены 26 августа, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
Загрузка данных...
| Дата | Привлечение подписчиков | Упоминания | Каналы | |
| 26 августа | +14 | |||
| 25 августа | +26 | |||
| 24 августа | 0 | |||
| 23 августа | +41 | |||
| 22 августа | 0 | |||
| 21 августа | +21 | |||
| 20 августа | 0 | |||
| 19 августа | 0 | |||
| 18 августа | +28 | |||
| 17 августа | +2 | |||
| 16 августа | +24 | |||
| 15 августа | +46 | |||
| 14 августа | +4 | |||
| 13 августа | +35 | |||
| 12 августа | 0 | |||
| 11 августа | +44 | |||
| 10 августа | +20 | |||
| 09 августа | +18 | |||
| 08 августа | +34 | |||
| 07 августа | +4 | |||
| 06 августа | +24 | |||
| 05 августа | +39 | |||
| 04 августа | +41 | |||
| 03 августа | +15 | |||
| 02 августа | 0 | |||
| 01 августа | 0 |
| 2 | ➡️ SQL-совет, который многие игнорируют: не используй `COUNT(*)`, если тебе нужно только проверить существование строки.
Часто пишут так:
SELECT COUNT(*)
FROM orders
WHERE user_id = 42;
А потом проверяют, больше ли результат нуля.
Но базе приходится посчитать все совпадения, хотя тебе нужна всего одна информация: есть хотя бы одна строка или нет.
Лучше использовать:
SELECT EXISTS (
SELECT 1
FROM orders
WHERE user_id = 42
);
EXISTS может остановить поиск сразу после первого совпадения.
На маленькой таблице разницы почти не заметишь. На миллионах строк и частых проверках это уже может серьёзно экономить ресурсы.
Если нужен ответ «да/нет» — не заставляй SQL считать всё.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 4 934 |
| 3 | ➡️ Вайбкодер спалился на выдуманном стеке
Кандидат пытался пройти интервью с ИИ-помощником, но интервьюер внезапно спросил про самописные движки Ysasu Bibu и Ynna Zist.
Соискатель уверенно ответил, что работал с обеими
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 118 |
| 4 | ➡️ Как SQLite выжимает скорость: байткод, VM и goto
Некрасивый код, который делает SQLite быстрым
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 959 |
| 5 | 🔥 В SQLite есть кусок кода, который выглядит «грязно», но оставлен таким специально ради скорости.
Каждый SQL-запрос SQLite сначала компилируется в байткод, а затем выполняется собственной виртуальной машиной VDBE.
Внутри — большой цикл диспетчеризации с почти 200 opcode.
И вот интересный момент: SQLite использует обычные goto, чтобы быстро прыгать между общими ветками выполнения.
➡️ В исходниках прямо написано:
«Код использует неструктурированные goto и выглядит не очень чисто. Но это сделано не из-за плохого стиля, так быстрее».
По замерам разработчиков, такой подход ускоряет sqlite3_step() примерно на 1,5%.
То есть здесь читаемость сознательно пожертвовали ради производительности.
Хорошее напоминание: в системном коде «красивее» не всегда значит «быстрее».
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 7 008 |
| 6 | Как выгодно сдавать анализы? 🧪
Не все знают, что в ИНВИТРО есть простой способ получать бонусы и потом оплачивать ими анализы и исследования до 90%! Ниже 4 лайфхака:
Во-первых. После регистрации в программе лояльности вам начислят 500 бонусов, а в день рождения – ещё 2000 бонусов.
Во-вторых. За анализы после активации начисляют кешбэк 5%. И его можно увеличить – в личном кабинете выбрать до 3 отдельных услуг и получать по ним до 10% бонусами.
В-третьих. Можно также выбрать готовый пакет и получать до 15% бонусами на анализы, которые в него входят. Например, есть «Контроль над весом», «Здоровый желудок» и др. Выбранный пакет можно заменить через 30 дней.
Самое крутое – накопленными бонусами можно оплатить до 90% стоимости следующих услуг. Например, если анализы вышли на 10 000₸, то бонусами можно списать 9000!
В-четвёртых. Подойдите к администратору на кассе и скажите ИНВИТРО26. После этого вам сделают скидку 20% на первую оплату. Работает во всех городах до 15 сентября 2026 года.
Подключить повышенный кешбэк можно 👉 на сайте. Нужно авторизоваться и открыть в личном кабинете раздел «Программа лояльности». 1 бонус = 1₸.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 956 |
| 7 | ➡️ Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта
GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.
Что внутри:
⏺️ четыре независимых слоя на Rust: parser → IR → planning → execution;
⏺️ результаты сразу возвращаются как Apache Arrow Table;
⏺️ данные легко передаются в Pandas и Polars;
⏺️ постоянное хранение построено на Parquet;
⏺️ встроены PageRank, Louvain и гибридный текстово-векторный поиск;
⏺️ Python- и Node.js-биндинги работают поверх одного движка.
from graphforge import GraphForge
graph = GraphForge("research/")
result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")
print(result.to_pandas())
При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.
Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.
https://github.com/CurateLabs/graphforge
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 068 |
| 8 | 🔥 SQL-совет: `LATERAL` вместо тяжёлого оконного запроса
Нужно получить последнюю операцию каждого пользователя? В PostgreSQL можно не ранжировать всю таблицу через ROW_NUMBER().
SELECT
u.id,
last_order.id,
last_order.created_at
FROM users AS u
LEFT JOIN LATERAL (
SELECT id, created_at
FROM orders
WHERE user_id = u.id
ORDER BY created_at DESC
LIMIT 1
) AS last_order ON true;
LATERAL запускает подзапрос отдельно для каждой строки слева и разрешает обращаться к u.id.
Добавьте индекс:
CREATE INDEX ON orders (user_id, created_at DESC);
Тогда PostgreSQL сможет брать последнюю запись прямо из индекса, не сортируя все заказы пользователя.
Такой приём особенно полезен для задач:
⏺️ последняя операция пользователя;
⏺️ актуальный статус заказа;
⏺️ последнее событие устройства;
⏺️ последние N записей для каждой группы.
Для больших таблиц это часто быстрее и проще, чем оконная функция по всему набору данных.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 293 |
| 9 | 🔥Редкий и реально продвинутый SQL-совет: используй логарифмы для произведения вероятностей.
В SQL удобно считать SUM, AVG, COUNT, но почти никто не думает про PRODUCT. А в аналитике он часто нужен: вероятность цепочки событий, retention funnel, скоринговые модели, reliability, ML-фичи.
Проблема: если перемножать много маленьких чисел, например 0.97 * 0.91 * 0.88 * ..., быстро получишь underflow или потерю точности.
Математический трюк:
a * b * c = exp(ln(a) + ln(b) + ln(c))
То есть вместо прямого произведения считаем сумму логарифмов.
SELECT
user_id,
EXP(SUM(LN(probability))) AS total_probability
FROM events
WHERE probability > 0
GROUP BY user_id;
Где это полезно:
SELECT
user_id,
EXP(SUM(LN(conversion_rate))) AS funnel_survival_rate
FROM funnel_steps
GROUP BY user_id;
Это стандартный численный прием из математики, который делает расчет стабильнее.
Особенно полезно, когда у тебя много шагов в воронке, вероятностная модель, риск-скоринг или аналитика событий.
Главное правило: LN(x) работает только для x > 0, поэтому нули нужно обрабатывать отдельно. Например, если хотя бы одна вероятность равна нулю, итоговое произведение тоже будет ноль.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 737 |
| 10 | 🔥 Constella: локальная память для файлов, заметок и AI-агентов
Constella — open-source desktop-приложение, которое индексирует локальные файлы и превращает их в единую базу знаний для поиска и AI-агентов.
Данные хранятся на устройстве: LanceDB используется для векторов, SQLite — для метаданных и knowledge graph.
Что умеет:
⏺️ индексировать Obsidian, Documents, Downloads и любые выбранные папки;
⏺️ извлекать текст из PDF, DOCX, Markdown и изображений;
⏺️ строить семантический поиск по локальным данным;
⏺️ автоматически связывать заметки, темы и концепты;
⏺️ работать с локальными и облачными LLM;
⏺️ отдавать базу знаний через MCP в Claude Code;
⏺️ использовать агентов и переиспользуемые workflows.
Схема примерно такая:
Файлы
↓
chunks + embeddings
↓
LanceDB + SQLite
↓
Knowledge Graph
↓
поиск / агенты / MCP
➡️ https://github.com/Constella-OS/constella-desktop
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 830 |
| 11 | ❌ Хотите внедрить ИИ в компании? Не начинайте с выбора модели.
Иначе есть риск потратить бюджет, а получить красивые, но бесполезные ответы.
Причина большинства неудачных AI-проектов — не технологии. Проблема в данных: они разрознены, устарели, хранятся в 1С, CRM, Excel и десятках других систем.
На бесплатном вебинаре разберем, как подготовить данные, чтобы корпоративный ИИ действительно помогал бизнесу, а не генерировал «галлюцинации».
Расскажем:
✔️ почему данные важнее модели;
✔️ как автоматизировать получение данных из 1С;
✔️ зачем компании DWH и единый слой корпоративных знаний;
✔️ как выглядит рабочая AI-ready архитектура на реальном примере.
🎁 Всем зарегистрированным — запись вебинара, презентация спикеров, материалы по архитектуре AI-ready и возможность задать вопросы экспертам.
📅 12 августа | 11:00 (МСК)
💻 Онлайн, участие бесплатное.
👉 Зарегистрируйтесь сейчас и узнайте, с чего действительно стоит начинать внедрение корпоративного ИИ. | 6 072 |
| 12 | 🔥Логическая аналитика с LynxDB
LynxDB — это легковесная система для анализа логов, работающая в одном бинарном файле без зависимостей. Она использует язык запросов Lynx Flow, позволяющий легко обрабатывать данные в виде конвейера.
Основные моменты:
⏺️ Пайплайн-запросы для обработки данных
⏺️ Полнотекстовый поиск и колоночное хранилище
⏺️ Поддержка кластерного режима и материализованных представлений
⏺️ Никакой конфигурации — разумные настройки по умолчанию
⏺️Активная разработка, обратная связь приветствуется
➡️ GitHub: https://github.com/lynxbase/lynxdb
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 656 |
| 13 | 🔥 Продвинутый SQL-прием: partial index вместо “универсального” индекса
Если в таблице много строк, но запрос почти всегда смотрит только активные записи, не обязательно индексировать всё.
Например, есть таблица заказов:
SELECT *
FROM orders
WHERE user_id = 42
AND status = 'active';
Обычный индекс:
CREATE INDEX idx_orders_user_status
ON orders(user_id, status);
Работает, но он хранит данные по всем статусам: active, cancelled, archived, failed и так далее.
Если чаще всего нужны только активные заказы, можно сделать partial index:
CREATE INDEX idx_orders_active_user
ON orders(user_id)
WHERE status = 'active';
Такой индекс меньше, быстрее обновляется и лучше помещается в память. Планировщик сможет использовать его для запросов, где условие совпадает:
SELECT *
FROM orders
WHERE user_id = 42
AND status = 'active';
Индекс не обязан покрывать всю таблицу. Иногда лучший индекс - это индекс только по тем строкам, которые реально участвуют в горячих запросах.
Особенно полезно для флагов вроде deleted_at IS NULL, status = 'active', is_published = true, processed = false.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 223 |
| 14 | ➡️ Используй EXISTS вместо IN на больших таблицах
-- медленнее
SELECT *
FROM orders o
WHERE o.user_id IN (SELECT id FROM users WHERE active = true);
-- быстрее
SELECT *
FROM orders o
WHERE EXISTS (
SELECT 1
FROM users u
WHERE u.id = o.user_id AND u.active = true
);
EXISTS останавливается на первом совпадении и не тянет весь подзапрос в память. На больших данных разница может быть кратной.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 670 |
| 15 | 🔥 США решили отжать open source у китайцев: на сцену выкатили Laguna S 2.1
Стартап Poolside выкатил свою четвёртую версию Laguna S 2.1 — открытую модель для агентного программирования, которая весит аж 118 млрд параметров. В конторе заявляют, что это самая мощная открытая модель Запада: на кодинговых тестах Laguna не отстаёт от моделей, которые крупнее неё в разы, а кое-где даже обходит их. И главное — она запускается на настольном компе NVIDIA DGX Spark, без всяких суперкомпов.
Веса уже висят на Hugging Face, и юзать модель можно даже в коммерции.
Читать далее
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 133 |
| 16 | 🔥 Anthropic запустили официальный плагин для поиска уязвимостей
Можно отправить Claude Security проверить изменения перед коммитом или просканировать всю репу.
Он найдет дыры и предложит, что можно и нужно исправить
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 699 |
| 17 | Апдейты в плагин!
Давно мы не слышались: я упёрся в сложные технические проблемы при разработке и на время сделал паузу. Теперь [надеюсь] эти проблемы позади — и новые релизы будут выходить чаще.
Что в новой версии:
🔴Исправлен баг, из-за которого в редких случаях столбики рисовались неправильных размеров.
🔴Добавлена beta-версия площадной диаграммы.
Апдейт должен прилететь в фигму автоматически. А если плагина нет — установить его можно тут.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 537 |
| 18 | 🔥 Рой ИИ-агентов написал аналог SQLite на Rust за несколько часов
Cursor провела необычный эксперимент: агентам выдали только официальную документацию SQLite объёмом 835 страниц и поручили с нуля реализовать собственный движок базы данных на Rust.
Без интернета, готового исходного кода и дополнительной помощи.
Уже через четыре часа получившиеся реализации правильно выполняли 73–85% запросов из скрытого теста. После дальнейшей работы некоторым командам удалось довести результат до 100%.
Но особенно удивила стоимость:
⏺️ связка Opus 4.8 и Composer 2.5 потратила около $1 400;
⏺️ Fable — примерно $20 000.
Одинаковая задача, но почти пятнадцатикратная разница в цене.
Во время разработки агенты столкнулись с до боли знакомыми командными проблемами: дублировали работу, конфликтовали при изменении одних и тех же файлов и избегали трогать ядро системы, даже когда без этого было невозможно двигаться дальше.
Получается, ИИ уже способен за часы собрать сложный системный проект, но митинги, конфликты и страх ответственности он тоже автоматизировал 😂
#ai #rust #sqlite #agents #programming
➡️ https://cursor.com/blog/agent-swarm-model-economics
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 6 438 |
| 19 | Компании ценят специалистов, которые разбираются как в технической стороне продукта, так и в потребностях бизнеса. Перекрёстные навыки часто встречаются в вакансиях.
Нетология объединила две профессии в один курс — «Системный и бизнес-аналитик». На занятиях своим опытом поделятся эксперты из Qiwi, М.Видео — Эльдорадо и Bolt.
За 12 месяцев вы научитесь:
- использовать гибкие методологии Agile и Scrum;
- разбираться в нотациях моделирования: UML, BPMN, IDEF;
- описывать user story и use case;
- создавать прототипы приложений и сервисов;
- работать с АРІ и проектной документацией.
Сейчас на курс действует скидка 50%, а с промокодом IT10JULY цена станет ещё на 10% ниже. Плюсом подарим курс о развитии карьеры при покупке до 31 июля.
Записаться
Реклама. ООО “Нетология” ОГРН 1207700135884 Erid: 2VSb5yBsme2 | 5 583 |
| 20 | 🔥 Хитрый SQL-совет: осторожнее с `NOT IN`
Кажется, что эти запросы делают одно и то же:
SELECT *
FROM users
WHERE id NOT IN (
SELECT user_id
FROM banned_users
);
Но если banned_users.user_id содержит хотя бы один NULL, запрос может вернуть ноль строк.
Надёжнее использовать NOT EXISTS:
SELECT u.*
FROM users AS u
WHERE NOT EXISTS (
SELECT 1
FROM banned_users AS b
WHERE b.user_id = u.id
);
Причина в трёхзначной логике SQL: сравнение с NULL даёт UNKNOWN, а не TRUE или FALSE.
Правило простое: если подзапрос потенциально возвращает NULL, вместо NOT IN почти всегда выбирайте NOT EXISTS.
🫡 Всё про Data Science
🇷🇺 Читайте нас в MAX | 5 888 |
