2844
По всем вопросам- @haarrp @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚
Откуда Вы это взяли? Вы видели описание Set в transact sql?
Читать полностью…
Всем привет, хотел бы задать один вопрос. Я щас обучаюсь в вузе, но уже понимаю, что специальность не для меня и я в целом не хочу заниматься подобным. Недавно искал, чем можно другим заняться и нашел данную специальность, меня это заинтересовало и я захотел попробоватб освоить ее. Так вот, возможно ли самому ее освоить и хоть как-то устроиться в этом деле или нет?
Читать полностью…
📦 Outbox — надёжная реализация outbox-паттерна на Go для микросервисов
Если твои сервисы пишут в базу и одновременно публикуют события в Kafka, RabbitMQ или другие брокеры — знай: без outbox-паттерна ты рискуешь потерять данные.
🔧 Outbox — это лёгкая и удобная библиотека на Go, которая помогает сделать доставку сообщений атомарной и надёжной, без лишней сложности.
🧠 Что она делает:
1. Сохраняет событие в таблицу outbox в рамках транзакции
2. Отдельный воркер читает сообщения и отправляет их в брокер
3. После успешной доставки — сообщение помечается как доставленное
💡 Особенности:
- Поддержка PostgreSQL
- Готовые адаптеры для Kafka и RabbitMQ
- Возможность использовать свой брокер (реализуй интерфейс)
- Поддержка сериализации / форматирования событий
- Использует sqlx и стандартную database/sql
🧩 Подходит для:
- надёжной синхронизации БД ↔ событий
- микросервисов, где важна консистентность
- систем, где нужна повторная доставка без дублей
🔥 Отличный выбор, если ты хочешь atomic-публикацию событий без тяжёлых фреймворков и сервисов.
#Go #OutboxPattern #Kafka #RabbitMQ #Microservices #EventDriven #PostgreSQL
🔗 https://github.com/oagudo/outbox
@sqlhub
🧠 SQL-задача с подвохом: "Невидимые дубликаты"
В таблице users хранятся email-адреса пользователей. Некоторые юзеры регистрируются повторно, маскируя один и тот же email по-разному:| id | name | email |
|----|----------|--------------------------|
| 1 | Alice | alice@example.com |
| 2 | Bob | ALICE@EXAMPLE.COM |
| 3 | Charlie | alice@example.com |
| 4 | Dave | alice+promo@example.com |
| 5 | Eve | a.l.i.c.e@example.com |
🎯 Цель:
Найти количество уникальных пользователей, если:
- Регистр не учитывается (`alice` = `ALICE`)
- Пробелы игнорируются
- Для @gmail.com:
— Убираются точки в имени
— Всё после + отрезается
✅ SQL-решение:
SELECT COUNT(DISTINCT normalized_email) AS unique_users
FROM (
SELECT
CASE
WHEN email ILIKE '%@gmail.com' THEN
REGEXP_REPLACE(
SPLIT_PART(SPLIT_PART(LOWER(TRIM(email)), '+', 1), '@', 1),
'\.', '', 'g'
) || '@gmail.com'
ELSE
LOWER(REPLACE(TRIM(email), ' ', ''))
END AS normalized_email
FROM users
) AS cleaned;
🚀 Как построить ML-пайплайн в Apache Spark: пошаговый гайд
В свежей статье на KDnuggets рассматривается, как с помощью Apache Spark и библиотеки MLlib можно построить масштабируемый пайплайн машинного обучения для задач, таких как прогноз оттока клиентов.
🔧 Компоненты пайплайна:
- Transformers: преобразуют данные (например, StringIndexer, `StandardScaler`)
- Estimators: обучают модели (например, `LogisticRegression`)
- Pipeline: объединяет все шаги в единую последовательность
🧪 Пример:
1. Загрузка и очистка данных
2. Преобразование категориальных признаков
3. Сборка признаков в вектор
4. Масштабирование данных
5. Обучение модели логистической регрессии
6. Оценка качества модели (accuracy, precision, recall, F1)
📌 Ключевые преимущества:
- Высокая скорость обработки больших объемов данных
- Удобная интеграция с Python через PySpark
- Гибкость и масштабируемость для промышленных задач
Полный разбор с кодом и примерами:
👉 https://www.kdnuggets.com/implementing-machine-learning-pipelines-with-apache-spark
То, что уже 2025 год, и актуальная версия 3.50.0 — не считается?
Читать полностью…
🛠️ Что нового в SQLite — свежие обновления и улучшения
🔗 https://www.sqlite.org/changes.html
SQLite — одна из самых популярных встраиваемых баз данных в мире, и каждое обновление приносит не только исправления, но и серьёзные улучшения производительности и безопасности.
Вот ключевые изменения из последних версий:
🆕 SQLite 3.46.0 (май 2024)
- Добавлена поддержка contentless-delete для таблиц FTS5 — меньше места, выше скорость
- Новый флаг SQLITE_DBCONFIG_STMT_SCANSTATUS — можно отключать сбор статистики по выполнению запросов
- Оптимизации для LEFT JOIN + OR условий в WHERE — запросы выполняются заметно быстрее
- Улучшено поведение WITHOUT ROWID таблиц с составными ключами
🧪 Расширенные тесты:
- SQLite теперь использует дополнительный fuzzing для анализа стабильности ядра при высоких нагрузках и необычных SQL
🧹 Также исправлены:
- Ошибки в индексах при сложной комбинации JOIN + USING
- Утечка памяти при специфическом использовании PRAGMA function_list
💡 SQLite остаётся одной из самых лёгких, надёжных и удобных баз данных, которую можно использовать буквально везде: от браузеров и мобильных приложений до IoT и CLI-утилит.
📚 Полный список изменений — здесь:
https://www.sqlite.org/changes.html
@sqlhub
а персонаж - оконные функции изучает - его прочие решения не интересуют... условие опять же восхитительное - максимальные продажи за месяц... если в таблице данные за последние 12 лет - получится поучительный - но нах никому не нужный (потому как абсолютно бессмысленный - если надо какие-то выводы сделать...) результат... а самое козырное - что сам автор - никак не реагирует... это хитросделанный педагогический трюк... нах нужна обратная связь - если можно сесть и самостоятельно разобраться в хитросплетениях души автора...
P.S. может это один из сотрудников Набиуллиной или Силуанова?!
Если у двух продавцов лучшая сумма, то dense rank вернёт одного из них, а rank обоих
Читать полностью…
Хотя тут уже наверно довилиный вариант как с кликхаусом или гринпламом у них вполне норм сервис
Читать полностью…
YTsaurus, разработанная в Яндексе платформа для хранения и обработки больших данных, стала доступна как управляемый сервис в Yandex Cloud.
До 2023 года YTsaurus использовалась только внутри компании - для обучения нейросетей, аналитики, обработки телеметрии и работы с поисковым индексом. В прошлом году платформу выложили в опенсорс, и с тех пор она применяется как внутри Яндекса, так и за его пределами.
Теперь YTsaurus можно развернуть в облаке - без ручной настройки и с поддержкой от команды Яндекса. Платформа работает с эксабайтами данных, масштабируется до миллиона CPU и десятков тысяч GPU, поддерживает ClickHouse, Spark, MapReduce и подходит для любых сценариев - от ETL до построения хранилищ.
Заявки на ранний доступ уже открыты.
⚡️ SQL-шпаргалка, которая выручит в интервью, проекте и проде
Полный мастер-гайд по SQL в одном PDF: практичные примеры, чёткие объяснения и никакой воды.
Что внутри:
• 💬 Создание баз, таблиц и изменение схем
• 💬 Запросы любого уровня сложности: JOIN, GROUP BY, HAVING, PARTITION
• 💬 Подзапросы, CTE, оконные функции: ROW_NUMBER, RANK, DENSE_RANK
• 💬 VIEW, временные таблицы и работа с дубликатами
• 💬 Даты, строки, преобразования и агрегации
• 💬 Очистка данных, разбиение по разделителям
• 💬 UNION, INTERSECT, EXCEPT — управление сложными выборками
Затрагиваются и продвинутые кейсы:
• Парсинг адресов
• Кастомная сортировка
• Использование ISNULL и COALESCE
🧠 Это не просто набор команд — это концентрат боевого SQL-опыта.
Подходит для:
➡️ Подготовки к SQL-интервью
➡️ BI и аналитики
➡️ Web-разработки с базами
➡️ Встраивания SQL в проекты на Python, Go, Java и других языках
подскажите пожалуйста, испльзования SET операторов в SQL Server может являться следствием недостаточной нормализации базы данных?
Читать полностью…
Здравствуйте, есть обучающие материалы по Python, JavaScript, C++, C# кому нужно, пишите поделюсь.
Читать полностью…
Redis и Valkey – изучите секреты самых популярных open source key-value СУБД
В высоко-нагруженных сервисах Redis — не просто кэш, а важная подсистема, на которой строится значимая часть бизнес-логики. От его стабильности, масштабируемости и отказоустойчивости зависит производительность всего сервиса. Valkey - это современный производительный форк Redis с открытым исходным кодом, поддерживаемый сообществом и рядом крупных компаний. Valkey набирает популярность, поддержан крупными облачными провайдерами, и вполне возможно потеснит или вовсе заменит Redis со временем. Наш курс — для тех, кто хочет держать свой стэк и знания актуальными и глубоко разбираться, как устроен Redis и Valkey.
🌐 В программе курса:
🤩 Как эффективно использовать базовые и продвинутые структуры данных: HyperLogLog, Bitmaps и Bisields, Streams, Geospatial-индексы, Bloom Filters
🤩 Как проектировать in-memory системы, которые не разваливаются под нагрузкой, что влияет на отказоустойчивость и как её добиться
🤩 Как работает репликация и кластеризация на практике (режимы Sentinel и Cluster)
🤩 Как встроить Redis/Valkey в реальный прод с учётом безопасности, интеграций и современных практик мониторинга.
🥸 Кто мы: R&D-центр Devhands. Автор курса — Константин Ратвин — преподаватель МФТИ на кафедре БИТ (совместно со СберТех), эксперт по распределённым системам и банковским ИТ, автор курсов по СУБД и инфраструктуре, спикер HighLoad++ и PGConf.
🗓 Старт курса: 9 июня, 6 недель обучения.
Изучить программу и записаться можно здесь.
Ждем вас!
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxNnFKA
Диплом vs курсы: золотая середина для карьеры в IT
Без профильного образования в IT можно расти, но для серьезных позиций часто нужен диплом. На помощь приходит магистратура и онлайн-курсы, но проблема в том, что обучение в вузе сложно совмещать с работой, а короткие онлайн-курсы дают лишь поверхностные знания.
6 июня в 18:00 (мск) Анатолий Карпов (автор онлайн-курсов по Data Science) и Евгений Соколов (научный руководитель ФКН НИУ ВШЭ) расскажут о совместной онлайн-магистратуре karpov courses и НИУ ВШЭ — «Аналитика больших данных» на бесплатном вебинаре.
От ВШЭ — экспертиза и опыт одного из крупнейших вузов России, а от karpov courses — практические навыки в сфере анализа данных.
На встрече вы узнаете:
- преимущества высшего онлайн-образования и какие тренды есть на рынке;
- какие этапы необходимо пройти, чтобы поступить в онлайн-магистратуру НИУ ВШЭ и karpov courses;
- почему так популярна и востребована сфера аналитики данных в 2025 году.
Присоединяйтесь ко дню открытых дверей онлайн-магистратуры «Аналитика больших данных» от НИУ ВШЭ и karpov courses: https://clc.to/erid_2W5zFHNZGxY
Реклама. ООО "КАРПОВ КУРСЫ". ИНН 7811764627. erid: 2W5zFHNZGxY.
⚡️Кто такие дата-инженеры и почему без них не обойтись современному бизнесу?
Сейчас каждая компания собирает тонны данных: продажи, клиенты, маркетинг, логистика. Но сырые цифры бесполезны, если их нельзя превратить в понятные отчёты и выводы.
Приглашаем вас на вебинар 3 июня в 18:30 по МСК, где наш новый спикер — Владислав Вареник, Data Engineer в Сравни.ру — расскажет кто такие дата-инженеры и как они ускоряют работу бизнеса.
Что вы узнаете на вебинаре?
🟠Поговорим о профессии дата-инженера и почему эта профессия востребована.
🟠Как устроен процесс работы с данными.
🟠Как автоматизировать отчёты с помощью dbt и SQL.
🟠Пример из реальной практики.
Даже если вы далеки от аналитики — покажем, как начать с нуля и быстро получить результат. Не упустите шанс научиться тому, что будет цениться ещё десятки лет! 🚀
🕗 Встречаемся 3 июня в 18:30 по МСК
😶Зарегистрироваться на бесплатный вебинар
🧠 Хитрая задача по SQL: максимум без агрегатов?
У тебя есть таблица orders со следующими полями:
orders(id, customer_id, order_date, amount)
order_date`), **не используя `GROUP BY и `MAX()`**.DISTINCT ON, TOP 1 WITH TIES и RANK() нельзя — ты ограничен базовым SQL, работающим на большинстве СУБД.JOIN, WHERE и EXISTS?```sql
customer_id | order_id | order_date | amount
------------|----------|------------|--------
1001 | 87 | 2024-12-01 | 320.00
1002 | 91 | 2024-12-05 | 175.00
...NOT EXISTS, чтобы выбрать заказы, у которых нет более новых у того же клиента.
SELECT o.*
FROM orders o
WHERE NOT EXISTS (
SELECT 1
FROM orders o2
WHERE o2.customer_id = o.customer_id
AND o2.order_date > o.order_date
)
📧🤖 ART: интеллектуальный e-mail-агент с памятью, действиями и "мыслями"
OpenPipe представили подробный разбор архитектуры ART (Action–Recall–Thought) — это не просто бот, а полноценный агент, который может читать письма, анализировать контекст, планировать действия и запоминать диалог. Такой себе LLM-секретарь, который не забывает, что вы писали неделю назад, и умеет реагировать правильно.
🧠 Что такое ART?
ART — это архитектура, построенная вокруг трёх основных элементов:
1️⃣ Action — агент может действовать: писать ответы, создавать события, ставить задачи, отправлять follow-up.
2️⃣ Recall — агент вспоминает: использует векторную память, чтобы помнить важные детали переписки.
3️⃣ Thought — агент думает: размышляет о контексте, выбирает нужные шаги и обновляет своё внутреннее состояние.
Каждый запуск агента — это один цикл мышления, в котором он анализирует новое письмо, сравнивает его с памятью и решает, что делать.
🧩 Как работает?
Архитектура построена на LangGraph — фреймворке для создания LLM-агентов с управляемыми потоками данных (узлы, переходы, состояния).
🧬 Компоненты:
- Nodes:
- Reader: разбирает новое письмо
- Memory Retriever: ищет релевантные воспоминания
- Planner: решает, что делать
- Executor: выполняет действия (ответ, событие и т.д.)
- Reflector: обновляет размышления агента
- Memory:
- Используется ChromaDB (векторная база), куда сохраняются ключевые сообщения, решения, действия и мысли.
- Tools:
- Встроенные функции-агенты (tools) для генерации писем, событий, напоминаний, оповещений и т.п.
- Всё вызывается динамически через LLM, как в OpenAI function calling.
🔁 Как агент работает на практике?
Пример цикла:
1. Приходит e-mail → Reader извлекает суть.
2. Memory Retriever ищет похожие прошлые переписки.
3. Planner решает: ответить? создать задачу? проигнорировать?
4. Executor выполняет нужное действие.
5. Reflector обновляет память и размышления.
Следующее письмо будет уже обрабатываться с учётом прошлого контекста. Агент понимает цепочку, тему, задачи и автоматически действует.
💡 Что делает ART особенным?
✅ Работает в несколько итераций, не просто «prompt → response»
✅ Помнит прошлые письма, решения, даже ошибки
✅ Сам планирует, что делать: отвечать, пересылать, напоминать
✅ Обновляет свои действия при изменении входных данных
✅ Настраивается под любые задачи: продажи, саппорт, личные письма, менеджмент
📎 Полный разбор от OpenPipe с примерами кода, схемами и демонстрацией:
👉 https://openpipe.ai/blog/art-e-mail-agent
Если ты хочешь строить LLM-агентов с настоящей памятью и логикой — это must-read. Это шаг к настоящим автономным ассистентам.
#AI #LLM #autonomousagents #LangGraph #e-mail #productivity #openpipe #инструменты
@sqlhub
SELECT TOP 1 WITH TIES
DATEFROMPARTS(YEAR(sale_date), MONTH(sale_date), 1) AS month,
seller_name,
SUM(sale_amount) AS total
FROM sales
GROUP BY DATEFROMPARTS(YEAR(sale_date), MONTH(sale_date), 1), seller_name
ORDER BY 3 DESC;
А в чем проблема в having проверять на равенство максимальной сумме (сумму определим во вложенном запросе)
Читать полностью…
А не, ошибся, dense rank тоже вернёт их, но третьему поставит 2, rank 3
Но , если не видно разницы зачем платить писать больше?
🎯 SQL-задача с подвохом для аналитиков
Таблица sales:
CREATE TABLE sales (
id SERIAL PRIMARY KEY,
seller_name VARCHAR,
sale_amount NUMERIC,
sale_date DATE
);
GROUP BY month, seller_name и MAX(), но это не даст имя продавца — только сумму. Нужно вернуть имя лучшего продавца за месяц. А если таких несколько? Тоже учти.month и seller_name SUM(sale_amount) RANK() или ROW_NUMBER() rank = 1
WITH monthly_totals AS (
SELECT
DATE_TRUNC('month', sale_date) AS month,
seller_name,
SUM(sale_amount) AS total
FROM sales
GROUP BY 1, 2
),
ranked AS (
SELECT *,
RANK() OVER (PARTITION BY month ORDER BY total DESC) AS rnk
FROM monthly_totals
)
SELECT month, seller_name, total
FROM ranked
WHERE rnk = 1
ORDER BY month;
RANK() вернёт обоих, ROW_NUMBER() — только одного.
Внутри Яндекса куча обвязок и это хорошо и быстро работает.
А когда во вне это внедрять это пи.. С настоящий.
🦆 DuckDB теперь дружит с scikit-learn — мощный дуэт для ML-прототипов
В свежем гайде от 16 мая 2025 команда DuckDB показывает, как использовать их аналитическую СУБД вместе с scikit-learn — чтобы максимально быстро и удобно прототипировать модели машинного обучения.
💡 Пример — классификация пингвинов (датасет Palmer Penguins):
🔸 Предобработка в DuckDB:
Удаление NULL-ов, фильтрация, типизация.
Категориальные признаки кодируются через референс-таблицы (вместо LabelEncoder).
Используется selection_query с ленивым выполнением — данные грузятся только при необходимости.
🔸 Интеграция с scikit-learn:
Извлекаем pandas DataFrame прямо из DuckDB.
Обучаем классификатор (например, RandomForestClassifier) по подготовленным данным.
🛠 Идеально для:
• Быстрого прототипирования моделей
• Малых и средних наборов данных
• Python-разработчиков, которым не хочется возиться с SQL-серверами
📎 Подробнее:
https://duckdb.org/2025/05/16/scikit-learn-duckdb.html
@sqlhub
посмотрел внимательнее - формально даже айди логов не нужны... надо проверять - что нет записи иного отдела с временем между временем последнего не опоздавшего из целевого отдела и кандидата в не опоздавшие из того же отдела...
P.S. ну - считается - что турникет один... если турникетов много - тады нужен исчо и номер турникета...
P.P.S. кстати - усложнение решения задачи - при наличии простых вариантов - дурной тон... это я уже руководителю канала...