Data Science: SQL и Аналитика данных
38.5K subscribers
262 photos
56 videos
1 file
321 links
№ 6205468675

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

Сотрудничество: @niktwix

Менеджер: @Spiral_Yuri
Download Telegram
🔥 Милла Йовович теперь тоже Вайбкодер😱

Актриса выложила на GitHub опенсорс-инструмент MemPalace для работы с памятью ИИ-агентов. Делала его вместе с другом.

Фишка в том, что все данные хранятся локально, а система сама решает, какие факты о пользователе подтягивать под конкретный запрос. По бенчмарку LongMemEval инструмент уже обгоняет и платные, и бесплатные решения.

За сутки репозиторий набрал 2k+ звёзд.

Похоже, границы между индустриями окончательно стерлись 💀

➡️ https://x.com/bensig/status/2041229266432733356

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 SQL-концепции, которые реально нужно знать:

⏺️ CRUD → SELECT, INSERT, UPDATE, DELETE
⏺️ Ключи → PRIMARY KEY, FOREIGN KEY
⏺️ Ограничения → NOT NULL, UNIQUE, CHECK, DEFAULT
⏺️ JOIN’ы → INNER JOIN, LEFT JOIN, RIGHT JOIN
⏺️ Агрегации → COUNT, SUM, AVG, MIN, MAX
⏺️ Группировка → GROUP BY, HAVING
⏺️ Фильтрация → WHERE, BETWEEN, IN, LIKE
⏺️ Сортировка → ORDER BY
⏺️ Подзапросы → SELECT (SELECT …)
⏺️ Индексы → CREATE INDEX
⏺️ Представления → CREATE VIEW
⏺️ Транзакции → BEGIN, COMMIT, ROLLBACK
⏺️ Пагинация → LIMIT, OFFSET
⏺️ Оптимизация → EXPLAIN

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Cursor сделал regex-поиск мгновенным

Instant Grep ищет по миллионам файлов за миллисекунды
16.8 сек → 13 мс

И главное:
они не ускоряли regex
они убрали лишний поиск

Как это работает

- создаётся индекс: куски текста → файлы
- используются триграммы (fil, ile, le_)
- сначала ищутся кандидаты
- потом запускается regex

большинство файлов вообще не открывается

🔥Ключевая идея - sparse n-grams

- индексируются не все куски
- только самые «полезные»
- редкие символы имеют больший вес

Всё локально

- индекс хранится у тебя
- привязан к Git
- быстрый доступ через memory map

Скорость даёт не regex
а умный отбор файлов до поиска.

https://x.com/cursor_ai/status/2036122609931165985

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Выложили в open source крупнейшую базу интеграций для AI-агентов.

- 47 000 действий для агентов в 250+ приложениях
- Подключения к Slack, GitHub, Gmail, Stripe, Discord, Google Sheets и другим сервисам
- Все действия проверены, агент больше не «галлюцинирует» API
- Разворачивается одной CLI-командой: подключил один раз — используешь везде

Это тот самый слой интеграций, которого агентам давно не хватало.

https://github.com/withoneai/cli

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
➡️ Таблицы теперь живут прямо в терминале

Да, без Excel и без GUI.

Sheets - это инструмент, который позволяет читать и редактировать CSV прямо в терминале через TUI или CLI.

Что внутри:

⏺️ полноценная работа с таблицами без выхода из терминала
⏺️ vim-подобные хоткеи и навигация
⏺️ быстрые правки без лишнего оверхеда

Работает на Windows, macOS и Linux.

Идеально, если ты живёшь в терминале и не хочешь дергаться между окнами.

Excel начинает нервничать.

https://github.com/maaslalani/sheets

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Китайцы выкатили мощный голосовой ИИ - VoxCPM2

Модель от OpenBMB, которая умеет:

⏺️ Понимать и генерировать речь
⏺️ Работать с голосом почти в реальном времени
⏺️Делать voice-to-voice без сложных пайплайнов
⏺️ Подходит под ассистентов, звонки и голосовые агенты

Главный плюс - всё это в одной модели, без костылей из ASR + TTS


https://huggingface.co/openbmb/VoxCPM2

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Гайд: как настроить WAL, чтобы отслеживать изменения в PostgreSQL?

Возможно, кто-то из прочитавших заголовок скажет — зачем возиться с WAL, если есть более простые способы. NOTIFY, например.

Да, действительно, и, если вам нужно мониторить изменения в небольшой, не слишком часто обновляющейся таблице, то это отличный вариант. Но дело в том, что все уведомления NOTIFY падают в одну очередь, и если таких уведомлений много, то они затормозят работу всей БД.

Кроме того, их размер ограничен 8000 байтов, чего может быть недостаточно. А еще, если сервис-получатель был по какой-то причине не доступен и сообщение не дошло, повторное через NOTIFY не отправляется — то есть данные просто потеряются.

В общем, не идеальный вариант.

➡️ Альтернатива — это настроить Write-Ahead Log или WAL, чтобы получать уведомления из него.

Спойлер: этот вариант тоже не идеальный. Как минимум, придется повозиться:
⏺️Изменить wal_level на logical со стандартного replica — так он начнет делать более подробные записи о том, как и что конкретно изменилось в базе.
⏺️Создать publications (то есть, расписать, какие таблицы и действия вы хотите отслеживать) и репликационный слот (то есть отдельную копию WAL, которая гарантирует, что никакие важные данные из лога не удалятся, пока уведомление не будет отправлено).
⏺️Создать listener, который будет получать уведомления и перенаправлять их дальше — в очередную таблицу, в приложение или мессенджер. Или вообще распечатать.

➡️ Но если вам нужно настроить отправку уведомлений и другие способы не подходят, это может быть вполне рабочее решение. Как воплотить его в жизнь, по шагам описано в подробном (очень подробном) гайде.

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Государство, вузы и бигтех: кто развивает ИИ-образование в мире?

Этим вопросом задалась команда J'son & Partners Consulting, которая сравнила подходы к подготовке ИИ-специалистов в России, США и Китае. Во всех трех странах ключевой вызов один — образование не успевает за темпами развития технологий, поэтому важно его адаптировать.

Какие меры предпринимают:

⏺️В Китае ИИ-образование взяло под свой контроль государство: оно задает стандарты обучения, выделяет финансирование на проекты, направленные на популяризацию технологий искусственного интеллекта, и вводит уроки по работе с ним в школьную программу.

⏺️В США ситуация противоположная: за подготовку ИИ-кадров отвечают топовые вузы, обучение в которых может стоить десятки тысяч долларов. Вместо массовости они делают ставку на обучение небольшого числа специалистов очень высокого уровня.

⏺️Россия пошла по своему пути: здесь ключевую роль играют бигтехи. Технологические компании совместно с вузами задают ориентиры подготовки ИИ-специалистов. Сегодня обучение развивается в формате партнерских программ — университеты дают фундамент, а бизнес приносит экспертизу в тех областях технологий, о которых еще на написаны учебники. По этой модели, например, запущен бакалавриат AI360 — совместный проект двух ведущих компаний и пяти университетов.

➡️ У всех трех моделей есть свои плюсы. Но если у вас стоит выбор STEM-вуза, смотрите и на конкретных партнеров, с кем он делает свои программы.

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Продвинутый SQL совет - всегда проверяй, можно ли заменить SELECT DISTINCT на правильный JOIN или EXISTS.

Очень часто DISTINCT добавляют просто чтобы убрать дубли после неудачного join. Запрос вроде работает, но по факту ты сначала раздуваешь результат, а потом заставляешь базу его чистить. На больших таблицах это легко убивает производительность.

Плохой вариант:


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

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Сколько денег приносит ИИ?

Amazon, Google, Microsoft и другие технокомпании вкладывают в ИИ огромные деньги: они выпускают все новые продукты на его основе и активно — иногда слишком — продвигают их среди клиентов и даже собственных сотрудников. Учитывая их рвение, может показаться, что это приносит им большие доходы, но, кажется, это не так. По крайней мере пока.

➡️ Здесь собрали данные о затратах и прибылях передовых ИИ-компаний: кроме уже упомянутых, там есть запрещенная в России Meta, Nvidia, OpenAI, Anthropic, Oracle, xAI, Mistral, Cohere и Deepseek.

В плюсе пока только Nvidia, которая с 2023 заработала на ИИ-чипах 253 миллиардов. Никто больше к таким результатам даже не приблизился, и в основном все в глубоком минусе.

Выглядит не очень, но стоит учитывать три фактора:
⏺️На графиках только затраты и доходы, связанные с ИИ, а не финансовые показатели компании в целом. То есть Copilot не привел Microsoft к банкротству.
⏺️Цифры приблизительные и основанные во многом на предположениях, оценках экспертов и слитых данных. Список источников внизу страницы.
⏺️Многие денежные потоки в индустрии движутся по кругу: от Google в Anthropic, от Anthropic в Nvidia и от Nvidia в Google. Это тоже влияет на точность оценки прибыльности ИИ-проектов.

В любом случае, выглядят данные любопытно и доля правды в них точно есть. Отсюда вопрос: как думаете, когда ИИ начнет окупаться?

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 SQL против мошенников

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

Большинство признаков, на которые надо обращать внимание, известны или интуитивно понятны, но автор еще и сами SQL-запросы показывает, и это уже может пригодиться.
⏺️Скорость снятия денег. Большое количество операций за короткий срок говорит о том, что мошенник пытается поскорее опустошить карту, пока владелец не заметил.
⏺️Телепортация — в течение небольшого промежутка времени карта использовалась в двух местах, между которыми физически невозможно переместиться с такой скоростью.
⏺️Снятия подозрительных сумм. Небольшие, круглые суммы — у автор это 1-5-10 долларов — говорят о том, что мошенник проверяет, работает ли карта. Сомнения должны вызывать и частые покупки на суммы ниже пределов, после которых требуется подтверждение личности или пин-код.
⏺️Внезапный рост числа уникальных карт у одного мерчанта. Если раньше через него проходили 200 карт в день, а потом их число подскочило до 1000+, это повод присмотреться к нему повнимательнее.
⏺️Операции в нетипичное для пользователя время. Например, если человек всегда платит днем, а потом внезапно начинает активно пользоваться картой в 3 ночи.

Чтобы выявлять все эти сигналы было проще, автор предлагает заранее материализовать их с помощью оконных функций:
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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 NornicDB: База данных, которая объединяет Graph + Vector и летает в sub-ms


Это гибрид: Graph + Vector + Temporal MVCC в одном ядре
заточен под AI-агентов и knowledge systems

Что внутри:

⏺️ HNSW поиск <1ms
⏺️ graph traversal без тормозов
⏺️ writes тоже быстрые, не только чтение

Из хорошего, это не Frankenstein из разных сервисов, а единая система.

Под капотом:

⏺️Neo4j-compatible (Bolt + Cypher)
⏺️ vector search как first-class citizen
⏺️ GPU acceleration
⏺️ T- emporal модель с версионированием данных

То есть ты можешь:

⏺️ искать эмбецдинги
⏺️ ходить по графу
⏺️ делать time-travel запросы
⏺️ всё это в одном запросе.

Фактически это попытка сделать “память для AI”:
где есть связи, смысл и история изменений, а не просто таблицы.

Если делаешь RAG, multi-agent системы или сложные knowledge graph - будет полезно.

➡️ GitHub: https://github.com/orneryd/NornicDB

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Edit Banana редактирует текст прямо на картинках за пару кликов.

Нейросеть разбирает изображение на смысловые блоки, после чего любой фрагмент можно переписать, не трогая остальное.

Модель уверенно справляется с таблицами, формулами и диаграммами, сохраняет исходные цвета, шрифты и позиции элементов. Готовый результат экспортируется в DrawIO, SVG или PowerPoint.
Проект полностью открытый, ставится локально с GitHub.

Забираем, пока не закрыли:

➡️ https://github.com/BIT-DataLab/Edit-Banana

Всё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Text-to-SQL ломается не из-за модели. Он ломается из-за схемы

Большинство думает, что проблема в LLM или плохом промпте. На практике всё проще. Модель не видит правильные связи между таблицами.

Пример. Запрос вроде “какие издатели получили выплаты выше 5000”. Векторный поиск подтянет publisher и royalty_ledger. Всё логично. Но пропустит vendor_agreement, ту самую таблицу, которая их связывает.

В итоге SQL выглядит валидно. Но возвращает ноль строк.

Это системная проблема всех решений на embeddings. Они ищут по смыслу, но не понимают структуру базы.

Нормальный подход другой. Схему нужно рассматривать как граф.

Таблицы это узлы. Foreign keys это связи. Запрос решается не поиском похожих слов, а обходом графа и поиском join-пути.

Именно так работает QueryWeaver.

Он строит граф базы и при запросе сам находит весь путь, включая промежуточные таблицы. Даже если это цепочка из нескольких шагов.

На практике это выглядит так. В тесте с базой на 60 таблиц он разобрал 5-шаговый запрос через цепочку superpower → capability_matrix → stakeholder_registry → resource_requisition → budget_allocation.

Векторный поиск увидел только начало и конец. Всё между ними потерял, потому что “stakeholder” никак не связан по смыслу с “superpower”.

Графу на это всё равно. Он просто находит единственный путь между сущностями.

И это меняет всё.

Open-source, можно развернуть у себя и наконец получить text-to-SQL, который реально работает.

➡️ https://github.com/FalkorDB/QueryWeaver

сё про Data Science

🇷🇺 Читайте нас в MAX
Please open Telegram to view this post
VIEW IN TELEGRAM