sqlhub | Unsorted

Telegram-канал sqlhub - Data Science. SQL hub

36043

По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo

Subscribe to a channel

Data Science. SQL hub

📜 История SQL — от лабораторной идеи до «языка данных» № 1

Как появился самый известный язык работы с базами, почему он едва не остался «Сиквелом» и какие любопытные факты о нём редко всплывают в учебниках.

1. Всё началось с таблицы на бумаге

- 1970 г. — британский математик Эдгар Ф. Кодд публикует культовую статью *“A Relational Model of Data for Large Shared Data Banks”*.
- В ней впервые прозвучала идея: хранить данные в виде связанных таблиц, а не как запутанные иерархии (IMS) или сетевые графы (Codasyl).
- Коллеги в IBM скептически называли это «бумагой на буквы», но разрешили сделать прототип, чтобы проверить утопию Кодда на практике.

2. SEQUEL — «английский» запрос к таблицам

- 1973–1974 гг. — в лаборатории IBM San José (ныне Almaden) двое молодых исследователей, Дональд Чемберлин и Рэймонд Бойс, берутся за проект System R.
- Чтобы обращаться к реляционным таблицам, они придумывают Structured English QUEry Language — SEQUEL.
- Ключевая фишка — запросы выглядят почти как английские предложения:


SELECT name, salary
FROM employees
WHERE dept = 'R&D';

- В 1974‑м публикуют первую спецификацию; академики критикуют за «слишком поверхностный английский», но программисты в восторге.

3. Почему SEQUEL стал SQL

- Торговая марка “SEQUEL” уже принадлежала авиастроительной компании *Hawker Siddeley*.
- IBM, опасаясь суда, в 1976 г. официально отказывается от «E» и оставляет SQL (Structured Query Language).
- *Небольшая путаница осталась навсегда: кто‑то произносит «эс‑кью‑эл», кто‑то — «сиквел».*

4. Коммерческий взлёт


- 1978 | Первая демонстрация System R внутри IBM | показала, что SQL работает быстрее ожиданий |
- 1979 | Стартап Relational Software (позже Oracle**) выпускает **Oracle V2 — первый коммерческий SQL‑движок | IBM ещё не успела выйти на рынок
- 1981 | IBM выпускает SQL/DS для мейнфреймов | стандарт де‑факто закрепляется
- 1983 | Дебют DB2 — теперь SQL есть почти в каждом крупном банке

5. Стандартизация и эволюция

- ANSI SQL‑86 → SQL‑92 (появился `JOIN ... ON`) → SQL:1999 (рекурсия, триггеры) → SQL:2003 (XML) → … → SQL:2023 (JSON, property graphs).
- Каждые 3–5 лет комитет добавляет «модные» возможности, но 90 % повседневных запросов всё ещё укладываются в синтаксис 1980‑х.

6. Забавные факты, которые украсят small talk 🍸

1. NULL ≠ 0 и NULL ≠ NULL — «неизвестное значение» нарушает законы логики, за что его зовут *“пятой ногой”* реляционной алгебры.
2. `SELECT *` — наследие печати на станке. Звёздочка означала «все колонки», чтобы не писать их руками в 132‑символьных перфокартах.
3. Команда `GO` в MS SQL Server не принадлежит стандарту SQL — это директива из старого клиента isql.
4. В Oracle долго не было `LIMIT`, а в MySQL — `RIGHT JOIN`. Поэтому админы шутили: «истинный межплатформенный SQL — это `SELECT 1;`».
5. Первый SQL‑вирус — червь *Slammer* (2003) — парализовал интернет за 10 минут через уязвимость в SQL Server 2000.
6. SQL — декларативный язык, но внутри СУБД каждый SELECT превращается в процедурный план.
7. `DROP DATABASE` придумали позже, чем `CREATE`. Сначала удалять целую БД казалось слишком опасным.

7. Почему SQL живёт дольше модных NoSQL‑наследников

- Математическая база. Таблицы + операции Кодда образуют алгебру с предсказуемой оптимизацией.
- Стандарты и переносимость. Код двадцатилетней давности можно запустить в современной Postgres или MariaDB.
- Большая экосистема. От Excel‑плагинов до BigQuery — везде так или иначе поддерживается SQL‑диалект.
- Сопротивляемость моде. Каждый «убийца SQL» (MapReduce, GraphQL, документные БД) в итоге добавляет свой адаптер SELECT ….

Итог: SQL родился как эксперимент IBM, пережил смену названий и юридические баталии, но в итоге стал «лентой Мёбиуса» мира данных: можно зайти с любой стороны — и всё равно окажешься в FROM.

https://www.youtube.com/shorts/EuFjzuVHkHE

Читать полностью…

Data Science. SQL hub

## 7 полезных приёмов для Oracle SQL

Простые советы для Oracle SQL, которые помогут аналитикам данных прокачать свои запросы.

1) Фильтрованные (partial) индексы
В Oracle можно создавать индексы только для подмножества строк, чтобы ускорить выборку по популярным условиям.


CREATE INDEX idx_orders_high_value
ON orders(order_date)
WHERE total_amount > 1000;


2) Функциональные (function-based) индексы
Если фильтруете или джойните по функции, создайте индекс прямо по выражению:

CREATE INDEX idx_orders_year
ON orders (EXTRACT(YEAR FROM order_date));


3) GROUPING SETS, ROLLUP, CUBE
Для одновременной агрегации по нескольким группировкам без UNION ALL:

SELECT region, category, SUM(sales) AS total
FROM sales
GROUP BY ROLLUP (region, category);


4) Материализованные представления с QUERY REWRITE
В Oracle можно сделать автоматическую подмену сложного запроса предрасчитанным результатом (материализованным представлением):

CREATE MATERIALIZED VIEW mv_sales_by_month
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
ENABLE QUERY REWRITE
AS
SELECT TRUNC(order_date, 'MM') AS month, SUM(total_amount) AS total
FROM orders
GROUP BY TRUNC(order_date, 'MM');

Теперь запрос SELECT month, SUM(total_amount) FROM orders GROUP BY month; автоматически будет использовать mv_sales_by_month.

5) WITH PL/SQL FUNCTION RESULT CACHE
Кэшируйте результат функции, чтобы при одинаковых входных данных не пересчитывать:

CREATE OR REPLACE FUNCTION get_tax_rate(p_region VARCHAR2)
RETURN NUMBER RESULT_CACHE RELIES_ON (tax_table) IS
v_rate NUMBER;
BEGIN
SELECT rate INTO v_rate FROM tax_table WHERE region = p_region;
RETURN v_rate;
END;


6) PARALLEL HINT для ускорения запросов
Явно указывайте параллельное выполнение запроса, чтобы задействовать несколько процессов:

SELECT /*+ PARALLEL(orders, 4) */ customer_id, SUM(total_amount)
FROM orders
GROUP BY customer_id;


7) DBMS_STATS.AUTO_SAMPLE_SIZE для сбора статистики
Используйте автоматический подбор размера выборки для более точной оптимизации плана выполнения:

EXEC DBMS_STATS.GATHER_TABLE_STATS('HR', 'ORDERS', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE);

• Совет: проверяйте планы выполнения через DBMS_XPLAN.DISPLAY_CURSOR, чтобы видеть реальные шаги запроса, а не только предполагаемые.

@sqlhub

Читать полностью…

Data Science. SQL hub

✔️ А вот и новый DeepSeek Prover v2, модель, заточенная исключительно на математику.

🚀Масштабная архитектура на базе, которая содержит 671 млрд параметров, что в 96 раз больше, чем у предыдущей версии Prover-V1.5 (7 млрд).

Построен на базе архитектуры «смеси экспертов» (MoE), что снижает затраты на обучение и повышает эффективность решения задач.

Модель заточена на формальное доказательство теорем с помощью языка программирования Lean 4, обеспечивая 100% логическую точность.

Lean 4 — это зависимо типизированный функциональный язык программирования и интерактивное средство доказательства теорем.

Результаты:
• Новая Sota( 88,9%) на MiniF2F-test.
• DeepSeek-Prover-V2 смогла доказать 49 теорем из 658.

Для тренировки использовались 8 млн синтетических примеров, созданных через рекурсивный поиск решений теорем.

🔍 Как это работает:

1) Разложение теорем: DeepSeek-V3 по prompt'у разбивает сложные задачи на подцели.

2) Формализация: Пошаговые рассуждения переводятся в доказательства на Lean 4.

3) Cold-start: Полученные цепочки рассуждений и формальные доказательства используются как начальные данные для обучения модели.

🌟 Два размера:
• 7 B — базовый вариант.
• 671 B — расширенная версия на базе DeepSeek-V3-Base.

https://huggingface.co/deepseek-ai/DeepSeek-Prover-V2-671B

Читать полностью…

Data Science. SQL hub

NotebookLM теперь умеет делать подкасты на русском и других славянских языках

Новая функция позволяет превращать документы в аудио — можно генерировать как полезные, так и совсем абсурдные подкасты (пример в посте). Идеально, чтобы слушать вместо чтения, например, во время пробежки.

Озвучка на русском немного уступает английской, но звучит достойно.

🎧 Бесплатно, пробуем

Читать полностью…

Data Science. SQL hub

🖥 Крутая подборка шпаргалок по SQL

Внутри

— SQL для data analysis;
— SQL Joins;
— Оконные функции;
— Основы SQL.

@sqlhub

Читать полностью…

Data Science. SQL hub

🔍 Milvus — масштабируемая высокопроизводительная векторная БД для AI-приложений с нативной интеграцией с Kubernetes.

Проект написан на Go и C++ и оптимизирован для работы с миллиардами векторов в реальном времени. Помимо классических dense-векторов, Milvus поддерживает sparse-модели для полнотекстового поиска и гибридные запросы. Для локального тестирования есть облегченная версия, устанавливаемая через pip.

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
Нерйросети t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
Data Science: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
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
Разработка игр: /channel/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: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy

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

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

Читать полностью…

Data Science. SQL hub

Нашел лучший сайт для изучения SQL
Хороший ресурс для освоения SQL — SQL Academy!

Это интерактивная платформа с практическими заданиями от ведущих российских компаний: ВКонтакте, Альфа-Банка, Сбера и других. Здесь найдётся всё, что нужно разработчикам, аналитикам, тестировщикам и студентам, интересующимся базами данных.интересующихся студентов.

Попробовать здесь

@sqlhub

Читать полностью…

Data Science. SQL hub

✔️ Presto (prestoDB/presto)

Это высокопроизводительный распределённый движок SQL для анализа больших объёмов данных в реальном времени. Основные характеристики:

Распределённая архитектура

Состоит из координатора и множества воркеров, которые параллельно выполняют фрагменты запросов, обеспечивая низкую задержку даже при обработке петабайтовых данных
GitHub

Поддержка ANSI SQL и UDF

Полноценная поддержка стандартного SQL с возможностью расширения набором пользовательских функций (UDF), агрегатов и аналитических функций.

Плагинные коннекторы
Из коробки доступны коннекторы к Hive (HDFS/S3), Cassandra, Kafka, MongoDB, MySQL, PostgreSQL, Elasticsearch и многим другим системам хранения. При желании можно написать собственный плагин
GitHub
.

Масштабируемость и отказоустойчивость
Горизонтальное масштабирование за счёт добавления воркеров, автоматическое перераспределение задач при выходе узлов из строя.

Удобство развёртывания
Можно собрать из исходников через Maven (./mvnw clean install), развернуть через Docker (официальный образ есть в папке docker/), или сразу использовать готовые пакеты на prestodb.io.

Клиенты и интеграции
Имеется CLI (presto-cli), JDBC/ODBC‑драйверы, REST API. Лёгко встраивается в BI‑инструменты и платформы визуализации.

Сферы применения
Ad‑hoc‑аналитика, интерактивные дашборды, federated query (объединение данных из разных источников), подготовка данных для машинного обучения.

https://github.com/prestodb/presto

@sqlhub

Читать полностью…

Data Science. SQL hub

🖥 Задача: “Невидимая строка”

Дана таблица users:


CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT,
deleted_at TIMESTAMP
);


Вы выполняете:

SELECT COUNT(*) FROM users WHERE deleted_at = NULL;


✔️ И получаете... 0. Хотя вы уверены, что есть пользователи, у которых deleted_at не задано.

Вопрос:
Что не так с запросом? Как правильно получить количество “неудалённых” пользователей?

Вопрос: В чем ошибка? И как надо правильно писать такой фильтр?

✔️ Правильный запрос будет выглядеть так:

Чтобы проверить, является ли значение NULL, нужно использовать специальный оператор IS NULL.

SELECT COUNT(*) FROM users WHERE deleted_at IS NULL;

Этот запрос корректно найдёт все строки, где в столбце deleted_at действительно отсутствует значение (т.е. он равен NULL), и посчитает их количество.

Итог:
Не используйте = или != для сравнения с NULL.
Используйте IS NULL для проверки на NULL.
Используйте IS NOT NULL для проверки на не NULL (если бы вам понадобилось посчитать удалённых пользователей, у которых deleted_at заполнено).


@sqlhub

Читать полностью…

Data Science. SQL hub

👣 Оптимизация выделения памяти в Go: как одна строчка замедлила всё на 30%

В базе данных Dolt (аналог Git, но для SQL-таблиц) после рефакторинга один из бенчмарков (types_scan) внезапно стал работать на 30% медленнее. Причина? Казалось бы, невинная строчка кода.

📉 Что произошло
Метод GetBytes() начал вызывать ReadBytes() у интерфейса ValueStore. Всё выглядело логично, пока не включили профилировщик Go и не обнаружили странную активность:
🔍 runtime.newobject вызывался слишком часто → программа делала много лишних аллокаций в куче.

📦 Где зарыта собака


func (vs nodeStore) ReadBytes(...) ...

Этот метод использовал приёмник по значению (vs nodeStore). Это значит, что вся структура копировалась при каждом вызове метода, даже если она большая.

🚑 Как пофиксили
Просто поменяли на приёмник по указателю:

func (vs *nodeStore) ReadBytes(...) ...

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

🧠 Вывод
❗ Методы с приёмником по значению = риск лишнего копирования и аллокаций
🛠 Даже один маленький метод может резко замедлить ваш код
🔍 Профилировка в Go — мощный инструмент. Используй pprof!

Полный разбор в блоге DoltHub
Подробнее про Dolt

@golang_google

Читать полностью…

Data Science. SQL hub

Тратите много времени на повторяющиеся SQL-запросы, выполняя рутинные задачи вручную? 
На бесплатном вебинаре, который пройдет 22 апреля в 20:00, мы решим эту проблему и научим вас создавать и использовать хранимые процедуры для автоматизации процессов в SQL! https://otus.pw/sYDb/

Представьте, что вы можете автоматизировать эти задачи с помощью хранимых процедур в MS SQL Server и PostgreSQL, увеличив свою эфффективность. Больше не придется тратить на это лишние силы.

Записывайтесь на урок, получайте практические навыки, а также скидку на большое обучение «SQL для разработчиков и аналитиков»: https://otus.pw/sYDb/

erid: 2W5zFGp9d2g

Читать полностью…

Data Science. SQL hub

⏰Регистрируйся на вебинар

🔋 Миграция приложений с Oracle Apex, Oracle Forms на Postgres.

На вебинаре расскажем как сохранить команду разработчиков и перейти с Oracle Apex, Oracle Forms.

• 10 лет за 5 минут как мы делали клон Oracle Apex/Forms/Reports на PostgreSQL
• Разработка приложений с применением только SQL / plpgSQL
• Oracle Apex на PostgreSQL на стероидах Visual Studio Code 
• Пару слов об xDac for Postgres. Презентация XSQUARE – DAC for ORACLE

📌Обещаем технический вебинар, без слайдов и маркетинга.

#реклама
О рекламодателе
erid: 2W5zFK8o3be

Читать полностью…

Data Science. SQL hub

🔥 FireEdit — новая методика редактирования изображений по инструкции

🌟 В основе FireEdit — усовершенствованная Vision Language Model (VLM), способная выполнять тонкое и точное редактирование изображений на основе текстовых промптов.

🌟 Что внутри:
🟢Region Tokens
Позволяют VLM точно определять редактируемые объекты даже в сложных сценах, не затрагивая остальное изображение.
🟢Time-Aware Target Injection
Динамически регулирует степень редактирования на разных этапах шумоподавления, интегрируя информацию о времени с текстовыми эмбеддингами.
🟢Hybrid Visual Cross-Attention
Позволяет сохранить высокочастотные визуальные детали и семантическую согласованность изображения.

✔️Результаты
FireEdit превосходит другие SOTA-методы на датасете Emu Edit — как по точности локализации, так и по качеству результата.

✔️ Визуальные сравнения показывают, что FireEdit:
🟢Лучше локализует редактируемые области
🟢Меньше искажает фон и окружающие детали
🟢Сохраняет высокую семантическую точность

🔜 Статья
🔜Проект

@ai_machinelearning_big_data


#AI #VLM #Diffusion #ImageEditing #FireEdit #ML

Читать полностью…

Data Science. SQL hub

🚀 SQLModel — удобное решение для работы с базами данных в Python, объединяющее силу SQLAlchemy и валидацию Pydantic. Проект устраняет главную боль разработчиков: необходимость дублировать модели для БД и API.

Инструмент имеет синтаксис на основе аннотаций типов. Один класс одновременно описывает таблицу в БД и схему для FastAPI, а встроенная поддержка IDE сразу подсказывает поля и выявляет ошибки. Например, модель Hero с полями name и secret_name готова к использованию и в миграциях, и в эндпоинтах без лишнего кода.

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

📕MySQL для администраторов, разработчиков, архитекторов и специалистов баз данных

Как грамотно оптимизировать производительность в MySQL и решить возникающие проблемы.

📗 На вебинаре 6 мая в 19:00 разберём:
1. Практические методы оптимизации производительности, диагностику нагрузки и анализ "узких мест" MySQL;
2. Оптимизацию запросов: от простых до сложных.

📘 В результате будете знать всё о настройке ключевых параметров конфигурации, уметь самостоятельно диагностировать и решать проблемы производительности MySQL.

👉 Регистрация и подробности о курсе Базы данных: https://otus.pw/5iMh/?erid=2W5zFGeaQTA

Все участники открытого урока получат скидку на курс

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Data Science. SQL hub

👣 Небольшой пример как копировать данные между базами данных используя `go`, `pgx`, и `copy`

Предположим что у нас есть два коннекта к базе (одной или нескольким, это не важно). Далее используя io.Pipe() создаём Reader и Writer, и используя CopyTo() и CopyFrom() переносим данные.


r, w := io.Pipe()

doneChan := make(chan struct{}, 1)

go func() {
defer close(doneChan)

_, err := db1.PgConn().CopyTo(ctx, w, `copy table1 to stdin binary`)
if err != nil {
slog.Error("error", "error", err)
return
}
_ = w.Close()
doneChan <- struct{}{}
}()

_, err = db2.PgConn().CopyFrom(ctx, r, `copy table1 from stdout binary`)
_ = r.Close()

select {
case <-doneChan:
case <-ctx.Done():
}


Вся прелесть тут в том что используем наиболее быстрый способ с точки зрения PostgreSQL.

Используя `copy (select * from where ... order by ... limit ...) to stdout `можем регулировать нагрузку на чтение, следить за прогрессом и управлять копированием данных.

В качестве Reader может выступать что угодно, хоть файл csv, хоть другая СУБД, но тогда данные придётся дополнительно конвертировать в формат понимаемый PostgreSQL - csv или tsv, и использовать copy ... from stdin (format csv).

Нюанс: copy ... from stdin binary , binary обязывает использовать одинаковые типы данных, нельзя будет integer колонку перенести в колонку smallint, если такое требуется, то параметр binary надо опустить.

Весь код тут. И ещё немного кода для вдохновения.

@sqlhub

Читать полностью…

Data Science. SQL hub

Столкнулись с падением производительности базы данных?
Не делайте резких движений: вы можете ухудшить ситуацию.

Сначала нужно верно диагностировать причину проблемы.
Возможно вы неправильно выбрали индексы, а быть может дело вообще в самой архитектуре БД – вариантов масса!

На открытом вебинаре «Как ускорить работу и повысить надёжность PostgreSQL»
вы узнаете:
🎯как обеспечить высокую производительность и отказоустойчивость базы данных
🎯как вовремя выявить деградацию производительности с помощью диагностики

Вебинар проведёт Дмитрий Золотов, Kotlin-разработчик в «Яндексе».

Приглашаем технических руководителей, админов БД, девопсов и разработчиков.

Все участники получат в подарок видеоурок «Безопасность в PostgreSQL: защита данных, управление доступом и аудит» и скидку 7% на любой курс OTUS.

6 мая, 19:00 МСК
Бесплатно
Записаться - https://otus.pw/sWHl/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFG8vzDn

Читать полностью…

Data Science. SQL hub

Приглашаем студентов на бесплатный студкемп Яндекс Образования и ИТМО по управлению данными

Готовы попробовать свои силы в решении реальных задач? Бесплатный студкемп Яндекса и ИТМО — ваш шанс погрузиться в востребованное IT-направление и открыть новые профессиональные горизонты!

Во время интенсива вы изучите принципы микросервисных архитектур, освоите системы распределённого хранения и разберётесь с DataOps и MLOps. А ещё будете участвовать в разработке комплексных пайплайнов: от автоматического сбора до визуализации данных.

Студкемп пройдёт с 30 июня по 12 июля в Санкт-Петербурге на базе ИТМО. Приглашают студентов со всей России и каждому, кто пройдёт отбор, оплатят проезд и проживание. Успейте подать заявку до 4 мая.

Читать полностью…

Data Science. SQL hub

Стартовал набор в ШАД — успейте подать заявку!

Технологии меняют нашу реальность, но за их развитием стоят люди, которые умеют находить нестандартные решения. И именно в Школе анализа данных Яндекса готовят таких специалистов! Здесь амбициозные и увлечённые студенты:

• погружаются в машинное обучение, Data Science и искусственный интеллект;
• перенимают опыт экспертов из индустрии;
• учатся решать задачи, стоящие перед ведущими IT-компаниями и исследовательскими центрами.

Учёба в ШАДе — это серьёзный вызов даже для тех, кто уже знаком с анализом данных. Поступить непросто, но если вы готовы к интенсивной нагрузке, нестандартным кейсам и полной пересборке своего мышления — это место для вас! За 2 года обучения вы получите инструменты и навыки, которые позволят работать над сложнейшими задачами индустрии, запускать собственные проекты и двигать науку вперёд.

Занятия полностью бесплатны и проходят по вечерам. Если в вашем городе нет филиала, можно учиться онлайн. Готовы бросить вызов данности? Тогда подавайте заявку до 4 мая!

Читать полностью…

Data Science. SQL hub

🖥 Задача: Анализ пользовательского поведения с аномалиями в SQL

## Условие задачи:

Дана таблица user_events со следующей структурой:


CREATE TABLE user_events (
user_id INT,
event_time TIMESTAMP,
event_type VARCHAR(50),
platform VARCHAR(50)
);


🎯 Каждая строка описывает событие пользователя:
- user_id — идентификатор пользователя,
- event_time — время события,
- event_type — тип события (`login`, purchase, logout, error и т.д.),
- platform — платформа (`iOS`, Android, `Web`).

Требуется:

1. Найти пользователей, которые:
- Выполнили покупку (`purchase`),
- Но не заходили в систему (`login`) в течение последних 7 дней перед покупкой.

2. Найти пользователей, у которых:
- Более 30% всех событий за последний месяц составляют события типа error.

3. Рассчитать для каждого пользователя:
- Среднее время между входом (`login`) и следующим выходом (`logout`).
- Если logout отсутствует после login — игнорировать такую сессию.

---

## Дополнительные условия:

- Считайте, что данные могут быть объемными: миллионы строк.
- Решение должно быть оптимизировано: избегайте подзапросов в подзапросах без индексов, старайтесь минимизировать количество проходов по данным.
- Можно использовать оконные функции (`WINDOW FUNCTIONS`) и временные таблицы (`CTE`) для упрощения запросов.
- Платформу можно игнорировать в расчетах.

---

## Что оценивается:

- Умение использовать оконные функции и агрегаты.
- Умение правильно интерпретировать условия задачи в SQL-операции.
- Оптимизация запросов под большие объемы данных.
- Чистота, читаемость и структурированность кода SQL-запросов.

---

Примечание:
Эта задача проверяет как технические навыки работы с SQL, так и внимательность к деталям формулировки задачи. Небрежная реализация может дать неверные результаты, особенно на больших данных.

🔥 Подсказки и намёки для решения задачи


## Задание 1: Найти пользователей с покупками без логина за последние 7 дней

**Намёк:**
- Используйте оконную функцию LAG() или MAX() с фильтрацией событий login.
- Для каждой покупки проверяйте, был ли login в пределах 7 дней до события purchase.
- Можно применить LEFT JOIN событий login к событиям purchase.

## Задание 2: Найти пользователей с долей ошибок > 30%

**Намёк:**
- Используйте оконные функции COUNT(*) и SUM(CASE WHEN event_type = 'error' THEN 1 ELSE 0 END).
- Постройте долю ошибок на основе всех событий пользователя за последние 30 дней (`WHERE event_time >= CURRENT_DATE - INTERVAL '30 days'`).

## Задание 3: Рассчитать среднее время между login и следующим logout

**Намёк:**
- Используйте оконную функцию LEAD() для поиска следующего события после login.
- Пара login -> logout должна иметь корректный порядок по времени.
- Отбрасывайте случаи, где следующего logout нет или это событие другого типа.

@sqlhub

Читать полностью…

Data Science. SQL hub

✔️ Wal-listener — это инструмент для прослушивания логов транзакций PostgreSQL (WAL) и конвертации их в удобный для обработки формат JSON.

Возможности

- Прослушивание изменений в PostgreSQL в режиме реального времени.
- Поддержка нескольких слотов репликации.
- Удобный вывод в формате JSON.
- Готов к использованию в качестве сервиса.

Пример использования

1. Создаём слот репликации:


SELECT * FROM pg_create_logical_replication_slot('test_slot', 'wal2json');


2. Запускаем wal-listener:

wal-listener --dsn "host=localhost port=5432 user=postgres dbname=test" --slot test_slot


3. Получаем JSON-объекты при изменениях в базе данных.

https://github.com/ihippik/wal-listener

#devops #девопс #PostgreSQL #sql

@sqlhub

Читать полностью…

Data Science. SQL hub

Устал от многоэтапных собеседований и длительных тестовых заданий при приёме на работу? А что, если оффер в IT-компанию можно получить за один день?

🚀 Приходи на One Day Offer в Navio 26 апреля! Мы ищем Дата инженеров уровней middle и senior в команду BigData, которые готовы к профессиональным вызовам! Оставь отклик с резюме на сайте, получи тайм-слот от рекрутера и пройди все этапы собеседований за 1 день на онлайн-мероприятии.

У нас классные нестандартные проекты: end-to-end разработка, один из крупнейших в СНГ дата-лейков автономных машин, мониторинг данных с физическим воплощением на дороге и все преимущества работы в аккредитованной IT-компании.

📈Меняй карьеру прямо сейчас!

Читать полностью…

Data Science. SQL hub

Мечтаешь хакнуть свою продуктивность с помощью ИИ? Приходи на AI-митап в Нижнем Новгороде! 👌

📍 Встречаемся 24 апреля в 18:00 по адресу: ул. Октябрьская, 35, пространство «Гараж».

Регистрируйся на митап и готовься к апгрейду своих скиллов!

Читать полностью…

Data Science. SQL hub

📕Открытый урок о NoSQL с Cassandra для разработчиков, администраторов, специалистов по базам данных, Data engineers, Backend и FullStack-разработчиков.

На открытом уроке 21 апреля в 20:00 мск мы погрузимся в тонкости работы c NoSQL в Cassandra.

📗В результате вы:
- Узнаете, как работает Cassandra и какие есть особенности про которые никто говорит;
- Разберетесь, как избежать и решать проблемы в работе Сassandra;
- Освоите техники и лайфхаки в Сassandra на практике.

Спикер Дмитрий Гурьянов — Team Lead команды разработки CRM-решений на платформе .NET в Промсвязьбанке, 9+ лет в разработке, работал в Microsoft над продуктом Bing, аспирант кафедры "Системы обработки информации и управления" в МГТУ им. Н.Э. Баумана.

👉Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/6XKr/?erid=2W5zFH7KsWx

📙Все участники открытого урока получат скидку на курс "Базы данных"

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Читать полностью…

Data Science. SQL hub

🚀 AWESOME DATA SCIENCE

Репозиторий данных с открытым исходным кодом для изучения, применения и решения реальных проблем в data science.

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

🖥 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

📒 Awesome LangChain — коллекция лучших инструментов для работы с LLM.

В этом репозитории собраны 500+ проектов — порты на другие языки (Go, Java, Ruby), шаблоны для быстрого старта и даже готовые решения вроде DB GPT для приватного общения с данными.

Особенно выделяются:
▪️LangServe — развёртывание цепочек как REST API от создателей LangChain
▪️GPTCache — семантическое кеширование запросов к LLM
▪️SuperAGI — фреймворк для автономных агентов с продвинутым планированием

🤖 GitHub

@sqlhub

Читать полностью…

Data Science. SQL hub

🧩 SQLite Internal — визуализатор структуры .sqlite-файлов

Если ты хочешь понять внутреннюю структуру SQLite, то этот инструмент — находка. SQLite Internal — веб-приложение для интерактивного анализа .sqlite-файлов.

📝 Что умеет:
• Загрузи .sqlite и изучай структуру файла
• Визуализация страниц, заголовков и схем
• Всё работает локально в браузере

💡 Технологии:
• TypeScript, Tailwind CSS, Vite
• GitHub — invisal/sqlite-internal

🧪 Попробуй онлайн: https://sqlite-internal.pages.dev

#SQLite #DevTools #WebApp

@sqlhub

Читать полностью…

Data Science. SQL hub

Muse Group — the team behind Ultimate Guitar, MuseScore, Audacity and more — invites you to an online meetup on how analytics drives top digital products in the creative industry.


🔵 April 22, 6:00 PM (GMT+3)
🔵 Online
🔵 Free


At the meetup, you’ll:

— Utilizeyears of development on your own A/B testing platform.
— Learn how to measure the impact of changes without running experiments.
— Master tools that let you conduct research using p-values and confidence intervals instead of simple "before and after" comparisons.

We’d love to see you there!

Sign up here: https://www.tickettailor.com/events/musemeetup

Читать полностью…

Data Science. SQL hub

📌 Kor — прототип для извлечения структуры из текста через LLM

Проект имеет интеграцию с LangChain, но предлагает свой подход: вместо JSON-режима или function calling он полагается на шаблонизацию промптов. Это позволяет работать даже с моделями, не поддерживающими новые режимы вроде GPT-4-turbo.

Новая версия 1.0.0 принесла совместимость с Pydantic v2, хотя разработчики предупреждают, что работа может заметно замедлиться

🤖 GitHub

@sqlhub

Читать полностью…
Subscribe to a channel