sqlhub | Unsorted

Telegram-канал sqlhub - Data Science. SQL hub

32899

По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo

Subscribe to a channel

Data Science. SQL hub

🧠 MCP сервер для баз данных от Google

Он выступает прослойкой между вашим агентом (например, LangChain, LlamaIndex, VertexAI) и базой данных, упрощая работу с базой, подключение, управление, безопасность и мониторинг.,

Подходит для разработки AI-агентов, которые могут создавать и управлять в реальными БД.

Особенности:
✔️ Подключение к БД за < 10 строк Python
✔️ Встроенный pooling и аутентификация
✔️ Простая интеграция в агентов (LangChain, Autogen, и т.д.)
✔️100% open-source
✔️Поддержка разных БД: PostgreSQL, MySQL, SQLite, SQL Server, AlloyDB, Cloud SQL, Spanner, BigQuery, Bigtable, Couchbase, Dgraph, Redis, Neo4j и др.
✔️Удобная конфигурация : простой синтаксис YAML для описания функций и запросов.


Если делаете агентов, которые работают с SQL/PostgreSQL/MySQL — точно стоит попробовать.

GitHub: https://github.com/googleapis/genai-toolbox

@ai_machinelearning_big_data


#AI #ML #aiagent #opensource #MCP #databases #genai

Читать полностью…

Data Science. SQL hub

⚡️ Почему лучшие разработчики всегда на шаг впереди?

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

ИИ: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Мл собес t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
МЛ: t.me/machinelearning_ru
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
Физика: t.me/fizmat
SQL: t.me/databases_tg

Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🖥 Chatgpt для кода в тг: @Chatgpturbobot

📕Ит-книги: /channel/addlist/BkskQciUW_FhNjEy
💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi

Подпишись, чтобы всегда знать, куда двигаться дальше!

Читать полностью…

Data Science. SQL hub

«Идейные победят наёмников» — Альтмана снова качает

Пока Альтман рассказывает сотрудникам OpenAI, что "важны идеи, а не деньги", рынок переманивает его ключевых ресерчеров пачками. Гонка за мозги выглядит всё жёстче — и всё прозрачнее.

🚀 Цукерберг собрал новое AGI-подразделение: 12 человек, многие из которых — бывшие сотрудники OpenAI.
Из них 8 — с азиатскими фамилиями. Совпадение? Вряд ли.

💰 Инсайды про $100M signing bonus пока разнятся: то ли вброс, то ли реальность. Но для контекста:
CEO Apple и Microsoft за 2024 получили меньше $80 млн за весь год.

📊 Конкуренты тоже не дремлют:
- Thinking Machines Миры Мурати — $500K+ в год
- Anthropic — $400K
- OpenAI — $300K, но “с душой”

Вчера Альтман заявил команде, что "идейные победят наёмников". Похоже, он всё ещё не понял, как работает рынок, особенно когда GPU у Су и Хуанга раскупаются быстрее, чем стартапы успевают написать README.

🔥 Сегодняшняя гонка AGI — это не просто про интеллект. Это про то, кто сможет купить больше китайских исследователей, больше графических карт и времени больше не терять.

🐉 Китайцы в Китае уже почти догнали китайцев в США.

@sqlhub

Читать полностью…

Data Science. SQL hub

🐳 Oracle Database 23.8 Free: мультиплатформенные контейнеры уже доступны!

Gerald Venzl сообщил, что новые образы Oracle Database 23.8 Free теперь доступны на Docker Hub и GitHub Container Registry:

- docker.io/gvenzl/oracle-free
- ghcr.io/gvenzl/oracle-free

💡 Что нового:

✅ Автоплаг PDB:
Если вы заранее подготовили .pdb`-файлы, просто поместите их в `/pdb-plug и укажите нужные имена через переменную ORACLE_DATABASE. Контейнер сам подключит их как полноценные базы, минуя процесс создания с нуля.

✅ Новый механизм healthcheck-кодов:
Контейнер теперь возвращает коды от 0 до 5, показывая текущую стадию запуска:
- 0 — база данных полностью готова
- 1 — база ещё не готова
- 2 — контейнер инициализируется
- 3 — происходит подключение/создание PDB
- 4 — выполняются init-скрипты
- 5 — выполняются пользовательские startup-скрипты

✅ Новые возможности в самой Oracle Database 23.8:
- Поддержка векторных операций и пользовательских функций расстояния
- Расширенная работа с JSON-типами и массивами
- Dynamic Statistics для PL/SQL
- Elastic Vector Memory
- Ограниченное выполнение JavaScript в БД (Restricted Execution Contexts)

📦 Пример запуска:


docker pull gvenzl/oracle-free:23.8-full
docker run --name oracle \
-e ORACLE_DATABASE="mydb" \
-v $(pwd)/mydb.pdb:/pdb-plug/mydb.pdb \
gvenzl/oracle-free:23.8-full


📌 Подробнее

@sqlhub

Читать полностью…

Data Science. SQL hub

Customer Orders — пример схемы базы данных от Oracle

Примерная схема Customer Orders (CO) моделирует систему управления заказами в розничной торговле. Подходит для обучения, тестов и демонстрации возможностей Oracle Database.

🔹 Основные особенности:
• Хранение товаров с описанием в JSON
• Учёт заказов, клиентов, магазинов и отправок
• Поддержка офлайн и онлайн-продаж
• Использование современных SQL-возможностей

🔹 Таблицы:
products — товары, цены, JSON-описание и изображения
customers — покупатели с ID, именем и email
orders — заказы с датой, статусом и привязкой к магазину
order_items — позиции в заказе, количество, цена, доставка
stores — физические и онлайн-точки продаж
shipments — информация об отправке товара

📦 Схема отражает типичный розничный бизнес-процесс и показывает, как можно сочетать структурированные данные и JSON в Oracle DB.

📌 Github

@sqlhub

Читать полностью…

Data Science. SQL hub

🧠 Oracle SQL — продвинутый приём: `MERGE` вместо `UPDATE` + `INSERT`

Если ты сначала пытаешься обновить строку, а если её нет — вставляешь новую, не пиши две команды. Используй MERGE — это быстрее, чище и атомарно.

🔧 Пример:


MERGE INTO employees e
USING (SELECT 101 AS emp_id, 'Alice' AS name FROM dual) src
ON (e.emp_id = src.emp_id)
WHEN MATCHED THEN
UPDATE SET e.name = src.name
WHEN NOT MATCHED THEN
INSERT (emp_id, name)
VALUES (src.emp_id, src.name);


📌 Что делает:
• Ищет по ключу (`ON`)
• Если запись есть — обновляет
• Если нет — вставляет
• Всё за один проход, без гонок и лишних проверок

⚡ Почему это важно:
• Меньше round-trip'ов между приложением и БД
• Атомарная логика — MERGE гарантирует целостность
• Лучше подходит для ETL, синхронизации, загрузки внешних данных

🧠 Вывод: если пишешь IF EXISTS THEN UPDATE ELSE INSERT — ты уже проиграл.
Пиши MERGE, и база всё сделает за тебя.

Читать полностью…

Data Science. SQL hub

🚀 Парадигма меняется: Polaris выводит локальные модели на новый уровень

Polaris — это набор простых, но мощных приёмов, который позволяет даже компактным LLM (4 B, 7 B) догнать и превзойти «тяжеловесов» на задачах рассуждения (открытая 4B модель превосходи Claude-4-Opus).

Вот как это работает и почему важно:
Управление сложностью данных
– Генерируем несколько (например, 8) вариантов решения от базовой модели
– Оцениваем, какие примеры слишком простые (8/8) или слишком сложные (0/8), и убираем их
– Оставляем «умеренные» задачи с правильными решениями в 20–80 % случаев, чтобы быть ни слишком лёгкими, ни слишком сложными

Разнообразие «прогонов» (rollout-ов)
– Мы запускаем модель несколько раз на одной и той же задаче и смотрим, как меняются её рассуждения: одни и те же входные данные, но разные «пути» к решению.
– Считаем, насколько разнообразны эти пути (т. е. их «энтропия»): если модели всё время идут по одной линии, новых идей не появляется; если слишком хаотично — рассуждения неустойчивы.
– Задаём начальную “температуру” генерации там, где баланс между стабильностью и разнообразием оптимален, а затем постепенно её повышаем, чтобы модель не застревала на одних и тех же шаблонах и могла исследовать новые, более креативные ходы.

“Train-short, generate-long”
– Во время RL-обучения используем короткие цепочки рассуждений (короткие CoT) для экономии ресурсов
– На inference увеличиваем длину CoT, чтобы получить более детальные и понятные объяснения без накрутки стоимости обучения

Динамическое обновление датасета
– По мере роста точности удаляем примеры с accuracy > 90 %, чтобы не «портить» модель слишком лёгкими задачами
– Поддерживаем постоянный вызов модели на её пределе возможностей

Улучшенная reward-функция
– Комбинируем стандартный RL-reward с бонусами за разнообразие и глубину рассуждений
– Это позволяет модели учиться не только давать правильный ответ, но и объяснять логику своих решений

Преимущества Polaris
• Благодаря Polaris даже компактные LLM (4 B и 7 B) достигают и даже «тяжеловесов» (32 B–235 B) на AIME, MATH и GPQA
• Обучение на доступных GPU уровня consumer-grade — до 10× экономии ресурсов и затрат по сравнению с традиционными RL-пайплайнами

• Полный открытый стек: исходники, подборка данных и веса
• Простота и модульность: готовый к использованию фреймворк для быстрого внедрения и масштабирования без дорогостоящей инфраструктуры


Polaris доказывает, что качество данных и грамотная настройка RL-процесса важнее просто «больших моделей». С ним вы получите продвинутую reasoning-LLM, которую можно запустить локально и масштабировать везде, где есть обычная GPU.


Blog post: https://hkunlp.github.io/blog/2025/Polaris
Model: https://huggingface.co/POLARIS-Project
Code: https://github.com/ChenxinAn-fdu/POLARIS
Notion: https://honorable-payment-890.notion.site/POLARIS-A-POst-training-recipe-for-scaling-reinforcement-Learning-on-Advanced-ReasonIng-modelS-1dfa954ff7c38094923ec7772bf447a1

@ai_machinelearning_big_data

#ml #ai • #Polaris #PostTraining #ReinforcementLearning #LLM

Читать полностью…

Data Science. SQL hub

🦀 Новый SQL-клиент на Rust — rsql
Лёгкий, быстрый и мощный инструмент для работы с файлами и базами данных из терминала.

📌 Что умеет

● Поддержка множества форматов: CSV, JSON, Parquet, Excel, XML, YAML, Avro и др.
● Подключение к SQLite, PostgreSQL, MySQL, SQL Server, DuckDB, Snowflake, CrateDB и даже DynamoDB
● Работа с архивами: Gzip, Zstd, Brotli, LZ4, Bzip2 и др.
● Удобная CLI: автодополнение, подсветка, история, интерактивный REPL
● Вывод в разных форматах: Markdown, HTML, JSON, CSV, plaintext
● 100 % безопасный Rust-код — #![forbid(unsafe_code)]
● Кастомизация: Vi/Emacs режимы, локализации, собственные темы вывода

📥 Установка


curl -LsSf https://raw.githubusercontent.com/theseus-rs/rsql/main/install.sh | sh


🧪 Пример использования

# Одноразовый запрос к SQLite
rsql --url "sqlite://file.db" -- "SELECT * FROM users LIMIT 5;"

# Интерактивная сессия с PostgreSQL
rsql --url "postgres://user:pass@localhost/db"


🆕 Что нового в v0.19.0

Добавлены драйверы CrateDB и FlightSQL

Появился metadata-catalog для удобной навигации по источникам данных

Улучшены примеры, обновлены зависимости, повышена стабильность

🔗 GitHub: https://github.com/theseus-rs/rsql

rsql — универсальный инструмент, который понравится аналитикам, разработчикам и data-инженерам, нуждающимся в максимально быстром и простом SQL-клиенте.

@sqlhub

Читать полностью…

Data Science. SQL hub

🧩 Интересная SQL-задача: «Вечные работники»

Представим, что у вас есть таблица employees, где хранится история переводов сотрудников между отделами:


CREATE TABLE employees (
employee_id INT,
department VARCHAR(50),
start_date DATE,
end_date DATE
);



Пример данных:

employee_id department start_date end_date
1 Sales 2020-01-01 2022-01-01
1 HR 2022-01-02 NULL
2 Sales 2019-05-01 2021-05-01
2 Sales 2021-05-02 NULL
3 HR 2022-06-01 NULL


🎯 Задача: Найдите всех сотрудников, которые работали в одном и том же отделе без перерыва более 3 лет.
Если человек работал в Sales 2+ периода подряд — они считаются одним, если не было пропуска между ними.

🛠 Решение на PostgreSQL:


WITH ordered_periods AS (
SELECT *,
LAG(end_date) OVER (PARTITION BY employee_id, department ORDER BY start_date) AS prev_end
FROM employees
),
grouped_periods AS (
SELECT *,
CASE
WHEN prev_end IS NULL OR prev_end + INTERVAL '1 day' < start_date THEN 1
ELSE 0
END AS is_new_group
FROM ordered_periods
),
group_tags AS (
SELECT *,
SUM(is_new_group) OVER (PARTITION BY employee_id, department ORDER BY start_date) AS group_id
FROM grouped_periods
),
grouped_ranges AS (
SELECT employee_id, department, group_id,
MIN(start_date) AS period_start,
MAX(COALESCE(end_date, CURRENT_DATE)) AS period_end
FROM group_tags
GROUP BY employee_id, department, group_id
),
long_periods AS (
SELECT employee_id, department, period_start, period_end,
(period_end - period_start) AS duration_days
FROM grouped_ranges
WHERE period_end - period_start > INTERVAL '3 years'
)
SELECT *
FROM long_periods;


🔍 Разбор логики:

• Сначала находим предыдущие даты окончания для сравнения.
• Метим, где начинается новая непрерывная группа.
• Суммируем метки — получаем уникальные группы без разрывов.
• Группируем и считаем длительность.
• Оставляем только тех, кто проработал более 3 лет подряд в одном отделе.

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

@sqlhub

Читать полностью…

Data Science. SQL hub

📦 Outbox — надёжная реализация outbox-паттерна на Go для микросервисов

Если твои сервисы пишут в базу и одновременно публикуют события в Kafka, RabbitMQ или другие брокеры — знай: без outbox-паттерна ты рискуешь потерять данные.

🔧 Outbox — это лёгкая и удобная библиотека на Go, которая помогает сделать доставку сообщений атомарной и надёжной, без лишней сложности.

🧠 Что она делает:

1. Сохраняет событие в таблицу outbox в рамках транзакции
2. Отдельный воркер читает сообщения и отправляет их в брокер
3. После успешной доставки — сообщение помечается как доставленное

💡 Особенности:

- Поддержка PostgreSQL
- Готовые адаптеры для Kafka и RabbitMQ
- Возможность использовать свой брокер (реализуй интерфейс)
- Поддержка сериализации / форматирования событий
- Использует sqlx и стандартную database/sql

🧩 Подходит для:

- надёжной синхронизации БД ↔ событий
- микросервисов, где важна консистентность
- систем, где нужна повторная доставка без дублей

🔥 Отличный выбор, если ты хочешь atomic-публикацию событий без тяжёлых фреймворков и сервисов.

#Go #OutboxPattern #Kafka #RabbitMQ #Microservices #EventDriven #PostgreSQL

🔗 https://github.com/oagudo/outbox

@sqlhub

Читать полностью…

Data Science. SQL hub

🧠 SQL-задача с подвохом: "Невидимые дубликаты"

В таблице users хранятся email-адреса пользователей. Некоторые юзеры регистрируются повторно, маскируя один и тот же email по-разному:

| id | name | email |
|----|----------|--------------------------|
| 1 | Alice | alice@example.com |
| 2 | Bob | ALICE@EXAMPLE.COM |
| 3 | Charlie | alice@example.com |
| 4 | Dave | alice+promo@example.com |
| 5 | Eve | a.l.i.c.e@example.com |


🎯 Цель:
Найти количество уникальных пользователей, если:
- Регистр не учитывается (`alice` = `ALICE`)
- Пробелы игнорируются
- Для @gmail.com:
— Убираются точки в имени
— Всё после + отрезается

✅ SQL-решение:


SELECT COUNT(DISTINCT normalized_email) AS unique_users
FROM (
SELECT
CASE
WHEN email ILIKE '%@gmail.com' THEN
REGEXP_REPLACE(
SPLIT_PART(SPLIT_PART(LOWER(TRIM(email)), '+', 1), '@', 1),
'\.', '', 'g'
) || '@gmail.com'
ELSE
LOWER(REPLACE(TRIM(email), ' ', ''))
END AS normalized_email
FROM users
) AS cleaned;


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

LOWER(TRIM(email)) — убираем пробелы и регистр

SPLIT_PART(..., '+', 1) — отрезаем всё после +

REGEXP_REPLACE(..., '\.', '', 'g') — удаляем точки

Считаем DISTINCT, чтобы получить число уникальных email'ов

🔥 Используй такие трюки для:
• антифрода
• чистки базы
• аналитики поведения пользователей

#SQL #PostgreSQL #Gmail #EmailNormalization #DevTools #AntiFraud #DataCleaning #Analytics

Читать полностью…

Data Science. SQL hub

🚀 Как построить ML-пайплайн в Apache Spark: пошаговый гайд

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

🔧 Компоненты пайплайна:
- Transformers: преобразуют данные (например, StringIndexer, `StandardScaler`)
- Estimators: обучают модели (например, `LogisticRegression`)
- Pipeline: объединяет все шаги в единую последовательность

🧪 Пример:
1. Загрузка и очистка данных
2. Преобразование категориальных признаков
3. Сборка признаков в вектор
4. Масштабирование данных
5. Обучение модели логистической регрессии
6. Оценка качества модели (accuracy, precision, recall, F1)

📌 Ключевые преимущества:
- Высокая скорость обработки больших объемов данных
- Удобная интеграция с Python через PySpark
- Гибкость и масштабируемость для промышленных задач

Полный разбор с кодом и примерами:
👉 https://www.kdnuggets.com/implementing-machine-learning-pipelines-with-apache-spark

Читать полностью…

Data Science. SQL hub

🧠 Хитрая задача по SQL: максимум без агрегатов?

У тебя есть таблица orders со следующими полями:


orders(id, customer_id, order_date, amount)


📌 Задача:
Для каждого клиента (`customer_id`) найти наиболее поздний заказ (по order_date`), **не используя `GROUP BY и `MAX()`**.

🔥 Уловка: DISTINCT ON, TOP 1 WITH TIES и RANK() нельзя — ты ограничен базовым SQL, работающим на большинстве СУБД.

💡 Подумай:
Как ты решишь эту задачу только с JOIN, WHERE и EXISTS?

📥 Ожидаемый результат:
```sql
customer_id | order_id | order_date | amount
------------|----------|------------|--------
1001 | 87 | 2024-12-01 | 320.00
1002 | 91 | 2024-12-05 | 175.00
...

```

🧩 Подсказка:
Можно использовать NOT EXISTS, чтобы выбрать заказы, у которых нет более новых у того же клиента.


SELECT o.*
FROM orders o
WHERE NOT EXISTS (
SELECT 1
FROM orders o2
WHERE o2.customer_id = o.customer_id
AND o2.order_date > o.order_date
)


📎 Такой приём полезен:
• Когда нельзя использовать оконные функции
• Когда ты работаешь на старых версиях СУБД
• Когда нужна универсальность между MySQL / Oracle / SQLite

#SQL #Задача #БазыДанных #DataEngineering #Оптимизация

@sqlhub

Читать полностью…

Data Science. SQL hub

📧🤖 ART: интеллектуальный e-mail-агент с памятью, действиями и "мыслями"

OpenPipe представили подробный разбор архитектуры ART (Action–Recall–Thought) — это не просто бот, а полноценный агент, который может читать письма, анализировать контекст, планировать действия и запоминать диалог. Такой себе LLM-секретарь, который не забывает, что вы писали неделю назад, и умеет реагировать правильно.

🧠 Что такое ART?

ART — это архитектура, построенная вокруг трёх основных элементов:
1️⃣ Action — агент может действовать: писать ответы, создавать события, ставить задачи, отправлять follow-up.
2️⃣ Recall — агент вспоминает: использует векторную память, чтобы помнить важные детали переписки.
3️⃣ Thought — агент думает: размышляет о контексте, выбирает нужные шаги и обновляет своё внутреннее состояние.

Каждый запуск агента — это один цикл мышления, в котором он анализирует новое письмо, сравнивает его с памятью и решает, что делать.

🧩 Как работает?

Архитектура построена на LangGraph — фреймворке для создания LLM-агентов с управляемыми потоками данных (узлы, переходы, состояния).

🧬 Компоненты:
- Nodes:
- Reader: разбирает новое письмо
- Memory Retriever: ищет релевантные воспоминания
- Planner: решает, что делать
- Executor: выполняет действия (ответ, событие и т.д.)
- Reflector: обновляет размышления агента

- Memory:
- Используется ChromaDB (векторная база), куда сохраняются ключевые сообщения, решения, действия и мысли.

- Tools:
- Встроенные функции-агенты (tools) для генерации писем, событий, напоминаний, оповещений и т.п.
- Всё вызывается динамически через LLM, как в OpenAI function calling.

🔁 Как агент работает на практике?

Пример цикла:

1. Приходит e-mail → Reader извлекает суть.
2. Memory Retriever ищет похожие прошлые переписки.
3. Planner решает: ответить? создать задачу? проигнорировать?
4. Executor выполняет нужное действие.
5. Reflector обновляет память и размышления.

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

💡 Что делает ART особенным?

✅ Работает в несколько итераций, не просто «prompt → response»
✅ Помнит прошлые письма, решения, даже ошибки
✅ Сам планирует, что делать: отвечать, пересылать, напоминать
✅ Обновляет свои действия при изменении входных данных
✅ Настраивается под любые задачи: продажи, саппорт, личные письма, менеджмент

📎 Полный разбор от OpenPipe с примерами кода, схемами и демонстрацией:

👉 https://openpipe.ai/blog/art-e-mail-agent

Если ты хочешь строить LLM-агентов с настоящей памятью и логикой — это must-read. Это шаг к настоящим автономным ассистентам.

#AI #LLM #autonomousagents #LangGraph #e-mail #productivity #openpipe #инструменты

@sqlhub

Читать полностью…

Data Science. SQL hub

🎯 SQL-задача с подвохом для аналитиков

Таблица sales:


CREATE TABLE sales (
id SERIAL PRIMARY KEY,
seller_name VARCHAR,
sale_amount NUMERIC,
sale_date DATE
);


📌 Задача:
Найди имя продавца, который заработал максимальную сумму за каждый месяц.

🧠 Подвох:
Многие пытаются использовать GROUP BY month, seller_name и MAX(), но это не даст имя продавца — только сумму. Нужно вернуть имя лучшего продавца за месяц. А если таких несколько? Тоже учти.

💡 Подсказки:

• Сначала сгруппируй продажи по month и seller_name
• Посчитай SUM(sale_amount)
• Используй оконную функцию RANK() или ROW_NUMBER()
• Отфильтруй только те строки, где rank = 1

🧩 Решение:


WITH monthly_totals AS (
SELECT
DATE_TRUNC('month', sale_date) AS month,
seller_name,
SUM(sale_amount) AS total
FROM sales
GROUP BY 1, 2
),
ranked AS (
SELECT *,
RANK() OVER (PARTITION BY month ORDER BY total DESC) AS rnk
FROM monthly_totals
)
SELECT month, seller_name, total
FROM ranked
WHERE rnk = 1
ORDER BY month;


👀 Бонус-вопрос:
Что будет, если у двух продавцов одинаковая сумма за месяц?
Какой оконной функцией это корректно учесть?

👉 RANK() вернёт обоих, ROW_NUMBER() — только одного.

📌 Отличная задача, чтобы проверить знание оконных функций и работы с агрегацией в SQL.

@sqlhub

Читать полностью…

Data Science. SQL hub

🍉 WatermelonDB — гибкая база данных для React. Эта СУБД предлагает необычный подход к работе с данными в React-приложениях. Вместо загрузки всей информации при старте, она подгружает только то, что действительно нужно пользователю прямо сейчас.

Инструмент обладает гибридной архитектурой: SQLite на низком уровне обеспечивает надежность, а прослойка на React автоматически обновляет интерфейс при изменениях. Например, новое сообщение в чате мгновенно появится во всех открытых списках без ручного обновления.

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

🌺 LotusDB — гибридный key-value движок на Go. Этот проект объединяет лучшее из двух миров — скорость чтения B+-деревьев и эффективность записи LSM-деревьев. Инструмент позиционируется как альтернатива Badger и BBolt, но с меньшими накладными расходами на чтение и дисковое пространство.

Проект поражает простотой интеграции: достаточно импортировать пакет и указать путь для хранения данных. LotusDB активно развивается, а в Slack-чате уже собирается сообщество энтузиастов.

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

Не уверены, что у вас на сервере Postgres установлен правильный набор расширений?
Удивляетесь, что сервер ваших коллег умеет больше, чем ваш?

Присоединяйтесь к нашему вебинару «Особенности реализации запросов в PostgreSQL» и узнайте, как сделать все правильно!

Практика: Создание собственных решений на основании самых полезных расширений Postgres, которые ставятся на большинство производственных серверов

📌Регистрируйтесь на урок, чтобы сделать ваш сервер Postgres лучше!
https://tglink.io/96dee17b0f8c?erid=2W5zFHPyF52

#реклама
О рекламодателе

Читать полностью…

Data Science. SQL hub

🌌 SlateDB — хранилище нового поколения, где облако становится диском. Этот проект переосмысливает классические LSM-движки, перенося данные не на локальный SSD, а прямо в объектные хранилища вроде S3 или MinIO. За счет этого SlateDB предлагает почти безграничную емкость и встроенную репликацию, жертвуя лишь долями секунд задержки.

Разработчики добавили множество полезных фич для борьбы с лаг-проблемами: батчинг записей, кэширование блоков и bloom-фильтры превращают работу с облаком в почти локальный опыт. Интеграция через object_store позволяет подключать даже кастомные хранилища.

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

🐘 Medoo — минималистичный PHP-фреймворк для работы с базами данных, упакованный в один файл. Этот инструмент особенно понравится тем, кто ценит простоту: подключение к MySQL, PostgreSQL или SQLite требует всего несколько строк кода, а синтаксис напоминает обычный массив PHP.

Несмотря на лёгкость, фреймворк умеет строить сложные запросы, защищает от SQL-инъекций и работает с Laravel, Yii и другими популярными фреймворками. Установка через Composer занимает секунды, а MIT-лицензия позволяет использовать его даже в коммерческих проектах.

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

⚡️Качество данных: почему это также важно для аналитика как Python и SQL

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

Присоединяйтесь к нашему вебинару, где разберём:
🟠Как качество данных влияет на принятие решений и карьеру аналитика;
🟠Метрики качества данных: актуальность, допустимость, полнота и другие;
🟠Частые причины проблем с качеством данных;
🟠Методы повышения качества данных: определение требований к КД, мониторинг КД, решение инцидентов.

Спикер: Павел Беляев, руководитель группы дата-аналитиков в компании Яндекс eLama.

📅 Встречаемся 24 июня в 18:30 по МСК

😶Зарегистрироваться на бесплатный вебинар

Читать полностью…

Data Science. SQL hub

«Я в режиме реального времени поясняла структуру запросов / ответов в Postman и разбирала документацию в Swagger», — пишет аналитик, который прошел наш курс, а потом два технических собеседования в международные компании. Приятно, конечно ❤️

Если в 2025 году вы хотите:
— научиться выбирать стиль интеграции под вашу задачу;
— начать проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и других, + брокеры сообщений);
— узнать как правильно собирать требования и моделировать в UML;
— подготовиться к собеседованию, решив более 100 заданий;
— запустить свой API на Python.

Значит наш курс для вас!

🚀 Начните с открытых бесплатных
уроков — переходите в бот курса и жмите «Старт»
👇
@studyit_help_bot

🚀 Скидка на курс
от канала — 1 000₽ на Stepik по промокоду SQLHUB до конца июня.

Читать полностью…

Data Science. SQL hub

🐘 MikroORM — ORM на TypeScript с “Unit of Work”. Этот инструмент привносит паттерны Data Mapper и Identity Map из мира Java/Hibernate в экосистему Node.js. Здесь изменения накапливаются и применяются одной транзакцией при вызове em.flush(), что упрощает работу со сложными доменными моделями.

Для работы с отношениями достаточно добавить entity в коллекцию, и MikroORM сам решит, нужен INSERT или UPDATE. Инструмент поддерживает 7 СУБД, включая MongoDB и libSQL, а для валидации достаточно декораторов в духе @Property().

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

🚀 Solune — высокопроизводительная NoSQL-база данных на Go

Solune — это быстрая и гибкая NoSQL-база данных, разработанная с упором на масштабируемость, низкую задержку и производительность. Она использует приоритетную работу с данными в памяти, чтобы обеспечить молниеносный доступ и минимальную задержку при высоких нагрузках.

🧠 Почему Go?
Solune построена на Go — и вот почему это важно:

Горутины и каналы — идеально для обработки тысяч запросов одновременно
Высокая скорость исполнения — Go отлично подходит для чувствительных к производительности систем
Простота и читаемость — легче поддерживать и развивать проект
Богатая экосистема — множество библиотек и инструментов для создания надёжных систем

Фокус на хранении в памяти:

Мгновенный доступ — чтение из памяти быстрее, чем с диска
Минимальные задержки — нет тяжёлых операций I/O
Гибкое масштабирование — просто увеличивайте объём RAM

💡 Подходит для:
• Высоконагруженных API
• Систем, где критична скорость доступа
• Приложений с минимальной допустимой задержкой

📌 Solune — это выбор для тех, кто ищет быструю, масштабируемую и современную NoSQL-БД, идеально подходящую для in-memory архитектур.

git clone https://github.com/thijsrijkers/solune.git
cd solune


🔗 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

Redis и Valkey изучите секреты самых популярных open source key-value СУБД

В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем. Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.

🌐 В программе курса:

🤩 Как эффективно использовать базовые и продвинутые структуры данных: HyperLogLog, Bitmaps и Bisields, Streams, Geospatial-индексы, Bloom Filters
🤩 Как проектировать in-memory системы, которые не разваливаются под нагрузкой, что влияет на отказоустойчивость и как её добиться
🤩 Как работает репликация и кластеризация на практике (режимы Sentinel и Cluster)
🤩 Как встроить Redis/Valkey в реальный прод с учётом безопасности, интеграций и современных практик мониторинга.

🥸 Кто мы: R&D-центр Devhands. Автор курса — Константин Ратвин — преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.

🗓 Старт курса: 9 июня, 6 недель обучения.
Изучить программу и записаться можно здесь.

Ждем вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxNnFKA

Читать полностью…

Data Science. SQL hub

Диплом vs курсы: золотая середина для карьеры в IT

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

6 июня в 18:00 (мск) Анатолий Карпов (автор онлайн-курсов по Data Science) и Евгений Соколов (научный руководитель ФКН НИУ ВШЭ) расскажут о совместной онлайн-магистратуре karpov courses и НИУ ВШЭ — «Аналитика больших данных» на бесплатном вебинаре.
От ВШЭ — экспертиза и опыт одного из крупнейших вузов России, а от karpov courses — практические навыки в сфере анализа данных.

На встрече вы узнаете:
- преимущества высшего онлайн-образования и какие тренды есть на рынке;
- какие этапы необходимо пройти, чтобы поступить в онлайн-магистратуру НИУ ВШЭ и karpov courses;
- почему так популярна и востребована сфера аналитики данных в 2025 году.

Присоединяйтесь ко дню открытых дверей онлайн-магистратуры «Аналитика больших данных» от НИУ ВШЭ и karpov courses: https://clc.to/erid_2W5zFHNZGxY 

Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627. erid: 2W5zFHNZGxY.

Читать полностью…

Data Science. SQL hub

⚡️Кто такие дата-инженеры и почему без них не обойтись современному бизнесу?

Сейчас каждая компания собирает тонны данных: продажи, клиенты, маркетинг, логистика. Но сырые цифры бесполезны, если их нельзя превратить в понятные отчёты и выводы.

Приглашаем вас на вебинар 3 июня в 18:30 по МСК, где наш новый спикер — Владислав Вареник, Data Engineer в Сравни.ру — расскажет кто такие дата-инженеры и как они ускоряют работу бизнеса.

Что вы узнаете на вебинаре?
🟠Поговорим о профессии дата-инженера и почему эта профессия востребована.
🟠Как устроен процесс работы с данными.
🟠Как автоматизировать отчёты с помощью dbt и SQL.
🟠Пример из реальной практики.

Даже если вы далеки от аналитики — покажем, как начать с нуля и быстро получить результат. Не упустите шанс научиться тому, что будет цениться ещё десятки лет! 🚀

🕗 Встречаемся 3 июня в 18:30 по МСК

😶Зарегистрироваться на бесплатный вебинар

Читать полностью…

Data Science. SQL hub

📕 Сравнение индексации в PostgreSQL и ClickHouse для разработчиков, администраторов баз данных, инженеров и аналитиков данных

На открытом уроке 3 июня в 20:00 мск мы обсудим различия в механизмах индексации между PostgreSQL и ClickHouse. 

📗 На вебинаре разберём:
1. Основы и сравнение производительности разных подходов к индексации;
2. Для каких сценариев распространено использование этих подходов;

📘 В результате на практике разберете и сравните подходы, производительность и архитектуру индексации PostgreSQL и ClickHouse.

👉 Регистрация и подробности о курсе ClickHouse для инженеров и архитекторов БД: https://tglink.io/5ebd2827affd?erid=2W5zFFwCpjA

Все участники открытого урока получат скидку на курс "ClickHouse для инженеров и архитекторов БД"

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Data Science. SQL hub

🛠️ Что нового в SQLite — свежие обновления и улучшения

🔗 https://www.sqlite.org/changes.html

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

Вот ключевые изменения из последних версий:

🆕 SQLite 3.46.0 (май 2024)

- Добавлена поддержка contentless-delete для таблиц FTS5 — меньше места, выше скорость
- Новый флаг SQLITE_DBCONFIG_STMT_SCANSTATUS — можно отключать сбор статистики по выполнению запросов
- Оптимизации для LEFT JOIN + OR условий в WHERE — запросы выполняются заметно быстрее
- Улучшено поведение WITHOUT ROWID таблиц с составными ключами

🧪 Расширенные тесты:
- SQLite теперь использует дополнительный fuzzing для анализа стабильности ядра при высоких нагрузках и необычных SQL

🧹 Также исправлены:
- Ошибки в индексах при сложной комбинации JOIN + USING
- Утечка памяти при специфическом использовании PRAGMA function_list

💡 SQLite остаётся одной из самых лёгких, надёжных и удобных баз данных, которую можно использовать буквально везде: от браузеров и мобильных приложений до IoT и CLI-утилит.

📚 Полный список изменений — здесь:
https://www.sqlite.org/changes.html

@sqlhub

Читать полностью…

Data Science. SQL hub

YTsaurus, разработанная в Яндексе платформа для хранения и обработки больших данных, стала доступна как управляемый сервис в Yandex Cloud.

До 2023 года YTsaurus использовалась только внутри компании - для обучения нейросетей, аналитики, обработки телеметрии и работы с поисковым индексом. В прошлом году платформу выложили в опенсорс, и с тех пор она применяется как внутри Яндекса, так и за его пределами.

Теперь YTsaurus можно развернуть в облаке - без ручной настройки и с поддержкой от команды Яндекса. Платформа работает с эксабайтами данных, масштабируется до миллиона CPU и десятков тысяч GPU, поддерживает ClickHouse, Spark, MapReduce и подходит для любых сценариев - от ETL до построения хранилищ.

Заявки на ранний доступ уже открыты.

Читать полностью…
Subscribe to a channel