Data Science. SQL hub
35.8K subscribers
922 photos
49 videos
37 files
980 links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
🧩 Продвинутая задача по SQL (Oracle): найти «бычьи серии» продаж и момент разворота

Задача
Есть таблица продаж по дням:

sales(day_date DATE, customer_id NUMBER, amount NUMBER)

Нужно для каждого клиента найти интервалы из не меньше 3 подряд идущих дней, где сумма amount строго возрастает каждый день, а на следующий день после интервала происходит разворот вниз (т.е. amount меньше, чем в последний день серии). Для каждого такого интервала вернуть:
- customer_id
- start_date, end_date серии
- length (длина серии в днях)
- last_amount (сумма в последний день серии)
- drop_amount (сумма в день разворота)
- drop_pct (процент падения относительно last_amount)

Решение (Oracle 12c+): используем MATCH_RECOGNIZE


SELECT *
FROM sales
MATCH_RECOGNIZE (
PARTITION BY customer_id
ORDER BY day_date
MEASURES
FIRST(day_date) AS start_date,
LAST(day_date) AS end_date,
COUNT(A.*) AS length,
LAST(amount) AS last_amount,
NEXT(amount) AS drop_amount,
ROUND( (LAST(amount) - NEXT(amount)) / NULLIF(LAST(amount),0) * 100, 2 ) AS drop_pct
ONE ROW PER MATCH
AFTER MATCH SKIP PAST LAST ROW
PATTERN (A{3,} D)
DEFINE
A AS ( PREV(amount) IS NULL OR amount > PREV(amount) ),
D AS amount < PREV(amount)
);


Пояснение
- PATTERN (A{3,} D) — ищем подпоследовательность из минимум трёх строго возрастающих дней A, за которой сразу идёт день падения D.
- DEFINE A — рост относительно предыдущего дня в группе клиента.
- DEFINE D — падение относительно предыдущего дня (последнего A).
- MEASURES — извлекаем границы серии и метрики, NEXT(amount) берёт сумму в день разворота.
- AFTER MATCH SKIP PAST LAST ROW — не пересекаем серии.

Бонус: защита от «лестниц» с пропусками дат
Если в данных бывают пропуски дней, а вам нужны подряд идущие даты, добавьте проверку календарной последовательности:


DEFINE
A AS ( (PREV(amount) IS NULL OR amount > PREV(amount))
AND (PREV(day_date) IS NULL OR day_date = PREV(day_date) + 1) ),
D AS ( amount < PREV(amount) AND day_date = PREV(day_date) + 1 )


Зачем так делать
MATCH_RECOGNIZE — мощный инструмент Oracle для поиска сложных паттернов по времени (распознавание трендов, разрывов, «голова-плечи», аномалий). Он заменяет громоздкие CTE с аналитиками и делает запрос короче, быстрее и точнее при работе с последовательностями.

@sqlhub
👍227🔥7
Разбираем тестовое задание в Яндекс на позицию Junior аналитика данных

Тестовое задание — важная часть трудоустройства аналитика. Это шанс показать свои навыки на практике и получить оффер мечты.

Приглашаем на бесплатный вебинар, где Андрон Алексанян — эксперт в области аналитики и CEO школы аналитики Simulative — в прямом эфире разберет тестовое задание в Яндекс на позицию Junior аналитика данных.

⚡️На вебинаре вы:
🟠узнаете, какие навыки и знания необходимы для успешного выполнения заданий;
🟠поймёте, что хочет увидеть работодатель;
🟠получите советы и лайфхаки;
🟠вместе с Андроном разберете в прямом эфире реальный пример тестового 🔥


Чему именно научимся на вебинаре:
🟠С помощью Pandas проанализируем Яндекс-запросы за несколько недель, загрузив их из json-файла;
🟠Найдем закономерности и отличия использования сервиса на мобильных устройствах и компьютерах;
🟠Разберем фишки Pandas: сложную агрегацию, маппинг, конкатенацию, чейнинг и др.


🕗 Настоятельно рекомендуем не пропускать — для зрителей у нас есть особый бонус, который обеспечит вам уверенный старт в вашей карьере.

😶Зарегистрироваться на бесплатный вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2👎1🔥1
💡 Полезный хинт для Oracle SQL — использование TRUNC с датами для фильтрации и агрегации

В Oracle функция `TRUNC(date, 'fmt')` обрезает дату до заданного формата, обнуляя менее значимые части (часы, минуты, секунды и т.д.). Это помогает:
- фильтровать данные по дням, месяцам, годам, неделям, кварталам,
- делать группировки без сложных выражений,
- избавляться от ошибок, когда время мешает сравнению дат.

📌 Форматы:
- 'DD' — начало дня (по умолчанию)
- 'MM' — первый день месяца
- 'YYYY' — первый день года
- 'IW' — начало ISO-недели
- 'Q' — первый день квартала

📍 Примеры:

- Все сделки за сегодня

select *
from trades
where trunc(ts) = trunc(sysdate);


- Группировка по месяцам

select trunc(ts, 'MM') as month_start, sum(price) as total
from trades
group by trunc(ts, 'MM')
order by month_start;



-- Данные за текущий квартал
select *
from trades
where trunc(ts, 'Q') = trunc(sysdate, 'Q');


Плюсы:
- Удобно в чтении и написании
- Убирает проблемы с «лишними» часами и минутами в датах
- Работает напрямую с типом DATE без лишних кастов

@sqlhub
8👍4🔥3
🐘 Tarantool — необычная платформа, сочетающая in-memory базу данных с полноценным сервером приложений на Lua. Проект имеет два движка хранения: in-memory с WAL и LSM-дерево, поддерживает ANSI SQL и асинхронную репликацию.

Инструмент имеет встроенный JIT-компилятор LuaJIT, позволяющий исполнять бизнес-логику прямо рядом с данными. При этом сохраняется совместимость с внешними СУБД вроде PostgreSQL через коннекторы. Проект полезен для высоконагруженных веб-сервисов, кэширующих слоёв и систем обработки очередей сообщений.

🤖 GitHub

@sqlhub
8👎5👍3🔥1😁1🤬1
📊 Из PDF в DataFrame за пару строк кода

Работаете с финансовыми отчётами или любыми табличными данными в PDF?
С библиотекой docling это становится максимально просто.

Большинство инструментов для работы с PDF заставляют собирать пайплайн вручную:
одна библиотека для извлечения текста, другая для парсинга, третья для чанкинга.

Docling закрывает весь процесс — от сырых PDF до структурированных и готовых к поиску данных — в одном решении.

📌 Преимущества Docling:
🔹 Поддержка PDF, DOCX, PPTX, HTML и изображений
🔹 AI-модель TableFormer для понимания сложных таблиц
🔹 Vision-модели для OCR и image-to-text
🔹 Простой экспорт в pandas DataFrame, JSON и Markdown

Пример: конвертируем PDF с отчётом о доходах и сразу получаем pandas DataFrame 👇


from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("financial_report.pdf")

for table in result.document.tables:
df = table.export_to_dataframe()


📌 Github

@sqlhub

#AI #RAG #Docling #DataEngineering #PDF
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2111🔥3😱1
🚀 Ускоряем работу с данными с помощью Delta Lake

Когда нужно добавить новые данные к уже существующему набору, есть два подхода:

🔴 Без Delta Lake
- Сначала загружаешь все старые данные (например, 10 000 записей) из CSV.
- Загружаешь новые данные (например, 50 записей).
- Объединяешь их, что требует обработки всех 10 050 записей.
- Это медленно, расходует память и ресурсы.

🟢 С Delta Lake
- Хранишь данные в формате Delta Lake.
- Загружаешь только новые записи (например, 50 штук).
- Добавляешь их напрямую в существующую таблицу с помощью append, обрабатывая только новые данные.
- Экономия времени, памяти и ресурсов.

💡 Преимущества Delta Lake:
- Инкрементальная загрузка данных.
- Работа с большими объёмами без полной перезагрузки.
- Поддержка транзакций (ACID).
- Совместимость с большими дата-платформами (Spark, Pandas и др.).

📊 Если у тебя миллионы строк — выигрыш в скорости будет колоссальным.

@sqlhub
6👍5🔥3
🗿 Монолит на 930 эндпоинтов: лечим по шагам

С монолитом и 4+ ТБ данных можно работать! Доказано Яндекс Едой. Ребята применили классические методы для оптимизации запросов и перераспределения нагрузки, добавив к этому свой TableSwitcher для миграции данных. Базовое + новое = улучшенная производительность.


Реклама. ООО «ЯНДЕКС», ИНН 7736207543
👎5👍21
🎮 Учим SQL через захватывающую аркадную игру

Разработчики замутили настоящий олдскульный
шедевр, который сделает из вас МАСТЕРА баз данных и точно не даст заскучать.

• Проходим уровни, собираем пазлы вместе с уткой DuckDB и прокачиваем SQL на максимум.
• Квесты, задачи, подсказки — всё как в настоящем приключении.
• Работает прямо в браузере и даже на телефоне.

Любые запросы к базам — щёлкаем как семечки 👉 https://dbquacks.com/.
🔥123👍3
Где вы окажетесь завтра, зависит от того, что вы изучаете сегодня. PostgreSQL — инструмент, который ищут компании, а грамотных специалистов по нему все еще немного.

Почему именно PostgreSQL? Потому что это не просто база данных, а сердце ваших проектов. Если вы администратор БД, разработчик, DevOps или администратор Linux, этот курс — ваш апгрейд.

Мы научим настраивать кластеры, оптимизировать производительность, разбираться с блокировками и решать задачи работы с большими объемами данных. А также живые лекции, практические задания и диплом, который признают лидеры рынка. Учитесь у практиков, которые знают, как решать реальные задачи, и получите навыки, за которые платят топовые компании.

Присоединяйтесь к курсу сейчас и начните свой путь к высокооплачиваемой карьере! Оставить заявку на курс и получить скидку: https://otus.pw/yEz4/?erid=2W5zFHAFsn8

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
📉 На Уолл-стрит началась просадка AI-акций — и спусковым крючком оказался в отчёте MIT.

В нём говорится, что 95% компаний не получают прибыли от внедрения generative AI, а реальные результаты видят только 5%.

Почему так:
- Компании запускают до того, как готовы пайплайны данных, безопасность и обучение сотрудников
- Деньги уходят на сервера и модели, а внедрение в процессы оказывается долгим и дорогим

⚠️ На фоне разговоров про «AI-пузырь» фонды начали выходить из популярных AI-акций, что вызвало обвал.

👉 Но это похоже не на крах, а на проверку реальностью.

Дальнейший рост будет зависеть от реальной экономики ИИ: снижения стоимости инференса и доказанного роста продуктивности.

📌 Источник
👍13😁65🔥4
🌲 Datahike — персистентная база данных на основе Datalog. Это локальная база данных с поддержкой временных запросов и историчностью данных, совместимая с подмножеством API Datomic.

Интрумент используется в проверенных решениях: ядра запросов из DataScript и устойчивой структуры данных hitchhiker-tree. Проект подходит для средних по размеру приложений, где важна простота развертывания и открытая лицензия.

🤖 GitHub

@sqlhub
5👍5🔥2
Как начать в Data Science, когда все вокруг уже сеньоры?

До 15 сентября в Вышке продолжается набор на онлайн-магистратуру «Магистр по наукам о данных». Поступить можно даже без технического бэкграунда, а учиться — в удобном формате. Вы научитесь:

⚪️ работать с данными
⚪️ применять классические модели ML
⚪️ решать бизнес-задачи из сфер DA и DS

Вам подходит программа, если вы
⭐️ Из другой сферы деятельности, но хотите войти в IT
⭐️ Самоучка и хотите подтвердить знания дипломом
⭐️ Хотите стать IT-специалистом, но пока не понимаете, каким именно
⭐️ Хотите освоить инструменты Data Science для своих проектов в другой сфере

Как проходит обучение
⚪️ Онлайн-занятия в прямом эфире с возможностью задавать вопросы
⚪️ Диплом НИУ ВШЭ с указанием очной формы обучения
⚪️ Поддержка в чате 24/7

Прием документов до 15 сентября, 17:00. Подробнее о программе можно узнать тут.

А чтобы узнать, как подать документы, вступайте в чат абитуриентов — там найдете инструкции и сможете получить ответы на любые вопросы по поступлению.
Please open Telegram to view this post
VIEW IN TELEGRAM
2