Data Science. SQL hub
35.9K subscribers
988 photos
62 videos
37 files
1.03K links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 SQL разбор ошибок

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

Особенно опасно - JOIN без условий: это создаёт декартово произведение и может положить базу.

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



SELECT *
FROM users
JOIN orders
-- Ошибка: отсутствует ON, создаётся декартово произведение
LIMIT 100;

-- Правильно:
SELECT u.id, o.id
FROM users u
JOIN orders o ON o.user_id = u.id
LIMIT 100;
👍13🔥43😁3
🖥 Что нового для разработчиков в Oracle AI Database 23.26.0

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

🔹 Главное обновление

- Появилась SQL клауза QUALIFY. Теперь можно фильтровать результаты оконных функций напрямую, без вложенных подзапросов. Упрощает сложные аналитические выборки.

- Добавлена функция GRAPHQL(). Можно выполнять запросы к базе в синтаксисе GraphQL и получать JSON ответ. Полезно для API сервисов и современных приложений.

- В MLE JavaScript теперь поддерживаются SQL объекты и коллекции. Это позволяет возвращать и принимать пользовательские типы прямо из JS функций.

- Для PL SQL пакетов появилось ключевое слово RESETTABLE. Обновление пакета больше не вызывает ORA 04068, что делает деплой безопаснее.

📈 Зачем это нужно

Обновление делает Oracle удобнее для разработчиков, особенно если вы строите API, используете аналитику, комбинируете SQL и JavaScript или разрабатываете приложения с AI и ML нагрузкой.

https://www.geraldonit.com/whats-new-for-developers-in-oracle-ai-database-23-26-0/

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥5
🖥 Выбор NoSQL базы данных в бэкенд-разработке

✓ Введение
Правильный выбор NoSQL базы критически важен для построения масштабируемых и гибких backend-систем.
NoSQL решает задачи, где классические SQL-базы ограничивают: работа с неструктурированными данными, огромные объёмы информации и экстремальные нагрузки.

✓ 1. Когда выбирать NoSQL
- Когда данные неструктурированные или полуструктурированные
- Когда нужна горизонтальная масштабируемость
- Когда важна высокая скорость чтения и записи
- Когда строгие схемы SQL тормозят разработку

✓ 2. Типы NoSQL баз данных и где их применять

• Документные базы (MongoDB, CouchDB)
- Идеальны для JSON-подобных документов
- Гибкие схемы
- Подходят для CMS, профилей пользователей, каталогов товаров

• Key-Value хранилища (Redis, DynamoDB)
- Максимальная скорость операций
- Отличны для кэша, хранения сессий, лидербордов
- Для простых структур данных и быстрых lookup-запросов

• Колонковые базы (Cassandra, HBase)
- Оптимизированы под огромные объёмы записей
- Используются в аналитике, IoT, потоках событий
- Масштабируются горизонтально практически бесконечно

• Графовые базы (Neo4j, JanusGraph)
- Созданы для данных со сложными взаимосвязями
- Подходят для соцсетей, рекомендаций, antifraud-систем

✓ 3. Как выбрать NoSQL базу
- Тип данных: документы, ключ-значение, графы, wide-columns
- Требования к масштабированию
- Паттерны запросов: lookup, обход графов, агрегации
- Баланс между консистентностью и доступностью (CAP)
- Готовые интеграции, драйверы, инструменты
- Нагрузка на чтение и запись
- Сложность настройки и поддержки

✓ 4. Сильные стороны NoSQL
- Масштабирование “вширь”
- Гибкость схем
- Высокая доступность
- Поддержка огромных массивов данных

✓ 5. Ограничения NoSQL
- Иногда более слабая консистентность
- Ограниченные возможности сложных запросов
- Нет строгих отношений как в SQL
- Порог вхождения для SQL-разработчиков

→ Хочешь глубже разобраться?
В *Backend Development with Projects Ebook* разберёшь, как выбирать, проектировать и интегрировать NoSQL в реальных проектах.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74😁4👎1🔥1
🐘 Открыт прием заявок на выступления для специалистов по PostgreSQL

Мероприятие: PG BootCamp Russia — официальное российское комьюнити-мероприятие PostgreSQL
Когда: весна 2026 г. (дата уточняется)
Где: г. Москва
Больше о мероприятиях PG BootCamp

В отличие от коммерческих конференций, предметом докладов выступает «ванильная» версия этой СУБД. Темы выступлений, связанные с коммерческими продуктами, не принимаются. Доклады (их обычно до 16 в два трека) делятся по темам разработки и эксплуатации. Формат предполагает камерную атмосферу, максимальную практическую пользу и содержательное профессиональное общение.

Открыт прием заявок на выступления:
🔹Исследование внутренней архитектуры PostgreSQL
🔹 Оптимизация производительности в высоконагруженных системах
🔹Анализ сложных задач и методов их решения
🔹 Инструменты и методологии для DBA
🔹 R&D-исследования, связанные с Postgres


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

🎙Подать заявку на выступление
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🥰1
📌 Durable Execution Engine на SQLite:

• Durable Execution (DE) - это подход, который позволяет выполнять длинные многошаговые процессы так, чтобы после сбоя можно было продолжить с последнего успешного шага, а не запускать всё заново.

• В статье показан простой Proof of Concept - Persistasaurus: лёгкий DE-движок на Java, который использует SQLite как хранилище состояния.

• Потоки (flows) пишутся как обычный Java-код: методы помечаются аннотациями @Flow и @Step, а их прогресс автоматически сохраняется. Если процесс падает, можно безопасно перезапустить его без повторного выполнения шагов.

• Идея не новая, но современная Java + SQLite позволяют сделать удивительно компактное и понятное решение без тяжёлой инфраструктуры.

Почему это полезно:

• Упрощает работу с долгоживущими процессами
• Избавляет от повторных вычислений и экономит ресурсы
• Подходит для прототипов, внутренних сервисов и задач средней сложности

Что учитывать:

• Это только прототип - для реальных больших систем нужно масштабирование, отказоустойчивость, параллелизм и дополнительные инструменты
• SQLite отлично подходит для простых сценариев, но не для высоконагруженных распределённых систем

🔗 Читаем тут: morling.dev/blog/building-durable-execution-engine-with-sqlite/
4👍3🔥2
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?

Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.

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

Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.

🎁 48 часов действует скидка в 40% процентов

👉 Начать учиться на Stepik
5👍3👎2🔥2
🖥 SQL большой гайд. Как правильно выбрать ORM

Эта статья - не про «как написать SELECT, а про настоящую инженерную работу: принципы нормализации, дизайн схем, практики оптимизации SQL, работа с транзакциями, и главное - как выбрать и использовать ORM так, чтобы он помогал, а не мешал.

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

Готовы? Тогда начинаем строить архитектуру, которую не стыдно масштабировать.

https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51🔥1
Только в декабре: скидка 10 % на курсы и программы в IT от НИУ ВШЭ

Центр непрерывного образования факультета компьютерных наук НИУ ВШЭ предлагает всем, кто готов начать новый год с погружения в IT-индустрию, скидку 10% на курсы и программы.

Профессии:
🟣Специалист по Data Science: старт — 11 февраля, продолжительность — 1.5 года.
🟣Аналитик данных: старт — 25 февраля, продолжительность — 1 год.
🟣Дата-инженер: старт — март-апрель 2026 год, продолжительность — 1 год.

Очные курсы:
🟣Алгоритмы и структуры данных: старт — 12 января, продолжительность — 10 занятий.
🟣SQL для анализа данных: старт — 14 января, продолжительность — 10 недель.
🟣Прикладная статистика для машинного обучения: старт — 17 января, продолжительность — 10 недель.
🟣Машинное обучение: старт — 9 февраля, продолжительность — 14 недель.
🟣Глубинное обучение: старт — 19 марта, продолжительность — 10 недель.
🟣Математика для анализа данных: старт — 2 апреля, продолжительность — 21 занятие.
🟣BI-аналитика и визуализация данных: старт — 20 мая, продолжительность — 7 недель.

Онлайн-курсы:
🟣Промпт-инжиниринг: нейросети для человека: старт — 30 января, продолжительность — 6 недель.
🟣Python для автоматизации и анализа данных: старт — 3 февраля, продолжительность — 9 недель.
🟣SQL для начинающих: старт — 16 февраля, продолжительность — 2 месяца.
🟣Аналитика в Business Intelligence: старт — 17 февраля, продолжительность — 1 месяц.
🟣LLM: создание и интеграция интеллектуальных ассистентов: старт — 23 марта, продолжительность — 13 недель.
🟣GameDev: разработчик игр: старт — 30 марта, продолжительность — 5 месяцев.
🟣Искусственный интеллект в образовании: старт — 6 апреля, продолжительность — 1 месяц.
🟣Искусственный интеллект для руководителей: старт — 20 апреля.
🟣Frontend-разработчик: старт — апрель 2026 года, продолжительность — 4 месяца.


Скидка действует при подаче заявки до 31 декабря.

⚡️ Узнать подробнее о каждой программе

НИУ "ВШЭ". ИНН 7714030726. erid:2SDnje4QSab
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3😁1
🕒 Расширенный планировщик задач для PostgreSQL

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

🚀 Основные моменты:
- Полностью управляемая конфигурация через базу данных
- Поддержка YAML для удобного определения цепочек задач
- Возможность передачи параметров и автоматического повторения задач
- Встроенные задачи, такие как отправка email и импорт файлов
- Расширенные возможности планирования по типу cron

📌 GitHub: https://github.com/cybertec-postgresql/pg_timetable

@sqlhub
👍72🔥2
👍103🔥2
🔍 Быстрый клиент PostgreSQL для разработчиков

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

🚀Основные моменты:
- Мгновенный запуск за 2 секунды
- Редактор запросов с подсветкой синтаксиса
- Поддержка темного и светлого режимов
- Безопасное хранение учетных данных
- Анализ производительности запросов

📌 GitHub: https://github.com/Rohithgilla12/data-peek
👍62
This media is not supported in your browser
VIEW IN TELEGRAM
Данные — сырьё для гипотез. А без гипотез не получится успешный продукт.

В VK аналитики помогают продуктам говорить на языке пользователей. Узнайте, как принципы помогают VK превращать гипотезы в фичи и чем гордятся команды. Переходите по ссылке — вдохновляйтесь и присоединяйтесь.
📘 На Stepik вышел курс — «SQL для технических собеседований»

Теряете офферы на SQL-секции? Знаете синтаксис, но теряетесь на лайвкодинге? Этот курс — прямой путь к прохождению технических интервью.

• Базовый SQL: SELECT, WHERE, JOIN — база для любого собеседования
• Агрегация: GROUP BY, HAVING — закрываем 80% задач на интервью
• Подзапросы, CTE, рекурсии — то, что спрашивают на Middle+
• Оконные функции: ROW_NUMBER, RANK, LAG/LEAD — любимая тема интервьюеров
• Оптимизация: индексы, план выполнения — отличает сильных кандидатов
• Лайвкодинг: как думать вслух и не зависать под давлением

70+ задач из реальных собеседований в Яндексе, Тинькофф, FAANG

Финальный тест — 15 реальных задач за 60 минут

Подходит разработчикам, аналитикам, тестировщикам, DevOps

🎓 Сертификат для резюме и LinkedIn
🚀 Скидка 25%, действует 48 часов

Старт потока 24 декабря

👉 Пройти курс
👎19
SQLite-Vec — крошечная и портативная vectorDB на базе SQLite

SQLite-Vec — это сверхлёгкая и очень быстрая векторная база данных, встроенная прямо в SQLite. Идеальный вариант для on-device RAG, edge-приложений и локальных AI-сценариев без тяжёлой инфраструктуры.

Почему это интересно:
- Работает поверх обычного SQLite
- Минимальный оверхед и высокая скорость
- Отлично подходит для локального поиска по эмбеддингам

Ключевые возможности:
- Matryoshka embedding slicing — работа с усечёнными эмбеддингами
- До 32x экономии места за счёт бинарной квантизации
- Поддержка метрик L2, cosine и Hamming distance
- SQL-запросы для vector search без отдельной vectorDB

По сути, это vector search без Kubernetes, без сервисов и без боли — просто SQLite с суперспособностями.

Отличный выбор для:
- локальных RAG-агентов
- десктопных AI-приложений
- embedded-систем
- офлайн-поиска по знаниям
👍51🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Оптимизация запросов с индексами

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


CREATE INDEX idx_customer_lastname ON customers(last_name);

SELECT * FROM customers
WHERE last_name = 'Smith'
ORDER BY first_name;

SELECT COUNT(*) FROM orders
WHERE customer_id IN (SELECT id FROM customers WHERE last_name = 'Smith');
Please open Telegram to view this post
VIEW IN TELEGRAM
👍97🔥4
Microsoft запустила VibeVoice Realtime на Hugging Face - лёгкую стриминговую text-to-speech модель, которая начинает озвучивать текст примерно за 300 миллисекунд.

Идеально для живых данных и разговоров с LLM.

huggingface.co/microsoft/VibeVoice-Realtime-0.5B
5👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
🛠 SQL всему голова! 24 декабря в 20:00 на бесплатном уроке поговорим про PostgreSQL FDW: швейцарский нож для интеграций или как я перестал бояться разнородных данных. Будет интересно!

🔭 Разберем Foreign Data Wrappers — встроенную возможность PostgreSQL подключаться к любым внешним источникам данных. Научитесь делать JOIN между MySQL, MongoDB, Redis и даже CSV-файлами в одном SQL-запросе.

📚 Что будет на уроке:

Live demo с 4 БД одновременно: подключим MySQL, MongoDB, Redis и CSV-файл к Postgres, сделаем JOIN в одном запросе
Реальный кейс миграции: как перенести данные с MySQL на Postgres без остановки приложения через postgres_fdw
Production tips: производительность FDW, кэширование, когда использовать, а когда это overkill и лучше ETL

🚩 Приходите узнать, как PostgreSQL превращается в универсальный хаб для всех ваших данных: покажем JOIN таблиц из MySQL и MongoDB в одном запросе, миграцию без downtime и почему это может заменить половину ваших ETL-процессов.

👉 Успейте записаться на бесплатный вебинар: https://otus.pw/az47/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍31
🐘 Postgres использует архитектуру «отдельный процесс на каждое подключение», поэтому в большинстве случаев вам нужен connection pooler.

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

1) Session pooling - каждое приложение-подключение закрепляется за одним pooled-соединением.
2) Transaction pooling - каждую транзакцию привязывают к pooled-соединению и освобождают сразу после завершения.
3) Statement pooling - каждое выражение получает соединение, но нет поддержки многозапросных транзакций, что сильно ограничивает кейсы.

Режим 1 плохо решает проблемы высокой конкуренции Postgres, поэтому обычно не подходит при большом числе подключений. Режим 3 слишком ограничивающий, так как многозапросные транзакции нужны многим приложениям. В итоге режим 2 даёт лучший баланс возможностей и контроля над соединениями.

Именно transaction pooling, тот режим, который PlanetScale применяет для всех своих PgBouncer-инстансов.

@sqlhub
👍6🔥42
📦 Распределенная база данных FoundationDB 🚀

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

🚀Основные моменты:
- Поддержка ACID-транзакций для надежности данных.
- Высокая производительность для рабочих нагрузок с частыми записями.
- Гибкая архитектура для масштабирования на кластерах серверов.
- API для взаимодействия на различных языках программирования.

📌 GitHub: https://github.com/apple/foundationdb

@sqlhub