Data Science. SQL hub
35.7K subscribers
956 photos
57 videos
37 files
1K links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
🖥 Новый курс на Stepik - PostgreSQL для разработчиков: от основ к созданию API

Здесь на пальцах объясняют не только как писать SQL-запросы, а строить настоящие backend-сервисы с базой данных как у профи.

В этом курсе ты шаг за шагом создашь REST API на FastAPI + PostgreSQL:
от установки среды и первых таблиц - до масштабируемого приложения с безопасностью и CRUD-операциями.

🔹 На практике разберете:
• SQL-запросы, фильтры, агрегаты и подзапросы
• Связи между таблицами и нормализацию БД
• Взаимодействие Python и PostgreSQL
• Реализацию REST API и подключение базы
• Оптимизацию и разбор реальных задач с собеседований

После курса у вас будет свой работающий API-проект и реальные навыки работы с PostgreSQL в продакшене.

🎁 Сегодня –30% от цены!

🚀 Прокачаю свои знания: https://stepik.org/course/255542/
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3👍2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Нужен один «топ-элемент» на группу без оконных функций и лишних джойнов?

В PostgreSQL есть недооценённый приём: DISTINCT ON. Он берёт первую строку в каждой группе по указанным полям, какую именно, ты задаёшь через ORDER BY.

Так за один проход можно выбрать, например, последний заказ клиента, самую дорогую позицию в категории или актуальную запись по состоянию. Важно: в ORDER BY сначала идут поля из DISTINCT ON, а следом — критерий «топа» (например, created_at DESC).

Для скорости добавь составной индекс в том же порядке (ключи группировки → поле сортировки).


-- Возьмём по 1 строке на группу (g1, g2), выбирая «лучшую» по metric DESC
SELECT DISTINCT ON (g1, g2) *
FROM some_table
ORDER BY g1, g2, metric DESC;

-- Пример: последний заказ каждого пользователя
SELECT DISTINCT ON (o.user_id)
o.user_id, o.id AS order_id, o.created_at, o.total
FROM orders o
ORDER BY o.user_id, o.created_at DESC;

-- Рекомендуемый индекс для скорости (соответствует ORDER BY)
CREATE INDEX ON orders (user_id, created_at DESC);

-- Ещё пример: самая дорогая товарная позиция в категории
SELECT DISTINCT ON (p.category_id)
p.category_id, p.id, p.price
FROM products p
ORDER BY p.category_id, p.price DESC;

-- Индекс под этот запрос
CREATE INDEX ON products (category_id, price DESC);


@sqlhub
👍13🔥74
💡 SQL trick: уникальные значения прямо в агрегатах

Иногда нужно посчитать уникальные значения по каждому пользователю.
Мало кто знает, что для этого есть COUNT(DISTINCT ...).


SELECT
customer_id,
COUNT(DISTINCT product_id) AS unique_products
FROM orders
GROUP BY customer_id;


🔎 Такой запрос покажет, сколько разных товаров купил каждый клиент.
Работает не только с COUNT(), но и с SUM(DISTINCT ...) или AVG(DISTINCT ...).

@sqlhub
👍147🥰3🔥1
🖥 Гайд по PostgreSQL для продвинутых разработчиков

PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот гайд подробно охватывает ключевые аспекты PostgreSQL: от внутренней архитектуры до приёмов оптимизации. Мы рассмотрим администрирование, производительность, расширения, инструменты, а также сравним популярные ORM для Python и Go. В конце приведён список продвинутых вопросов, часто встречающихся на собеседованиях.

🟠Гайд

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Твой шанс прокачаться в ИТ, получить карьерный буст и побороться за призовой фонд 10 250 000 рублей 💰 Успей зарегистрироваться до 20 октября.


МТС приглашает на True Tech Champ — всероссийский чемпионат по программированию. Соревнование будет проходить в двух треках.

Трек 1. Алгоритмический. Индивидуальный зачет [призовой фонд 2 750 000 рублей]

Реши задачи, которые помогут прокачаться в работе с алгоритмами и структурами данных. Похожие задания встречаются на собеседованиях в МТС и других крупных компаниях. До 240 лучших участников попадут в финал и сразятся в лайв-кодинге.

Трек 2. Программирование роботов. Командный формат [призовой фонд 7 500 000 рублей]

Проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы. Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.

📍 Зрелищный шоу-финал с ИИ-технологиями, кодерскими челленджами и выступлениями международных и российских спикеров пройдет 21 ноября в МТС Live Холл.

🎁 Регистрация участников до 20 октября на сайте.
2
🧩 SQL полезный приём

Нужно выбрать из таблицы записи с максимальным или минимальным значением по группе?
Вместо вложенных подзапросов удобно использовать оконные функции.

Пример: найти для каждого пользователя его последний заказ.


WITH ranked AS (
SELECT
user_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders
)
SELECT user_id, order_id, order_date
FROM ranked
WHERE rn = 1;


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

PARTITION BY user_id делит данные по пользователям

ORDER BY order_date DESC сортирует заказы от нового к старому

ROW_NUMBER() присваивает каждой записи номер в рамках группы

WHERE rn = 1 берёт только последний заказ для каждого пользователя

💡 Такой подход легко адаптируется: можно выбирать первый/последний элемент в группе, топ-N значений или фильтровать дубликаты.

@sqlhub
12👍10🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 no-code база данных, которая сама превращает SQL в Airtable-стиль интерфейс

Что умеет:
- Подключается к MySQL, Postgres, SQLite, MSSQL и сразу показывает данные в виде удобных таблиц
- Делает представления: таблицы, календари, канбан, формы, Гантт
- Генерирует готовые REST и GraphQL API прямо поверх базы
- Делится видами: публично или под паролем, поддерживает загрузку файлов и картинок
- Настраивает роли и доступ до уровня отдельного столбца

Плюс интеграции со Slack, Discord, мессенджерами, почтой и десятками сервисов.

По сути — Airtable, но напрямую поверх твоей базы.

https://github.com/nocodb/nocodb
6👍1🔥1🤔1
🔍 Marker — инструмент от Datalab.to, который быстро и точно превращает документы в Markdown + JSON

Что умеет Marker:
- Поддержка PDF, изображений, PPTX, DOCX, XLSX, HTML, EPUB и др.
- Форматирует таблицы, формы, уравнения, математические выражения, ссылки, кодовые блоки.
- Извлекает изображения из документов.
- Убирает колонтитулы, заголовки, другие артефакты форматирования.
- Есть бета-версия для “структурированного извлечения” на основе схемы JSON.
- Можно включить LLM-модуль, чтобы повысить точность в сложных местах (например, объединение таблиц, корректное форматирование).

Преимущества:
- Быстрота + точность по сравнению с конкурентами (Mathpix, Llamaparse и др.).
- Работает и без LLM, но с флагом --use_llm становится ещё лучше.
- Можно запускать локально, на серверах, GPU / CPU, использовать параллельную обработку.

Ограничения и нюансы:
- Сложные макеты и вложенные таблицы / формы ещё не всегда обрабатываются идеально.
- Иногда требуется OCR, особенно если PDF плохо “разложен” на текст.

Кому полезно:
- Тем, кто работает с научными статьями, отчётами, бухгалтерскими документами, презентациями и хочет автоматизировать преобразование в читаемый формат.
- Для RAG-pipelines, документации и любых задач, где надо извлечь структуру и контент.

https://github.com/datalab-to/marker
9🔥1
⚡️ Pytest совет: экономим время на тестах с большими данными

Если в тестах используется тяжёлый датасет, важно правильно выбрать scope для фикстуры.

По умолчанию (`scope="function"`) данные будут загружаться заново для каждого теста. Это тратит ресурсы и замедляет выполнение.

С scope="session" датасет загружается один раз и переиспользуется во всех тестах. Это ускоряет процесс и снижает нагрузку.

Используйте session scope для больших и неизменяемых данных, чтобы тесты работали быстрее и стабильнее.
🔥10👍31
🖥 pg_flo — библиотека для работы с PostgreSQL, которая упрощает создание и выполнение потоковых операций в базе данных! Она также предоставляет удобный интерфейс для выполнения операций с данными, что может быть полезно для задач, требующих последовательной обработки данных.

🔐 Лицензия: Apache-2.0

🖥 Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥54
🚀 Современный ORM и генератор SQL для C++20

sqlgen — это типобезопасный ORM и генератор SQL, вдохновленный SQLAlchemy и Diesel. Он обеспечивает компоновку запросов с проверкой типов на этапе компиляции и защитой от SQL-инъекций, что делает его идеальным для создания надежных ETL-пайплайнов.

🚀Основные моменты:
- 🔒 Компиляция с проверкой схем таблиц и запросов
- 🛡️ Защита от SQL-инъекций с параметризованными запросами
- 🔄 Удобный интерфейс для составления сложных запросов
- 🚀 Высокая производительность с пакетными операциями
- 📦 Поддержка PostgreSQL и SQLite

📌 GitHub: https://github.com/getml/sqlgen

#cpp
4
🚀 Удобный инструмент для миграции схем PostgreSQL

pgschema — это CLI утилита, которая упрощает процесс миграции схем в PostgreSQL, используя декларативный подход, похожий на Terraform. Она позволяет создавать, редактировать и применять изменения к схемам, обеспечивая контроль над миграциями без необходимости в дополнительных таблицах.

🚀 Основные моменты:
- Декларативное управление схемами PostgreSQL
- Поддержка всех основных объектов и версий PostgreSQL
- Генерация плана миграции с предварительным просмотром изменений
- Прямое взаимодействие с файлами схем и базой данных без временных БД

📌 GitHub: https://github.com/pgschema/pgschema

#go
5👍4🔥1
Для многих разработчиков моменты, когда они пишут код не по работе, а для профессионального вызова, становятся ключевыми в их росте. Именно таким вызовом может стать Yandex Cup 2025 — чемпионат, где встречаются сильнейшие разработчики, и один из треков которого посвящён машинному обучению.

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

Участие — способ не просто проверить свои навыки, но и заявить о себе в профессиональном сообществе. Лучшие участники получают приглашения на упрощённый отбор в команды Яндекса.


Финал пройдёт в Стамбуле, призовой фонд — 12 млн ₽.

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

💡 yandex.ru/cup/2025
5👍1👎1🔥1
🪄 Открытая альтернатива Firebase — на стероидах PostgreSQL

Платформа, которая даёт всё, чтобы собрать современное веб-, мобильное или AI-приложение — без проприетарных SDK и боли.

Что внутри:
⚙️ Хостинг Postgres с realtime-синхронизацией
🧩 Автогенерация REST и GraphQL API
🔐 Аутентификация и авторизация через JWT
Edge-функции и серверные триггеры
📦 Хранилище файлов с поддержкой S3
🧠 AI-инструменты: векторные индексы, эмбеддинги, семантический поиск
🪶 Всё open source и доступно для self-host.

По сути это Firebase-опыт, но построенный на «взрослых» open-source технологиях:
PostgreSQL, Elixir, GoTrue, PostgREST, pg_graphql.

Платформа, где можно запустить идею, вырастить продукт и не упереться в чьи-то закрытые лимиты.
#Postgres #OpenSource #Backend #AI #GraphQL #Realtime #FirebaseAlternative

https://github.com/supabase/supabase
5👍2👎2🔥2
⚡️ Вышел pgbalancer 1.0 - интеллектуальный балансировщик нагрузки для PostgreSQL

Представлен первый стабильный релиз pgbalancer 1.0 — балансировщика нагрузки для PostgreSQL, построенного на основе pgpool-II с существенными доработками.

Проект позиционируется как решение с элементами адаптивной маршрутизации запросов, управляемое через REST API и поддерживающее MQTT для потоковой передачи событий в реальном времени.

Ключевые особенности:
• Управление пулом соединений и распределение нагрузки между репликами PostgreSQL;
•Поддержка HTTP/REST для конфигурации и мониторинга;
• Интеграция с MQTT для стриминга метрик и событий;
• Реализация на языке C с сохранением производительности оригинального pgpool-II;
• Распространяется под открытой лицензией PostgreSQL.

https://www.pgelephant.com/pgbalancer
👍94👎2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Не пропустите! 05 ноября в 20:00 пройдет бесплатный урок по теме “PostgreSQL для администраторов и разработчиков” по теме “Работа с json в PostgreSQL: давно не просто текст.” Запись: https://otus.pw/9EAE/


JSON в PostgreSQL — это не временное хак-решение, это инструмент, который меняет подход к хранению данных. Он позволяет хранить гибкие, меняющиеся структуры прямо в таблице и при этом использовать мощь SQL: фильтрацию, индексы и транзакции. 

На уроке вы увидите, как использовать JSON/JSONB так, чтобы не терять скорость и предсказуемость, но объединять удобство JSON-формата с производительностью и гарантиями PostgreSQL. 

Рассмотрим:
 - работу с типами данных JSON и JSONB в PostgreSQL.
 - изучим операторы и функции для работы с JSON-документами.  - определим применение индексов и функций для повышения производительности при работе с JSONB. 

Какие результаты на выходе: 
- научитесь выбирать между реляционной моделью и использованием JSON в конкретном кейсе;
 - получите готовые примеры и шаблоны запросов для использования в проектах. 
Записывайтесь на вебинар и получит спец. предложение на обучение:
https://otus.pw/9EAE/?erid=2W5zFGUaPy2


Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
👍21
🤖 Авито готовит к запуску собственного ИИ-ассистента «Ави»

Технологическая платформа Авито подала заявку на регистрацию товарного знака для своего интеллектуального ассистента — «Ави», сообщает «Коммерсант».

🧩 Что умеет
«Ави» построен на базе большой языковой модели и умеет вести живой диалог с пользователем. Он не просто отвечает на вопросы — ассистент помогает разобраться в деталях покупки, уточняет цели и критерии выбора, советует подходящие предложения и объясняет различия между ними. Фактически, это персональный консультант внутри платформы, который знает рынок лучше любого менеджера.

💡 Почему это важно
Крупные компании одна за другой внедряют собственные ИИ-решения — это уже не эксперимент, а стратегия. Такие ассистенты позволяют:
• собирать контекст из разговоров с пользователями,
• повышать вовлеченность и лояльность,
• увеличивать продажи.

Эксперты оценивают вложения в проект примерно в 500 млн рублей. Но для Авито эти траты — часть планомерного развития: компания уже заявляла о планах инвестировать в развитие генеративного ИИ около 12 млрд рублей и к 2028 году заработать более 21 млрд на новых технологиях.

Собственные модели компании уже можно оценить в деле — Авито выпустила две нейросети:

• A-Vibe — текстовая LLM,
• A-Vision — мультимодальная модель, работающая с текстом и изображениями.

Их успех говорит сам за себя: A-Vibe за первую неделю собрала 1400+ скачиваний и попала в топ трендовых моделей на Hugging Face.

🚀 Что дальше
Сейчас «Ави» проходит тесты в разных категориях площадки. В планах — уже в следующем году запустить универсальную версию, которая сможет работать во всех вертикалях Авито.
4👎4👍1🥰1
🖥 Полный гайд: защита от SQL-инъекций для разработчиков

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

В этом материале — полный практический разбор:
как именно происходят SQL-инъекции, какие ошибки разработчиков к ним приводят, как их распознать в коде и главное — как защититься.

Разберём реальные примеры на Python, PHP и Go, посмотрим, как атакующий «взламывает» запрос, и научимся писать безопасный код с параметризованными запросами и ORM.

Это не теория, а руководство, которое поможет понять уязвимость изнутри и навсегда закрыть её в своих проектах.

👉 Читать гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥1
Media is too big
VIEW IN TELEGRAM
🖥 Шардирование в базах данных: обзор концепции

Шардирование или шардинг - это принцип проектирования базы данных, при котором данные разбиваются на части и размещаются на разных шардах.

Интерактивный лонгрид по шардированию баз данных.

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

Отличный материал, чтобы прокачать понимание распределённых БД на выходных 💡

Статья: https://planetscale.com/blog/database-sharding

Видео: https://www.youtube.com/watch?v=R2ML2jLs3_U
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122🥰1