Data Science. SQL hub – Telegram
Data Science. SQL hub
36K subscribers
977 photos
59 videos
37 files
1.02K links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
🌊 ETL на стероидах: стриминг данных Postgres в реальном времени на Rust 🦀

Supabase выкатили интересный open-source фреймворк - supabase/etl, который позволяет стримить данные из Postgres куда угодно в реальном времени.

Это набор простых, модульных Rust-блоков, из которых можно собрать собственный конвейер Change Data Capture (CDC). Вы получаете полный контроль над тем, как обрабатывать изменения в базе и куда их отправлять — без тяжёлых платформ и сложных конфигов.

Что делает этот фреймворк полезным:

- Прямой стриминг изменений из Postgres (CDC)
- Rust — значит скорость, надёжность и низкие накладные расходы
- Гибкие компоненты: можно строить свои конвейеры под любые нужды
- Подходит для интеграций, аналитики, событийных систем, real-time обновлений
- Легче и прозрачнее, чем классические ETL/ELT-платформы

По сути, это конструктор, из которого можно быстро собрать real-time data pipeline:
достал изменения из Postgres → преобразовал → отправил в Kafka, ClickHouse, S3, API — куда угодно.

Если вы работаете с потоковыми данными, аналитикой или микросервисами - стоит попробовать. Rust + CDC - это мощное сочетание для стабильных и быстрых пайплайнов.

https://github.com/supabase/etl
👍8🔥43
AI VK рассказали, какой ML нужен, чтобы обрабатывать десятки миллиардов рекламных объявлений в режиме реального времени. Всё это завязано на единой Discovery-платформе, работающей как инфраструктурный слой для рекламы, рекомендаций и поиска.
9👏7🔥6👎2👍1
Как правильно оптимизировать SQL в бэкенде, чтобы запросы работали быстрее, снижали задержки и не создавали узких мест в системе.

→ Некачественно написанный SQL приводит к высоким задержкам, росту нагрузки на CPU и проблемам в нагруженных сервисах.

Основные принципы оптимизации:

✓ 1. Анализ планов выполнения
Он подчёркивает необходимость использовать EXPLAIN / EXPLAIN ANALYZE, чтобы увидеть, как база реально исполняет запрос: где происходят полные сканирования таблиц, плохие джоины или отсутствуют индексы.

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

✓ 3. Отказ от SELECT *
Он настаивает на выборе только нужных столбцов — это снижает трафик и ускоряет выполнение.

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

✓ 5. Грамотные WHERE-фильтры
Фильтровать данные как можно раньше, использовать индексируемые колонки и избегать функций в WHERE, которые «ломают» индексы.

✓ 6. Ограничение числа строк
Использовать LIMIT / OFFSET и постраничный вывод, а не отдавать пользователю огромные выборки.

✓ 7. Избежание проблемы N+1
Фетчить связанные данные заранее через JOIN или батч-запросы.

✓ 8. Кэширование
Он предлагает кэшировать частые запросы с помощью Redis или Memcached, чтобы уменьшить нагрузку на базу.

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

✓ 10. Оптимизация вставок и обновлений
Использовать bulk insert, проверять необходимость обновлений.

✓ 11. Партиционирование таблиц
Он предлагает разбивать большие таблицы по дате или региону, что особенно полезно для логов и аналитики.

Эти рекомендации помогают backend-разработчикам строить более быстрые, масштабируемые и надёжные системы.
14👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🚨 SQL Никогда НЕ ДЕЛАЙ ТАК #sql

НИКОГДА НЕ ЛОМАЙ ИНДЕКСЫ ФУНКЦИЯМИ: не оборачивай индексируемые поля в функции внутри WHERE.

Как только ты пишешь LOWER(), CAST(), COALESCE() или любые вычисления по колонке — индекс перестаёт работать, и запрос падает в полное сканирование таблицы.

Это одна из самых тихих причин, почему запросы внезапно превращаются в тормоза.

Вместо этого приводи значения заранее или используй функциональные индексы.


Плохо: индекс по email НЕ используется
SELECT *
FROM users
WHERE LOWER(email) = 'user@example.com';

-- Хорошо: нормализуем значение заранее
SELECT *
FROM users
WHERE email = 'user@example.com';

-- Или создаём функциональный индекс (PostgreSQL)
CREATE INDEX idx_users_email_lower ON users (LOWER(email));
👍188🔥5
На AI Journey презентовали крупнейший open-source проект в Европе: Сбер открыл доступ к своим флагманским моделям - GigaChat Ultra-Preview и Lightning, а также новое поколение открытых моделей GigaAM-v3 для распознавания речи, все модели генерации изображений и видео новой линейки Kandinsky 5.0 — Video Pro, Video Lite и Image Lite.

GigaChat Ultra-Preview, новая MoE-модель, 702 миллиарда параметров, собранная под русский язык и натренированная полностью с нуля. Читайте подробный пост от команды.

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

Флагманская модель Kandinsky Video Pro сравнялась с Veo 3 по визуальному качеству и обогнала Wan 2.2-A14B. Читайте подробный пост от команды.

Код и веса всех моделей теперь доступны всем пользователям по лицензии MIT, в том числе для использования в коммерческих целях.
7😁4
🖥 Вышли новые релизы для тех, кто использует PostgreSQL в окружениях с несколькими СУБД.

IvorySQL 5.0
Свежий релиз проекта, который развивает редакцию PostgreSQL с целью обеспечить максимальную совместимость с Oracle.

Ключевые особенности:
- работает как почти полная замена стандартного PostgreSQL
- добавлена настройка compatible_db, включающая режим совместимости с Oracle
- подходит для приложений, изначально написанных под Oracle
- код на C
- лицензия Apache 2.0

IvorySQL позиционируется как прозрачный переходный слой между экосистемами PostgreSQL и Oracle.

Источник
postgresql точка org слеш about слеш news слеш ivorysql 50 released major oracle compatibility expansion on postgresql 180 foundation 3180

https://www.postgresql.org/about/news/ivorysql-50-released-major-oracle-compatibility-expansion-on-postgresql-180-foundation-3180/
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3👍2
3 вида шардирования баз данных:

Range-based — разбивает данные по диапазонам значений ключа
Hash-based — выбирает шарду с помощью хеш-функции
Tenant-based — каждому клиенту (тенанту) выделяется своя отдельная база

Пояснения:

Range-based sharding делит данные по диапазонам ключа (например: ID 1–1 000 — первая шарда, 1 001–2 000 — вторая).

Hash-based sharding использует хеш от ключа, чтобы определить, в какую шарду поместить или откуда прочитать запись. Это даёт более равномерное распределение.

Tenant-based sharding выделяет каждому клиенту собственную базу данных, что упрощает изоляцию, миграции и управление данными.

Просто, понятно и работает во всех масштабах.
14🔥7👍4
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;
👍103🔥3😁2
🖥 Что нового для разработчиков в 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😁3🔥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
👍2🥰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/