Telegram Web
🧪 uQLM — движок для SQL‑запросов к LLM, разработанный в CVS Health

Что если к языковой модели можно обращаться как к обычной базе данных?

💡 uQLM (Universal Query Language for Models) позволяет писать SQL‑подобные запросы, чтобы:

Обращаться к LLM как к таблице
Фильтровать, агрегировать и комбинировать ответы
Подключать собственные модели и источники данных
Использовать привычный синтаксис SQL без prompt-инженерии

📌 Пример запроса:

SELECT generate_response(prompt)
FROM gpt4
WHERE prompt LIKE '%explain%'
LIMIT 5;


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

🔗 GitHub: https://github.com/cvs-health/uqlm

@sqlhub
5👍4🥰1
120 ключевых вопросов по SQL за 2025 год

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

Основываясь на актуальных требованиях 2025 года, вопросы охватывают базу данных, оптимизацию, практические задачи и нюансы СУБД (MySQL, PostgreSQL, SQL Server).

🔜 Подробности
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍9🔥8
🖥 SQL-задача с подвохом: почему COUNT(*) считает не так, как ты думаешь?

🧠 Условие:

У тебя есть две таблицы:


users
---------
id | name
---|-----
1 | Alice
2 | Bob
3 | Charlie

orders
----------
id | user_id | total
----|---------|-------
1 | 1 | 100
2 | 1 | 200
3 | 2 | 300


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

Ты пишешь:


SELECT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name;


Результат:


1 | Alice | 2
2 | Bob | 1
А где Charlie? 😡


📌 Подвох: JOIN убирает строки без соответствий — Charlie не попадает в результат вообще.
Нужно использовать LEFT JOIN, чтобы сохранить всех пользователей.

Правильное решение:


SELECT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name;


Теперь результат:


1 | Alice | 2
2 | Bob | 1
3 | Charlie | 0


💡 Вывод:
Хочешь сохранить всех из "левой" таблицы — используй LEFT JOIN.
А COUNT(о.id) не считает NULL — и это хорошо: ты получаешь реальное число заказов, а не просто 1 за NULL.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2814🔥5😁3👏1
🖥 MongoDB выпускает MCP Server — теперь любой может стать дата-инженером

MongoDB представили открытый MCP сервер, который позволяет AI-инструментам вроде Claude, Cursor и GitHub Copilot напрямую общаться с вашей MongoDB-базой.

Теперь даже без знаний запросов можно просто написать:
• «Покажи самых активных пользователей»
• «Создай нового пользователя с правами только на чтение»
• «Как устроена коллекция orders?»

⚙️ MCP Server поддерживает:
• MongoDB Atlas
• Community Edition
• Enterprise Advanced

📌 Главное — не нужен SQL, не нужно знать синтаксис. Достаточно обычного языка.

💡 Под капотом: AI превращает ваши фразы в рабочие Mongo-запросы.
Открытый исходный код. Готово к продакшену.

📌 GitHub

#MongoDB #AItools #OpenSource #MCP

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥7👍6👎2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥SQL ТРЮК: Как выбрать первые N строк в каждой группе

Вот полезный трюк: используем функцию роз намбер с патришн бай чтобы нумеровать строки внутри каждой группы, а потом фильтруем по номеру.

Ты получишь первые два события для каждого пользователя. Можно легко адаптировать под «топ‑пять товаров в каждой категории.

Этот трюк работает в большинстве современных СУБД, поддерживающих оконные функци


sql
WITH ranked AS (
SELECT
user_id,
event_time,
event_type,
ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY event_time ASC
) AS rn
FROM user_events
)
SELECT *
FROM ranked
WHERE rn <= 2;


📌 Этот запрос выберет первые 2 события *по каждому пользователю*. Просто, чисто и кросс‑совместимо — работает в PostgreSQL, MySQL 8+, SQL Server и других.

https://www.youtube.com/shorts/X5CJn1eLW20

@sqlhub
👍23🔥7😁53
📊 Mathesar — необычный веб-интерфейс для PostgreSQL, который превращает работу с базами данных в процесс, напоминающий таблицы Excel. Проект разработан некоммерческой организацией и позволяет даже не-техническим специалистам редактировать данные, строить запросы через визуальный конструктор и управлять правами доступа через стандартные роли Postgres.

Вместо создания промежуточного слоя Mathesar работает напрямую с вашей БД, сохраняя все возможности PostgreSQL — от внешних ключей до сложных ограничений. Можно подключить как новую, так и существующую базу данных, а развертывание через Docker занимает минуты.

🤖 GitHub

@sqlhub
🔥97🥰2
🗄️ Вышел первый стабильный релиз ветки MariaDB 12.0 — версия 12.0.2

MariaDB 12.0 относится к промежуточным (rolling) выпускам и пришла на смену ветке 11.8. Поддержка этой ветки продлится до выхода MariaDB 12.1.2.
Параллельно представлен релиз-кандидат MariaDB 12.1.1.

📌 Напомним:
MariaDB — форк MySQL, совместимый по API/CLI, но с дополнительными движками хранения и расширенными функциями. Развивается MariaDB Foundation с открытым процессом разработки.
MariaDB уже заменяет MySQL во многих Linux-дистрибутивах (RHEL, Fedora, Debian, Arch и др.) и используется в крупных проектах вроде Wikipedia и Google Cloud SQL.

Главное в MariaDB 12.0:
- 🔐 Поддержка SSL-ключей с паролем (`ssl_passphrase` или ввод вручную при запуске).
- 👤 Команда SET SESSION AUTHORIZATION — выполнение под другим пользователем (аналог sudo в БД).
- 🗝️ Плагин file_key_management.so — поддержка SHA-2.
- 🔄 Weak cursor variables (`SYS_REFCURSOR`) для возврата курсора из процедур и функций + настройка max_open_cursors.
- 📅 TO_CHAR — режим FM (Fill Mode) без лишних пробелов.
- 🛠 mariadb-check / CHECK TABLE теперь работают с таблицами SEQUENCE.
- Оптимизатор — поддержка MySQL-совместимых *hints*: QB_NAME, BKA, NO_BKA, MAX_EXECUTION_TIME и др.
- 🌍 GIS-функции: ST_Validate, ST_GeoHash, ST_IsValid и др.
- 🔔 Триггеры для нескольких событий в одном CREATE TRIGGER.
- 📝 Audit-плагин пишет в лог и сетевой порт подключения.
- 📂 mariadb — новая опция --script-dir для кастомного каталога скриптов.
- 🗑️ Удалены устаревшие переменные: big_tables, large_page_size, storage_engine.

https://github.com/MariaDB/server/releases/tag/mariadb-12.0.2

#MariaDB #Database #SQL #Opensource

@sqlhub
9👍4🔥2
🔮 CozoDB — графовая база данных с поддержкой Datalog-запросов, временными срезами и векторным поиском через HNSW-индексы.

Инструмент имеет встроенные алгоритмы для работы с графами и кроссплатформенность: работает как embedded-решение на Python, Node.js, Android и даже в браузере через WASM. Поддерживает SQLite, RocksDB и распределённое хранилище TiKV.

🤖 GitHub

@sqlhub
6👍4🔥3
🚀 sebastien/multiplex — Command‑Line Process Multiplexer

Что это: простой CLI и Python API для запуска нескольких процессов параллельно, с гибким управлением зависимостями, задержками и завершением.

Фичи:
- Параллельный или последовательный запуск процессов
- Задержки: +2s, +500ms
- Зависимости: :A, :A&
- Именование процессов и цветной вывод
- Управление через Python API

🔧 Примеры:

- Запуск двух серверов:

multiplex "python -m http.server -p 8000" "python -m http.server -p 8001"


- Сначала сервер, потом бенчмарк:

multiplex "SERVER=python -m http.server" "+2s=ab -n1000 http://localhost:8000/"


- Сценарий: DB → API → тесты:

multiplex "DB=mongod" "API:DB&+2=node server.js" ":API&|end=npm test"


📦 Установка:
pip install multiplex-sh
или просто multiplex.py напрямую с GitHub

🔗 GitHub: https://github.com/sebastien/multiplex

🧰 Подходит всем, кто запускает несколько сервисов — API, БД, фоновые задачи — и хочет сделать это красиво.

@sqlhub
4👍4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥VK зовет всех поглитчевать и обсудить RecSys. 27 августа на встрече AI VK & Pro спецы обсудят реальные тренды и рекомендательные системы.

Нетворкингу быть

@sqlhub
👎147👍2🥰2😁2🤬2
Starbucks Korea ввела жёсткий запрет на «офис в кофейне»

Теперь по всей стране нельзя приносить в залы стационарные компьютеры, принтеры, сетевые фильтры и сооружать перегородки.

Причина — вирусное фото, на котором посетитель развернул полноценный офисный сетап, ушёл на три часа и оставил всё без присмотра.

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

📌 Подробнее

@sqlhub
👍26😁177🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Open-source инструмент для просмотра CSV, JSON, Excel и других таблиц прямо в терминале — без потери форматирования, аккуратно и читабельно.

🔥 Что умеет:
— Встроенный SQL-движок: фильтры, джойны и анализ прямо в терминале;
— Vim-подобные хоткеи (для фанатов, да 😁);
— Быстрый поиск, работа с несколькими таблицами, поддержка тем (Monokai, Nord и др.).

https://github.com/shshemi/tabiew
🔥16👍84
🚀 RisingLight — образовательная OLAP-база данных. Этот проект разрабатывается как учебная реализация OLAP-системы с поддержкой SQL-запросов, включая выполнение TPC-H тестов.

Для тех, кто хочет заглянуть под капот аналитических баз данных, RisingLight предлагает отличную возможность изучить их устройство на практике. Хотя проект пока не готов для production, он уже даёт представление о ключевых компонентах СУБД: от парсера запросов до исполнителя. Сообщество активно развивается: есть Discord, Telegram и даже WeChat-чат для обсуждения. Авторы приветствуют вклад новичков и предлагают список "good first issues" для первых PR.

🤖 GitHub

@sqlhub
👍3
🔌 pREST (PostgreSQL REST) — проект, предлагающий готовое решение для создания RESTful API поверх PostgreSQL. Этот инструмент написан на Go и позволяет быстро развернуть высокопроизводительный API-сервер без сложной настройки. Поддержка начинается с PostgreSQL 9.5, что делает его совместимым с большинством существующих баз данных.

Проект особенно удобен для разработчиков, которым нужно быстро создать API с минимальными затратами. Он поддерживает SQL-запросы через REST-эндпоинты, аутентификацию и кастомные маршруты. Развернуть pREST можно даже в один клик, например, на Heroku.

🤖 GitHub

@sqlhub
5👍4🔥2
🧩 Продвинутая задача по SQL (Oracle): найти «бычьи серии» продаж и момент разворота

Задача
Есть таблица продаж по дням:

sales(day_date DATE, customer_id NUMBER, amount NUMBER)

Нужно для каждого клиента найти интервалы из не меньше 3 подряд идущих дней, где сумма amount строго возрастает каждый день, а на следующий день после интервала происходит разворот вниз (т.е. amount меньше, чем в последний день серии). Для каждого такого интервала вернуть:
- customer_id
- start_date, end_date серии
- length (длина серии в днях)
- last_amount (сумма в последний день серии)
- drop_amount (сумма в день разворота)
- drop_pct (процент падения относительно last_amount)

Решение (Oracle 12c+): используем MATCH_RECOGNIZE


SELECT *
FROM sales
MATCH_RECOGNIZE (
PARTITION BY customer_id
ORDER BY day_date
MEASURES
FIRST(day_date) AS start_date,
LAST(day_date) AS end_date,
COUNT(A.*) AS length,
LAST(amount) AS last_amount,
NEXT(amount) AS drop_amount,
ROUND( (LAST(amount) - NEXT(amount)) / NULLIF(LAST(amount),0) * 100, 2 ) AS drop_pct
ONE ROW PER MATCH
AFTER MATCH SKIP PAST LAST ROW
PATTERN (A{3,} D)
DEFINE
A AS ( PREV(amount) IS NULL OR amount > PREV(amount) ),
D AS amount < PREV(amount)
);


Пояснение
- PATTERN (A{3,} D) — ищем подпоследовательность из минимум трёх строго возрастающих дней A, за которой сразу идёт день падения D.
- DEFINE A — рост относительно предыдущего дня в группе клиента.
- DEFINE D — падение относительно предыдущего дня (последнего A).
- MEASURES — извлекаем границы серии и метрики, NEXT(amount) берёт сумму в день разворота.
- AFTER MATCH SKIP PAST LAST ROW — не пересекаем серии.

Бонус: защита от «лестниц» с пропусками дат
Если в данных бывают пропуски дней, а вам нужны подряд идущие даты, добавьте проверку календарной последовательности:


DEFINE
A AS ( (PREV(amount) IS NULL OR amount > PREV(amount))
AND (PREV(day_date) IS NULL OR day_date = PREV(day_date) + 1) ),
D AS ( amount < PREV(amount) AND day_date = PREV(day_date) + 1 )


Зачем так делать
MATCH_RECOGNIZE — мощный инструмент Oracle для поиска сложных паттернов по времени (распознавание трендов, разрывов, «голова-плечи», аномалий). Он заменяет громоздкие CTE с аналитиками и делает запрос короче, быстрее и точнее при работе с последовательностями.

@sqlhub
👍229🔥8
💡 Полезный хинт для Oracle SQL — использование TRUNC с датами для фильтрации и агрегации

В Oracle функция `TRUNC(date, 'fmt')` обрезает дату до заданного формата, обнуляя менее значимые части (часы, минуты, секунды и т.д.). Это помогает:
- фильтровать данные по дням, месяцам, годам, неделям, кварталам,
- делать группировки без сложных выражений,
- избавляться от ошибок, когда время мешает сравнению дат.

📌 Форматы:
- 'DD' — начало дня (по умолчанию)
- 'MM' — первый день месяца
- 'YYYY' — первый день года
- 'IW' — начало ISO-недели
- 'Q' — первый день квартала

📍 Примеры:

- Все сделки за сегодня

select *
from trades
where trunc(ts) = trunc(sysdate);


- Группировка по месяцам

select trunc(ts, 'MM') as month_start, sum(price) as total
from trades
group by trunc(ts, 'MM')
order by month_start;



-- Данные за текущий квартал
select *
from trades
where trunc(ts, 'Q') = trunc(sysdate, 'Q');


Плюсы:
- Удобно в чтении и написании
- Убирает проблемы с «лишними» часами и минутами в датах
- Работает напрямую с типом DATE без лишних кастов

@sqlhub
8👍4🔥4
🐘 Tarantool — необычная платформа, сочетающая in-memory базу данных с полноценным сервером приложений на Lua. Проект имеет два движка хранения: in-memory с WAL и LSM-дерево, поддерживает ANSI SQL и асинхронную репликацию.

Инструмент имеет встроенный JIT-компилятор LuaJIT, позволяющий исполнять бизнес-логику прямо рядом с данными. При этом сохраняется совместимость с внешними СУБД вроде PostgreSQL через коннекторы. Проект полезен для высоконагруженных веб-сервисов, кэширующих слоёв и систем обработки очередей сообщений.

🤖 GitHub

@sqlhub
9👎5👍3🔥1😁1🤬1
📊 Из PDF в DataFrame за пару строк кода

Работаете с финансовыми отчётами или любыми табличными данными в PDF?
С библиотекой docling это становится максимально просто.

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

Docling закрывает весь процесс — от сырых PDF до структурированных и готовых к поиску данных — в одном решении.

📌 Преимущества Docling:
🔹 Поддержка PDF, DOCX, PPTX, HTML и изображений
🔹 AI-модель TableFormer для понимания сложных таблиц
🔹 Vision-модели для OCR и image-to-text
🔹 Простой экспорт в pandas DataFrame, JSON и Markdown

Пример: конвертируем PDF с отчётом о доходах и сразу получаем pandas DataFrame 👇


from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("financial_report.pdf")

for table in result.document.tables:
df = table.export_to_dataframe()


📌 Github

@sqlhub

#AI #RAG #Docling #DataEngineering #PDF
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2111🔥3😱1
2025/10/19 18:39:15
Back to Top
HTML Embed Code: