🐍 Библиотека для управления очередями сообщений
PGMQ - новая библиотека для облегченной обработки очереди сообщений для PostgreSQL в Python. Она отличается простотой и гибкостью системы очередей одновременно с надежностью и масштабируемостью баз данных.
Основные особенности:
- Гибкость. Поддержка различных конфигураций и расширений для индивидуальной настройки
- Надежность. Гарантированная единоразовая доставка сообщений в течении тайм-аута видимости
- Компактность. Только функции Postgres упакованные в расширение, никаких фоновых процессов или внешних зависимостей
- API-паритет с AWS SQS и RSMQ
Установка:
Самый легкий способ - запустить Tembo Docker, где PGMQ предустановлен в Postgres
▪ GitHub
#python #PostgreSQL #pgmq #MessageQueues
@pythonl
PGMQ - новая библиотека для облегченной обработки очереди сообщений для PostgreSQL в Python. Она отличается простотой и гибкостью системы очередей одновременно с надежностью и масштабируемостью баз данных.
Основные особенности:
- Гибкость. Поддержка различных конфигураций и расширений для индивидуальной настройки
- Надежность. Гарантированная единоразовая доставка сообщений в течении тайм-аута видимости
- Компактность. Только функции Postgres упакованные в расширение, никаких фоновых процессов или внешних зависимостей
- API-паритет с AWS SQS и RSMQ
Установка:
Самый легкий способ - запустить Tembo Docker, где PGMQ предустановлен в Postgres
docker run -d --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 quay.io/tembo/pg16-pgmq:latest▪ GitHub
#python #PostgreSQL #pgmq #MessageQueues
@pythonl
👍13🔥5❤3😢1
py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.
📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- ⚡ Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}
💡 Примеры установки:
pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу
🔧 Пример (SQLAlchemy)
python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None
py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.
Полноценный PostgreSQL — без его тяжеловесности.
▪Github
@pythonl
#python #sql #PostgreSQL #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤10👍7🤩1
⚡️ QueryTuner - open-source инструмент, который разбирает SQL-запрос и показывает, почему он может тормозить.
Подключаться к базе вообще не обязательно. Можно просто вставить SQL и получить диагностику.
Поддерживаются сразу 5 диалектов:
- PostgreSQL
- MySQL
- Oracle
- SQL Server
- SQLite
Внутри два уровня анализа.
1. Детерминированный heuristic engine
Он мгновенно ищет типичные anti-patterns:
-
- функции внутри
- leading wildcard в
- потенциально отсутствующие индексы
-
- другие проблемы производительности
Сейчас заявлено 12 правил, и для них не нужны ни LLM, ни внешний API.
2. Опциональный AI-слой
Можно подключить Qwen через Hugging Face или OpenAI. Тогда QueryTuner умеет:
- объяснять проблему человеческим языком;
- переписывать запрос;
- предлагать
- объяснять, зачем конкретный индекс нужен.
Особенно интересно, что можно передать ещё и
Например, для такого запроса:
Хороший проект для тех случаев, когда SQL уже работает, но хочется понять, почему через полгода он начнёт работать плохо.
#SQL #PostgreSQL #Database #OpenSource #DataEngineering
https://github.com/AutoShiftOps/querytuner
Подключаться к базе вообще не обязательно. Можно просто вставить SQL и получить диагностику.
Поддерживаются сразу 5 диалектов:
- PostgreSQL
- MySQL
- Oracle
- SQL Server
- SQLite
Внутри два уровня анализа.
1. Детерминированный heuristic engine
Он мгновенно ищет типичные anti-patterns:
-
SELECT *- функции внутри
WHERE- leading wildcard в
LIKE- потенциально отсутствующие индексы
-
ORDER BY без ограничения результата- другие проблемы производительности
Сейчас заявлено 12 правил, и для них не нужны ни LLM, ни внешний API.
2. Опциональный AI-слой
Можно подключить Qwen через Hugging Face или OpenAI. Тогда QueryTuner умеет:
- объяснять проблему человеческим языком;
- переписывать запрос;
- предлагать
CREATE INDEX;- объяснять, зачем конкретный индекс нужен.
Особенно интересно, что можно передать ещё и
CREATE TABLE DDL. Тогда рекомендации становятся schema-aware: инструмент видит реальные таблицы, колонки и существующие индексы. Например, для такого запроса:
SELECT *
FROM orders
WHERE YEAR(created_at) = 2026;
Хороший проект для тех случаев, когда SQL уже работает, но хочется понять, почему через полгода он начнёт работать плохо.
#SQL #PostgreSQL #Database #OpenSource #DataEngineering
https://github.com/AutoShiftOps/querytuner
👍9❤2😢1