SQL и Анализ данных – Telegram
SQL и Анализ данных
12.5K subscribers
665 photos
62 videos
3 files
680 links
Базы данных и всё, что с ними связано!

Сотрудничество: @haarrp

РКН № 6520279766
Download Telegram
📊 Подробный практический гайд по статистике на Python

Этот практический гайд по статистике на Python - ваш надёжный проводник в мир анализа, визуализации и интерпретации данных.

От простых описательных показателей до регрессий и временных рядов — с примерами, кодом и реальными задачами. Всё, что нужно, чтобы уверенно применять статистику на практике.

🟠Гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥1
🌊 ETL на стероидах: стриминг данных Postgres в реальном времени на Rust 🦀

Supabase выкатили интересный open-source фреймворк - supabase/etl, который позволяет стримить данные из Postgres куда угодно в реальном времени.

Это набор простых, модульных Rust-блоков, из которых можно собрать собственный конвейер Change Data Capture (CDC). Вы получаете полный контроль над тем, как обрабатывать изменения в базе и куда их отправлять — без тяжёлых платформ и сложных конфигов.

Что делает этот фреймворк полезным:

- Прямой стриминг изменений из Postgres (CDC)
- Rust — значит скорость, надёжность и низкие накладные расходы
- Гибкие компоненты: можно строить свои конвейеры под любые нужды
- Подходит для интеграций, аналитики, событийных систем, real-time обновлений
- Легче и прозрачнее, чем классические ETL/ELT-платформы

По сути, это конструктор, из которого можно быстро собрать real-time data pipeline:
достал изменения из Postgres → преобразовал → отправил в Kafka, ClickHouse, S3, API — куда угодно.

Если вы работаете с потоковыми данными, аналитикой или микросервисами - стоит попробовать. Rust + CDC - это мощное сочетание для стабильных и быстрых пайплайнов.

https://github.com/supabase/etl
4👍3🔥2
🔥 Подборка полезных ресурсов для программистов.

Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: 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
Разработка игр: https://news.1rj.ru/str/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: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy
Папка Linux:https://news.1rj.ru/str/addlist/w4Doot-XBG4xNzYy

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

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

Сохрани себе, чтобы не потерять!
👍2
Какой тип данных в PostgreSQL используется для хранения двоичных данных?
Anonymous Quiz
5%
A) TEXT
51%
B) BYTEA
34%
C) BLOB
10%
D) JSON
Конкурс для аналитиков! Требуется эксперт на продуктовый А/Б-эксперимент

Международная IT-компания Garage Eight вместе с Данилой Елистратовым собрали классный аналитический кейс, на котором каждый может прочелленджить свою экспертность.

История следующая — в крупном таксопарке «Датапарк» назревает кризис. Заказы поступают без остановки, но водителей не хватает. Чтобы спасти ситуацию, команда таксопарка запустила продуктовый эксперимент. Но ей нужна помощь крутого аналитика, чтобы разобраться, все ли правильно работает и стоит ли выкатывать новую механику на весь парк.

Задачи:
— убедиться, что сплит-система A/B-теста «Датапарка» работает верно;
— посчитать результаты теста и понять, выгодна ли новая механика;
— предложить способ определять отложенные заказы;
— объяснить все менеджменту на понятной презентации.

Призы (^-^):
1 место — Симулятор от Karpov.Courses на выбор: Симулятор А/B-тестов, Симулятор data science или Симулятор аналитика. А также бомбер Garage Eight.
2 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
3 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
4 и 5 место — Наборы мерча от Garage Eight

Прием решений: до 2 декабря
Проверка: с 3 декабря по 10 декабря
Объявление победителей: 11 декабря
> Узнай все детали и забери материалы кейса здесь:
https://news.1rj.ru/str/Garage_DataPark_bot

Реклама. ООО "Гараж". ИНН 7810671708.erid: 2W5zFJhHCfz
1🔥1
Трюк дня. Найти медиану

Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.

Необходимо найти медиану для данного столбца.


Решение:
В PostgreSQL используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) FROM table;

В MS SQL также используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) OVER (PARTITION BY 1) FROM table;

В PARTITION BY можно внести столбец, по которому группируются данные. В данном случае мы использовали 1, чтобы посчитать медиану по всем данным столбца.

В Oracle используйте функцию MEDIAN:
SELECT MEDIAN (sales) OVER (PARTITION BY 1) FROM table;

Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.

/*задаем переменную row_index = -1, чтобы отсчет индекса начался с 0 */
SET @row_index := -1;

/*находим среднее двух значений в центре отсортированного набора. Охватывает те случаи, когда общее число записей четное*/
SELECT AVG (subq.sales) as median_value
FROM (
SELECT @row_index:=@row_index + 1 AS row_index, sales
FROM table
ORDER BY sales
) AS subq
WHERE subq.row_index
/*выбираем только значения в центре: одно если число записей нечетное и два если четное*/
IN (FLOOR(@row_index / 2) , CEIL(@row_index / 2));

Ответ: медиана = 4.

#tips
👍72
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 SQL ОПТИМИЗАЦИЯ ЧЕРЕЗ UNION ALL

Хитрый SQL-трюк, о котором мало кто знает: можно резко ускорить сложные фильтры, если вместо OR использовать UNION ALL - оптимизатор часто строит намного быстрее план выполнения.

Особенно это полезно, когда каждое условие может использовать свой индекс, а OR ломает весь индексный план. Подписывайся, больше фишек каждый день !


Медленно: OR ломает индексы
SELECT *
FROM users
WHERE status = 'active'
OR created_at > NOW() - INTERVAL '30 days';

-- Быстро: каждое условие использует свой индекс
SELECT * FROM users
WHERE status = 'active'
UNION ALL
SELECT * FROM users
WHERE created_at > NOW() - INTERVAL '30 days'
AND status <> 'active';


Видео: https://www.youtube.com/shorts/Irl3Ax6UePI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153🥰2
Что произойдет, если в PostgreSQL создать индекс с опцией INCLUDE и добавить туда столбец, который уже входит в ключ индекса?
Anonymous Quiz
20%
A) Ошибка создания индекса
18%
B) Столбец будет продублирован в индексe
50%
C) Столбец в INCLUDE игнорируется, так как он уже в ключе
12%
D) Индекс создастся, но с предупреждением
3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 ХИТРЫЙ SQL-СОВЕТ ПО ОПТИМИЗАЦИИ ЗАПРОСОВ

Одна из самых скрытых тормозящих привычек - везде писать SELECT *. Ты тащишь лишние колонки, ломаешь использование покрывающих индексов и нагружаешь память. Гораздо эффективнее выбирать только те поля, которые реально нужны в ответе, и делать по ним составной индекс. Тогда база может обслужить запрос прямо из индекса, без чтения таблицы с диска. Подписывайся, больше фишек каждый день !


-- плохой вариант: тянем все колонки
SELECT *
FROM orders
WHERE customer_id = 42
AND status = 'PAID';

-- лучше: только нужные поля (можно сделать covering index)
SELECT id, total_amount, paid_at
FROM orders
WHERE customer_id = 42
AND status = 'PAID';
👍152💊2🔥1
🖥 SQL большой гайд. Как правильно выбрать ORM

Эта статья - не про «как написать SELECT, а про настоящую инженерную работу: принципы нормализации, дизайн схем, практики оптимизации SQL, работа с транзакциями, и главное - как выбрать и использовать ORM так, чтобы он помогал, а не мешал.

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

Готовы? Тогда начинаем строить архитектуру, которую не стыдно масштабировать.

https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍2😁1
🔐 Postgresus - self-hosted инструмент для резервного копирования и мониторинга PostgreSQL базы данных

🔥 Возможности:
- создание бекапов по расписанию для PostgreSQL 13-18;
- уведомления в Telegram, Slack, Discord, если бекап сломался или база недоступна;
- хранение бекапов локально, в S3 или Google Drive;
- health check базы данных раз в минуту;
- Apache 2.0 лицензия (полностью открытый);

Запуск через Docker:
docker run -d 
--name postgresus
-p 4005:4005
-v ./postgresus-data:/postgresus-data
--restart unless-stopped
rostislavdugin/postgresus:latest


📌 GitHub
🔥7👍42
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 SQL СОВЕТ

Когда нужно взять по одному самому свежему событию на пользователя, не делай вложенные подзапросы с MAX и лишние JOIN, используй оконную функцию ROW_NUMBER по разделу и упорядочиванию, так запрос будет понятнее и часто быстрее на реальных данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3🥱1
Self-Hosted vs Managed PostgreSQL

Облачный провайдер Cloud.ru приглашает на вебинар 9 декабря в 11:00 по мск, где честно сравнят два подхода в управлении базами данных и разберут, с какими сложностями можно столкнуться при переходе на Managed PostgreSQL и как их избежать.

В программе:
😶‍🌫️ в чем ключевые отличия в эксплуатации Self-Hosted и Managed PostgreSQL

😶‍🌫️ какие задачи полностью автоматизирует облачный провайдер, а что остается под вашим контролем даже в managed-сервисе

😶‍🌫️ как быстро развернуть отказоустойчивый кластер Managed PostgreSQL в Cloud․ru и подключить к нему тестовое приложение


А в практической части будут создавать кластер с нуля с демонстрацией всех этапов настройки и подключения.

Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ SQL: быстрый поиск по тексту без LIKE '%...%' !!!

Если в проде ты всё ещё ищешь по тексту через LIKE '%строка%', то рано или поздно упрёшься в медленные seq scan по всей таблице.

В PostgreSQL гораздо эффективнее сразу строить полнотекстовый индекс и искать через to_tsvector`/`tsquery.

Так запросы остаются понятными, а поиск по большим текстам начинает работать в разы быстрее.




CREATE TABLE articles (
id serial PRIMARY KEY,
noscript text,
body text
);

CREATE INDEX idx_articles_fts
ON articles
USING gin (to_tsvector('russian',
coalesce(noscript,'') ' ' coalesce(body,'')));

SELECT id, noscript
FROM articles
WHERE to_tsvector('russian',
coalesce(noscript,'') ' ' coalesce(body,''))
@@ plainto_tsquery('russian', 'sql поиск производительность');
🔥63👍2
🚀 Обрабатывайте данные больше объёма RAM с автоматическим spillover в DuckDB

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

DuckDB решает проблему иначе:
он автоматически сбрасывает промежуточные данные на диск, если памяти не хватает.

Пример:


duckdb.sql("SET memory_limit = '500MB'")
duckdb.sql("SET temp_directory = '/tmp/duckdb_temp'")

result = duckdb.sql(f"SELECT * FROM '{parquet_path}'").df()


Итог:
- у вас 10GB Parquet
- оперативка только 500MB
- DuckDB сам делает чанки + сбрасывает overflow на диск
- запрос успешно выполняется

Так вы работаете с большими данными без сложных пайплайнов и апгрейда железа.
4🥰1
⚡️ SQL-совет:

Используйте filtered indexes (условные индексы) - они ускоряют выборки на больших таблицах, но мало кто о них знает.

Пример для таблицы заказов, где статус "active" запрашивается чаще всего:




CREATE INDEX idx_orders_active
ON orders(status)
WHERE status = 'active';


Плюсы:
- индекс меньше → быстрее в памяти,
- оптимизатор выбирает его при типичных запросах,
- запросы по активным записям работают значительно быстрее.

Мало кто использует условные индексы, а зря. Они умеют избавлять от лишних full scan почти бесплатно.
👍104🔥4
🎯 SQL хитрый трюк, который реально экономит время

Когда выбираешь строки с максимумом/минимумом - не делай два запроса.
Получай значение и саму строку одной командой с оконной функцией:


SELECT *
FROM sales
QUALIFY ROW_NUMBER() OVER (ORDER BY amount DESC) = 1;


Что это даёт?

Не нужно сначала находить MAX(amount), а потом искать строку с этим значением.

Один запрос — меньше нагрузки, быстрее читается.

Работает для любых ранжирований: топ-N, bottom-N, лидеры, фильтрации по метрикам.

Меняешь DESC → ASC и получаешь минимум.
А если нужен топ-5 — просто ROW_NUMBER заменяешь на RANK или ограничиваешь < 5.

Быстро, чисто, без лишних подзапросов.
🔥18👍52👀2
Forwarded from Machinelearning
Media is too big
VIEW IN TELEGRAM
✔️ OpenAI наблюдает взрывной рост корпоративного ИИ.

Компания опубликовала отчет «The state of enterprise AI», который указывает на масштабную трансформацию бизнес-процессов под влиянием ИИ. База корпоративных клиентов превысила 1 миллион организаций, а число Enterprise-мест за год выросло в 9 раз.

Главным трендом стало качественное изменение сценариев использования: потребление ризонинг-токенов подскочило на 320%. Это говорит о том, что бизнес перешел от простых чат-ботов к решению многоступенчатых инженерных и аналитических задач.

Статистика выявила четкую корреляцию между глубиной погружения в технологии и продуктивностью. Сотрудники, использующие GPT-5 Thinking и Deep Research, экономят более 10 часов в неделю, при этом потребляя в 8 раз больше ресурсов модели, чем обычные пользователи. Особенно заметен разрыв в разработке: там генерируют код через ИИ в 17 раз активнее.
openai.com

✔️ Anthropic передала управление протоколом MCP в некоммерческий фонд.

Model Context Protocol передан организации Agentic AI Foundation, действующей в структуре Linux Foundation. Это стратегический шаг: технология универсального стандарта для подключения ИИ-моделей к внешним базам данных и инструментам, теперь гарантированно останется нейтральной и открытой. Соучредителями нового фонда вместе с Anthropic выступили OpenAI и Block, а поддержку инициативе оказывают Google, Microsoft и AWS.

За год существования MCP добился массовости: протокол используют ChatGPT, Gemini, Claude и VS Code, а число загрузок SDK превысило 97 млн. Переход под эгиду Linux Foundation ставит MCP в один ряд с Kubernetes и PyTorch. Теперь развитие стандарта будет определяться сообществом, что важно для создания совместимой экосистемы ИИ-агентов.
anthropic.com

✔️ Китай ограничит использование чипов Nvidia H200 вопреки разрешению на экспорт от США.

Власти КНР планируют ввести строгие ограничения на доступ и эксплуатацию Nvidia H200. Это решение готовится на фоне одобрения экспорта данных чипов со стороны администрации США. Несмотря на неожиданный «зеленый свет» из Вашингтона, Пекин демонстрирует осторожность в вопросах использования зарубежного железа.

Конкретные детали и механизмы новых барьеров пока не обнародованы. МИД Китая в ответ на запросы ограничился стандартным заявлением о важности взаимовыгодного сотрудничества, не прояснив судьбу поставок.
ft.com

✔️ Google выпустит умные очки с ИИ в 2026 году.

Google официально подтвердила планы по запуску линейки смарт-очков с ИИ в 2026 году. Техногигант намерен потеснить Марка Цукерберга на этом рынке, объединив усилия с Samsung, Warby Parker и корейским фешн-брендом Gentle Monster.

В разработке находятся 2 типа устройств. Первый вариант - оправа с аудиосистемой для голосового взаимодействия с ИИ, второй - модель с встроенными дисплеями для навигации и перевода в реальном времени. Чтобы сохранить вес и габариты на уровне обычных очков, инженеры решили перенести основную вычислительную нагрузку на сопряженный смартфон.
cnbc.com

✔️ Инженеры EPFL превратили панцири лобстеров в детали для биогибридных роботов.

В EPFL предложили неожиданное решение для робототехники: использование пищевых отходов в качестве готовых экзоскелетов. В рамках концепции, которую авторы назвали «робототехникой мертвой материи», панцири лобстеров перерабатываются в функциональные механические узлы.

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

Инновация решает сразу две задачи: снижает стоимость производства и уменьшает углеродный след, превращая отходы в ресурсы.
news.epfl.ch


@ai_machinelearning_big_data

#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤓2👍1
⚠️ SQL-совет по безопасности, который игнорируют даже опытные разработчики

Никогда не собирайте SQL-запросы через конкатенацию строк
(особенно когда добавляете параметры типа WHERE name = '" + user + "'").

Так вы открываете дверь для SQL-инъекций, даже если “данные вроде чистые”.

Всегда используйте параметризованные запросы или prepared statements
они экранируют данные, а движок БД понимает структуру отдельно от значений.

Пример безопасного подхода:


SELECT * FROM users WHERE email = ?


передаете значение отдельно.

🧠 Бонус: параметризация улучшает кеширование запросов и часто ускоряет работу БД.
👍112💊2🔥1