Data Science. SQL hub
36K subscribers
1.19K photos
99 videos
37 files
1.19K links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo

#VRHSZ
Download Telegram
🖥 Vector-базы не умерли, но для многих задач отдельный сервер уже не нужен.
sqlite-vec добавляет vector search прямо в SQLite через компактное расширение.

Что это даёт:
- без Pinecone
- без Weaviate
- без Qdrant
- без отдельного vector DB сервера
- всё хранится рядом с обычными данными в SQLite


Расширение маленькое, open source и запускается везде, где работает SQLite.
Для локальных AI-приложений, RAG, embedded-сценариев и небольших сервисов это особенно интересно: одна база, один файл, обычный SQL + поиск по эмбеддингам.
https://github.com/asg017/sqlite-vec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
🗄 ИИ-агент работает с базой, но как не дать ему показать лишнее?

6 октября в Архитектурном клубе Яндекс 360 разберут архитектуру ИИ-агента над корпоративными данными. В том числе поговорят о поиске, метаданных и фильтрах, а главное — о том, как наследовать права доступа исходных систем.

Также Даниил Смирнов, руководитель разработки ИИ-платформы Яндекс 360, расскажет, как изолировать данные пользователей и организаций и не допускать утечек через индекс или кэш..

🗓 6 октября, 17:00 МСК
💻 Онлайн, бесплатно

→ Зарегистрироваться на эфир
❤1👍1
Полезный совет для MySQL 8: используй LATERAL, когда для каждой строки нужно получить «лучшие N связанных записей».
Например, взять последние 3 заказа каждого пользователя:


SELECT
u.id,
u.name,
o.id AS order_id,
o.created_at
FROM users u
JOIN LATERAL (
SELECT id, created_at
FROM orders
WHERE orders.user_id = u.id
ORDER BY created_at DESC
LIMIT 3
) o ON TRUE;


Без LATERAL такую задачу часто решают через оконные функции и сначала ранжируют всю таблицу orders.
С LATERAL база может для каждого пользователя сразу сходить по индексу:


CREATE INDEX idx_orders_user_created
ON orders (user_id, created_at DESC);


Особенно полезно для задач вида:
«последние N», «самая дорогая запись», «ближайшее событие», «лучший результат для каждой строки».
Главное: всегда проверяй EXPLAIN ANALYZE — на больших таблицах правильный составной индекс здесь решает всё.
👍5❤2🔥1
Tencent обошла экспортный запрет США: 100 000 ИИ-чипов в аренду у Oracle

По данным Financial Times, Tencent арендовала у Oracle около 100 000 передовых ИИ-чипов на 5 лет. Сумма сделки около 7 млрд долларов, то есть примерно 14 000 долларов за чип в год.

Сами чипы в Китай не попадают. Они стоят в нескольких дата-центрах Oracle в Юго-Восточной Азии, а Tencent получает к ним доступ удалённо.

Формально это законно. Экспортный контроль США регулирует, куда физически уезжают чипы, а аренда вычислительных мощностей из-за рубежа под ограничения не попадает.

Получается, что ограничения на поставки чипов для китайских компаний во многом работают только на бумаге: железо остаётся за пределами Китая, а модели на нём обучает китайский бигтех. Так что регуляторам, скорее всего, придётся заняться и облачной арендой.

https://www.ft.com/content/8799b33d-f07c-4a03-82f0-bf5d3d1d29e9
❤3👍2🔥2
GitHub представил Agentic Engineering System - фреймворк для команд, которые внедряют AI-агентов в разработку.

Идея простая: больше сгенерированного кода ещё не означает больше пользы.

GitHub предлагает строить работу вокруг трёх вещей:

- Governance — что агентам можно делегировать и где нужен человек
- Shared Knowledge — код, документация, решения, телеметрия и контекст
- Customer Value — приносит ли ускорение реальную пользу пользователям

Сам процесс делится на цикл Define → Deliver → Detect, а человек и AI могут выступать как director, performer или assessor.

Главная метрика: скорость должна расти без роста дефектов и потери качества.

https://github.com/resources/insights/agentic-engineering-system
❤3👍1🔥1
🧠 TIL: SQLite превращает числа в текст сразу по две цифры

Обычно integer → string делают циклом:

/ 10 → берём цифру
% 10 → остаток
и повторяем снова.

SQLite идёт хитрее.

В исходниках есть строка на 200 символов, содержащая все пары от 00 до 99:

000102030405...979899

При преобразовании числа SQLite обрабатывает его по две цифры за раз и просто берёт нужную пару символов по индексу.

То есть вместо множества операций /10 и %10:

делим на 100 → получаем две цифры → копируем готовую пару.

Маленькая оптимизация, но именно из таких деталей и состоит быстрый системный код.

Исходник: sqlite/src/util.c
❤4👍3🔥3
Из аналитика в дата-инженеры: переход реален? 🤔

В последнее время все чаще дата-инженерия для аналитиков становится более привлекательной, но в то же время страшной.

С одной стороны, хочется понимать не только то, что происходит с данными, но и как эти данные вообще доезжают до нас. Откуда берутся, где хранятся, как обновляются, почему сегодня в витрине 10 млн строк, а завтра 8 млн и кто опять сломал загрузку🥲

И получается ситуация, когда хочется попробовать, но непонятно, с чего начинать и сколько лет на это закладывать.

Поэтому мне понравилось, как Симулейтив пересобрали свой буткемп «Инженер данных».

Курс разделен на 2 этапа: за первые 10 недель вы осваиваете базу и доходите до уровня junior-специалиста. А на втором этапе — углубленное изучение ключевых инструментов, где вы дорастаете до мидла.

Что вас ждет на курсе:
➖SQL, Python, пайплайны сбора и обновления данных, хранение и обработка, DWH;
➖Живые занятия с ментором каждую неделю — не записи, а разборы вживую;
➖Подготовка к собеседованиям с первых недель, а не в самом конце;
➖ИИ-инструменты как часть программы — учите работать с ними, а не избегать;
➖Гостевые лекции от практикующих дата-инженеров из Яндекса, Т-Банка, Авито, Сбера, OZON;
➖Официальный диплом о профессиональной переподготовке.

Кому подойдёт:
1. Тем, кто хочет войти в дата-инженерию с нуля или перейти из аналитики;
2. Тем, кто пробовал учиться самостоятельно, но теряет темп без структуры;
3. Тем, кому интереснее не просто считать метрики, а выстраивать систему, на которой держатся данные.

Почему сейчас: специалистов, которые управляют данными как системой, на рынке меньше, чем нужно, — а спрос растёт, потому что без инженерии любые данные быстро превращаются в хаос.

🔥ВАЖНО: Симулейтив дают возможность получить грант обучение и гарантируют трудоустройство своих студентов. Количество грантов ограничено!

Оставляйте заявку до завтра включительно, чтобы занять одно из 5 оставшихся мест нового потока!

🔗 ЗАБРОНИРОВАТЬ МЕСТО
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
DOOM запустили внутри SQL-базы. Каждый кадр теперь результат запроса 🤯

Лукас Фогель собрал SQLDoom: игровая логика и рендеринг оригинального DOOM работают внутри CedarDB.

Карты, монстры, оружие и состояние игры хранятся в таблицах. SQL рассчитывает движение, атаки и столкновения, а затем собирает картинку:

• около 1300 строк SQL и 89 CTE отвечают за рендеринг;
• ещё 5900 строк SQL реализуют игровую логику;
• кадры 320×200 генерируются примерно с 60 FPS на ноутбуке с Ryzen 7 PRO 7840U. В тяжёлых сценах частота падает до 35 FPS.

Python обрабатывает ввод, задаёт тайминг и выводит готовые кадры. Работает даже мультиплеер.

Теперь оптимизировать SQL нужно ещё и для того, чтобы монстры не лагали ☕️

Код:
https://github.com/cedardb/sqldoom

Онлайн-демка:
https://demo.cedardb.cloud/projects/38c0ee59-327d-495e-ad40-735521bba941
🔥13❤8😁3🥰2
⚡️ SQL с подвохом: NULL в пустом списке

Что выведет PostgreSQL?


SELECT
NULL IN (SELECT 1 WHERE FALSE) AS a,
NULL NOT IN (SELECT 1 WHERE FALSE) AS b;


Ответ: `a = false`,⚡️ SQL с под

Подзапрос возвращаетL в пустом списк Совпадений нет, поэтомув пуствозвращаетодвохом: а SQL с подвозвращаетодвохом: даже если проверяемое значение равно NULL.

Для сравнения:м: NULL в пустовернёт NULL. Пустой набор меняет результат.
👍5🔥2👎1🤯1
ИИ-агент, который только отвечает на вопросы, — это уже прошлый этап. Следующий шаг — научить его работать с реальными системами. Чтобы ИИ-решения приносили пользу бизнесу, агентам нужно получать данные из корпоративных систем, обращаться к базам данных и выполнять действия через внешние инструменты. Но такие интеграции требуют продуманной архитектуры и контроля безопасности.

На открытом уроке 20 октября в 20:00 МСК разберем, как связать ИИ-агентов с корпоративной инфраструктурой с помощью Tool Calling и MCP. Вы узнаете, как агенты взаимодействуют с API, базами данных и внутренними сервисами, а также какие подходы помогают безопасно управлять их действиями.

Урок пройдет в преддверие старта курса «ИИ-архитектор».

Научитесь проектировать ИИ-агентов, которые не просто генерируют ответы, а решают реальные задачи: https://otus.pw/cid2/?erid=2W5zFJRGV85

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤1
🌍 SQL-задача: ближайшие точки на замкнутой карте

Карта 100 × 100: противоположные края соединены. Между координатами 1 и 99 через границу всего 2 единицы.

Для каждой точки найдите всех ближайших соседей, исключая саму точку.


WITH points(id, x, y) AS (
VALUES (1, 1, 1), (2, 99, 99), (3, 3, 99)
),
distances AS (
SELECT a.id, b.id AS neighbor,
POWER(LEAST(ABS(a.x-b.x), 100-ABS(a.x-b.x)), 2)
+ POWER(LEAST(ABS(a.y-b.y), 100-ABS(a.y-b.y)), 2) AS d2
FROM points a
JOIN points b ON a.id <> b.id
),
ranked AS (
SELECT *,
DENSE_RANK() OVER (
PARTITION BY id ORDER BY d2
) AS r
FROM distances
)
SELECT id, neighbor, SQRT(d2) AS distance
FROM ranked
WHERE r = 1
ORDER BY id, neighbor;


Ответ: 1 → 2, 3; 2 → 1; 3 → 1. Расстояние во всех случаях √8 ≈ 2,828.

Подвох: по каждой оси выбираем минимум между прямым путём и переходом через границу. DENSE_RANK() сохраняет все равные минимумы, а ранжирование по квадрату расстояния позволяет вычислить корень только при выводе.
❤4🔥4👍3😁1
ИИ-агент отвечает настолько точно, насколько готовы ваши данные. Как понять, что они готовы?

Разберёмся 23 октября в Москве на Fine Day 2026, офлайн-конференции о переходе от self-service BI к AI-native аналитике.

💡 В программе:
• дискуссия с руководителями аналитики ПИК, ДИКСИ, СИБУР и АвтоВАЗ: что нужно данным и командам для работы с ИИ
• миграция с Qlik и Power BI на FineBI, в том числе с помощью ИИ-агентов
• BI-система vs LLM: какие задачи кому отдавать, опыт Мосбиржи
демо FineBI 7.0 и ИИ-агентов Dora, можно принести свой сценарий

Участие бесплатное. После регистрации получите чек-лист «Готовы ли ваши данные к ИИ-агенту?» из 25 вопросов.

👉 Регистрация: https://clck.ru/3WMPsm

Реклама: ООО «ГЛОУБАЙТ АНАЛИТИЧЕСКИЕ РЕШЕНИЯ» ИНН: 9729274905
ERid: 2VtzqvJYWyT
❤2👍1🔥1
🧩 SQL-задача: почему `LAG()` здесь подведёт?

Есть интервалы работы сервера. Время указано в минутах:


id | start_at | end_at
---+----------+-------
1 | 1 | 10
2 | 2 | 3
3 | 9 | 12
4 | 15 | 16
5 | 16 | 20


Объедините пересекающиеся и соприкасающиеся интервалы. Вложенные интервалы тоже учитываются.

Ожидаемый результат:


start_at | end_at
---------+-------
1 | 12
15 | 20


Попробуйте решить до просмотра ответа 👇

Решение для PostgreSQL:


WITH bounds AS (
SELECT *,
MAX(end_at) OVER (
ORDER BY start_at, end_at, id
ROWS BETWEEN UNBOUNDED PRECEDING
AND 1 PRECEDING
) AS prev_max
FROM intervals
),
marked AS (
SELECT *,
CASE WHEN prev_max IS NULL
OR start_at > prev_max
THEN 1 ELSE 0 END AS new_group
FROM bounds
),
grouped AS (
SELECT *,
SUM(new_group) OVER (
ORDER BY start_at, end_at, id
ROWS UNBOUNDED PRECEDING
) AS grp
FROM marked
)
SELECT MIN(start_at) AS start_at,
MAX(end_at) AS end_at
FROM grouped
GROUP BY grp
ORDER BY start_at;


Подвох: LAG(end_at) для интервала [9,12] вернёт 3 и ошибочно начнёт новую группу. Но более ранний интервал [1,10] всё ещё перекрывает его.

Нужен максимальный конец среди всех предыдущих строк, а не только конец соседней.
👍6❤3🔥2👏1
🧮 Математика для ИИ на русском: от школьной базы до трансформеров и диффузии

Бесплатный курс-шпаргалка на GitHub, который связывает формулы с их применением в ML: интуиция → формула → иллюстрация → код на NumPy → задачи.

Внутри:
• Линейная алгебра, производные, вероятности и статистика.
• Backpropagation, оптимизаторы, функции потерь и attention.
• Генеративные модели, обучение с подкреплением, RAG и рекомендации.

Для практики: 26 Jupyter-ноутбуков с запуском в Colab, 60 задач с решениями и 160 вопросов с собеседований. Есть карточки Anki и глоссарий RU ↔ EN.

Если математика забылась, предусмотрен отдельный справочник с нуля: от дробей и процентов до интегралов и матриц.

https://github.com/justxor/math-for-ai-2026
🔥9❤2👍1