Новая задача по SQL
Всем привет! Очередная задача с моего Телеграм канала про SQL и базы данных!
FastStream: современный асинхронный Python фреймворк для работы с очередями
Сгоняли с автором на рыбалку: поговорили про FastStream, пожарили мясо, обсудили проблемы разработчиков при работе с очередями / брокерами сообщений.
FastStream – аналог FastAPI, но для работы с событиями в брокерах / очередях.
Пример:
Что делает данный код? Читает сообщения из first-topic, парсит из них поле user типа str, выполняет логику обработки, отправляет новое сообщение в another-topic. Просто? Удобно?
Что нам дает такой код?
- Декларативное описание, чего мы хотим. Не надо руками создавать коннекты и рулить потоком выполнения
- AsyncAPI документацию (аналог OpenAPI в вебе)
- Удобное тестирование
- Кучу других плюшек!
Внутри видео обсудили:
- Детали работы DI фастстрима
- Встроенное Observability
- Open Tracing
- Сообщество фреймворка (тут не будет проблемы "одного автора", сообщество живет!)
- Отличия от Celery: когда брать что?
Репозиторий: https://github.com/ag2ai/faststream
Документация: https://faststream.ag2.ai
Это есть только в MySQL
И MariaDB!
Как можно в команде SELECT при генерации данных в столбцы использовать значения других столбцов, не используя запросы из запросов и CTE.
Значения в некоторые столбцы могут формироваться сложным расчётами или подзапросами. Теперь представь, что при определённом получаемом значении в одном из таких столбцов, значение в соседнем столбце нужно формировать по-другому, или даже своим подзапросом на основании полученного значения в предыдущем столбце. Как реализовать подобное, не прибегая к запросу из получаемой таблицы данных и не используя CTE?
В СУБД MySql и MariaDB есть пользовательские переменные (те, что с собачкой @), которые можно использовать прямо пока выводятся данные командой SELECT, строчка за строчкой. Посмотри (в примере ниже переменная @id_table):
В ПРЕДПОСЛЕДНИЙ(!) столбец формируется значение идентификатора некоторого столика ресторана.
В ПОСЛЕДНИЙ(!) столбец рассчитывается количество свободных мест того столика ресторана, идентификатор которого выведен в предыдущем столбце. В пользовательскую переменную @id_table будет положено некоторое значение, оно же и будет выведено в качестве данных этого столбца. В следующий столбец подзапрос получит данные, опираясь на значение этой переменной. Главное, чтобы эти столбцы формировать в указанном порядке. Сначала столбец, в результате расчёта которого получим значение в переменную, а затем столбец, который будет использовать значение этой переменной. Удобно и легко, да? И эта возможность - лишь верхушка айсберга возможностей использования пользовательских переменных!
В примере выше для каждой строки такой расчёт выводит данные независимо от предыдущей строки, так как в каждой новой строке переменная @id_table получает новое значение и по-новой выполняется подзапрос на основании её значения.
Ещё про пользовательские переменные я писал здесь.
Больше полезного и интересного про SQL и базы данных в моем Телеграм-канале.
Поставьте лайк, если понравилась статья!
Слова имеют смысл и значение
Все что мы говорим, программирует нас.
Попробуй подумать над тем, какую программу в себе ты запускаешь добровольно именуя себя мужиком.
Вышла Roo Code v3.24.0
В этом обновлении:
• Новый UI для управления разрешениями команд терминала
• Поддержка Hugging Face с открытыми моделями
• Сквозные стандарты AI-кодирования для разных инструментов
• Расширенные настройки безопасности терминала
• Улучшенное управление диагностикой
• И многое другое!
---
Интерфейс разрешений команд терминала:
Управлять разрешениями команд терминала теперь проще благодаря новому интерактивному UI:
• Визуальное управление: Просматривайте и управляйте шаблонами команд прямо в чате
• Рекомендации шаблонов: Получайте умные предложения шаблонов на основе вводимых команд
• Переключатели: Легко переключайте шаблоны между разрешёнными и запрещёнными состояниями
---
Поддержка Hugging Face:
Добавлена поддержка Hugging Face как нового провайдера, что открывает доступ к тысячам open source моделей (спасибо TGlide, daniel-lxs!):
• Открытые модели: Получайте доступ к огромной библиотеке моделей сообщества прямо с Hugging Face
• Гибкая интеграция: Используйте модели, размещённые на инфраструктуре Hugging Face
• Простая настройка: Лёгкий процесс подключения нужных моделей и провайдеров
Это обновление открывает Roo Code для всей экосистемы open source AI моделей Hugging Face.
---
Контроль диагностических сообщений:
Новые настройки позволяют управлять количеством диагностических сообщений в контексте:
• Ограничение ошибок и предупреждений: Не допускайте переполнения окна контекста избыточной диагностикой
• Улучшенная производительность: Снижайте торможения, вызванные обработкой большого количества сообщений
• Поддержка легаси-кода: Особенно полезно при работе с проектами, где временно много ошибок на этапе разработки
---
Поддержка стандарта Agent Rules:
Roo Code теперь поддерживает стандарт Agent Rules через файлы AGENTS.md:
• Кросс-инструментальная совместимость: Делитесь правилами на естественном языке между Roo Code, Aider, Cline и другими совместимыми AI-инструментами
---
Полные примечания к релизу:
P.S. Кстати, у меня есть телеграм-канал "ИИ съел мой код", где я делюсь практическими кейсами использования ИИ в разработке, промптами и инструментами, которые реально экономят время. Буду рад видеть коллег!