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
💡 Продвинутый SQL-совет: используйте partial indexes как «селективный ускоритель», но не только для WHERE — ещё и для JOIN-ов.

Большинство разработчиков делают частичные индексы так:
CREATE INDEX idx_active_users ON users(id) WHERE active = true;

Но фишка в том, что partial index может радикально ускорить запросы, где фильтр стоит не в WHERE, а «прячется» в JOIN-условии. Оптимизатор всё равно понимает условие и использует индекс.

Например, у вас есть таблица logs, где 95% строк — архив, и только 5% актуальные. Запрос делает join:


SELECT u.id, l.event
FROM users u
JOIN logs l ON l.user_id = u.id AND l.is_archived = false;


Если делать обычный индекс, он будет огромный. Но partial index:


CREATE INDEX idx_logs_active ON logs(user_id)
WHERE is_archived = false;


Теперь:
- индекс в 20–30 раз меньше
- cache hit rate выше
- планы меняются с seq scan на index scan
- JOIN начинает работать почти как в in-memory базе

Прикольно, что работает даже если в SELECT самого условия нет — главное, чтобы оно было в ON.

Это отличный способ ускорять «холодные» большие таблицы, где часто обращаются только к маленькому активному сегменту.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥86
Antares SQL Client

Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).

Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.

https://github.com/antares-sql/antares
6🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PYTHON: ХИТРЫЙ ТРЮК С SQL

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

Удобно, быстро и экономит память. Работает даже с миллионами строк.


import pandas as pd
from sqlalchemy import create_engine

# подключение к базе данных (пример для PostgreSQL)
engine = create_engine("postgresql://user:password@localhost:5432/dbname")

# читаем по 10000 строк за раз
chunk_iter = pd.read_sql("SELECT * FROM big_table", engine, chunksize=10000)

# обработка: сохраняем отфильтрованные строки в файл
with open("filtered_output.csv", "w", encoding="utf-8") as f:
for i, chunk in enumerate(chunk_iter):
filtered = chunk[chunk["amount"] > 1000]
filtered.to_csv(f, index=False, header=(i == 0))


https://www.youtube.com/shorts/y5orXDD2mdU
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥4👍2
⚠️ Расследователи сомневается в AI-сделках Oracle на $300 млрд = и это тревожный сигнал

Сейчас мы видим, как крупнейшие IT-компании (гиперскейлеры) заключают многолетние контракты на искусственный интеллект на сотни миллиардов долларов.

Но никто ещё не проверял, насколько всё это реально окупается. Это - эксперимент на деньгах, технологиях и времени.

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

🧱 Да, AI-бум реален. Но его финансовый фундамент пока как мокрый цемент — выглядит крепко, но легко может просесть.

🎯 Если у Oracle получится - они войдут в список самых влиятельных компаний мира.
Если нет — вся отрасль поймёт, насколько эта гонка на самом деле рискованна и нестабильна.

> 📊 Пузыри не лопаются, когда в них перестают верить.
> Они лопаются, когда кто-то наконец проверяет цифры.

@sqlhub
👍94🔥1
🔥 Подборка полезных ресурсов для программистов.

Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/databases_tg
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
Разработка игр: https://news.1rj.ru/str/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat

💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy
Папка Linux:https://news.1rj.ru/str/addlist/w4Doot-XBG4xNzYy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://news.1rj.ru/str/addlist/BkskQciUW_FhNjEy

Сохрани себе, чтобы не потерять!
📚 Курс, который прокачает твои AI-скиллы в BigQuery

Этот курс учит работать с Gemini прямо внутри BigQuery и закрывает полный набор практических навыков:

- генерация и отладка SQL-запросов с помощью Gemini
- анализ тональности текста
- автоматические суммари и выделение ключевых слов
- генерация эмбеддингов
- построение RAG-пайплайна
- мультимодальный векторный поиск

Если хочешь уверенно использовать AI-инструменты в аналитике и продуктах — этот курс даёт полный набор необходимых умений.

https://www.skills.google/paths/1803/course_templates/1232
5👍3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Узнайте, как строить сложные AI-процессы на AI DevTools Conf

4 декабря команда Cloud.ru проводит практическую конференцию для AI/ML-инженеров, архитекторов, техлидов и всех, кто работает с AI.

В программе доклады и воркшопы, где вы научитесь:
😶‍🌫️собирать AI-агентов

😶‍🌫️управлять уязвимостями

😶‍🌫️внедрять AI-инструменты в разработку

😶‍🌫️тестировать LLM-агентов

😶‍🌫️и не только


А еще можно будет протестировать сервисы для работы с AI&ML, задать вопросы экспертам и остаться на afterparty.

Места на офлайн-участие ограничены, поэтому советуем сразу перейти к регистрации.

Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
2
⚡️ Знакомство с MCP Toolbox for Databases (ранее Gen AI Toolbox for Databases) от Google

Почему стоит обратить внимание
Toolbox - это open-source сервер, который упрощает создание инструментов на базе ИИ, работающих с базами данных. Он берет на себя сложности вроде пулов соединений, аутентификации и телеметрии.

Что даёт:
- Можно интегрировать новые инструменты в агента (или ИИ-ассистента) всего в ~10 строках кода.
- Производительность выше за счёт продвинутого управления соединениями и аутентификацией.
- Безопасность: встроенная авторизация, контроль доступа к данным.
- Полная видимость: метрики и трассировка (OpenTelemetry) сразу «из коробки».
- Возможность общаться с БД на естественном языке, получить код, тесты, индексы — прямо из IDE.

Архитектура в двух словах
Toolbox размещается между вашим приложением (или агентом) и базой данных. Он действует как «контрольная плоскость» — управляет инструментами, хранит и обновляет их, позволяет нескольким агентам и приложениям использовать один и тот же набор инструментов без перекомпиляции.

Быстрый старт:
- Установите сервер (бинарник, контейнер или собрать из исходников).
- Создайте файл tools.yaml и запустите: ./toolbox --tools-file "tools.yaml"
- Используйте SDK (Python, JS/TS, Go) в своём приложении, подключитесь к серверу и загрузите нужный набор инструментов.

Кому это полезно:
Разработчикам приложений, где ИИ-агент делает работу с базами данных: запросы, обновления, анализ схем. Если хотите, могу подготовить мини-таск или пример использования Toolbox с вашим стеком.

https://googleapis.github.io/genai-toolbox/getting-started/introduction/
4👍3
SQLModel — это библиотека для взаимодействия с базами данных SQL из кода Python с использованием объектов Python.

Она интуитивно понятна, проста в использовании, обладает высокой совместимостью и надёжностью.
👍8🔥53
This media is not supported in your browser
VIEW IN TELEGRAM
SQL СОВЕТ

Ловите тяжёлые запросы на ранней стадии через контролируемые анти-джоины.
Когда нужно узнать, какие записи *не имеют* соответствий в другой таблице, разработчики часто используют LEFT JOIN .

Гораздо быстрее использовать NOT EXISTS — он позволяет планировщику остановиться сразу, как только найдено первое совпадение, и эффективно задействует индексы.


select u.user_id
from users u
where not exists (
select 1
from logins l
where l.user_id = u.user_id
and l.created_at >= now() - interval '7 days'
);
👍147🔥7
🌊 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