TGViewer
Channel Public Channel
SQL и Анализ данных

SQL и Анализ данных

@databases_tg

Базы данных и всё, что с ними связано!

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

РКН № 6766085482
Subscribers
12.5K
Photos
750
Videos
90
Links
764

Showing posts older than #1220 · Back to latest

Older Posts 20 shown
Post #1218 3.64K
⚠️ SQL-совет по безопасности, который игнорируют даже опытные разработчики

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

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

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

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


SELECT * FROM users WHERE email = ?


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

🧠 Бонус: параметризация улучшает кеширование запросов и часто ускоряет работу БД.
  • 👍 11
  • ❤ 2
  • 💊 2
  • 🔥 1
Post #1217 2.55K

Forwarded from Machinelearning

✔️ 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
  • ❤ 2
  • 🤓 2
  • 👍 1
Post #1216 2.72K
🎯 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.

Быстро, чисто, без лишних подзапросов.
  • 🔥 19
  • 👍 5
  • ❤ 2
  • 👀 2
Post #1214 3.17K
⚡️ SQL-совет:

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

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




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


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

Мало кто использует условные индексы, а зря. Они умеют избавлять от лишних full scan почти бесплатно.
  • 👍 12
  • ❤ 5
  • 🔥 4
Post #1212 3.26K
🚀 Обрабатывайте данные больше объёма 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
Post #1211 3.33K
⚡️ SQL: быстрый поиск по тексту без LIKE '%...%' !!!

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

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

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




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

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

SELECT id, title
FROM articles
WHERE to_tsvector('russian',
coalesce(title,'') ' ' coalesce(body,''))
@@ plainto_tsquery('russian', 'sql поиск производительность');
  • 🔥 7
  • ❤ 3
  • 👍 3
Post #1209 3.05K
🖥 SQL СОВЕТ

Когда нужно взять по одному самому свежему событию на пользователя, не делай вложенные подзапросы с MAX и лишние JOIN, используй оконную функцию ROW_NUMBER по разделу и упорядочиванию, так запрос будет понятнее и часто быстрее на реальных данных.
  • 👍 13
  • 🔥 3
  • 🥱 1
Post #1208 3.71K
🔐 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
  • 👍 4
  • ❤ 2
Post #1207 3.77K
🖥 SQL большой гайд. Как правильно выбрать ORM

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

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

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

https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/
  • 🔥 4
  • ❤ 2
  • 👍 2
  • 😁 1
Post #1204 4.1K
🚀 ХИТРЫЙ 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';
  • 👍 15
  • ❤ 2
  • 💊 2
  • 🔥 1
Post #1203 3.18K
  • ❤ 3
  • 🔥 2
Post #1201 3.18K
🖥 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
  • 👍 16
  • ❤ 4
  • 🥰 2
Post #1199 3.03K
Трюк дня. Найти медиану

Предположим, есть таблица, содержащая в столбце 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
  • 👍 7
  • ❤ 2
Post #1194 3.31K
🌊 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
Post #1193 3.95K
📊 Подробный практический гайд по статистике на Python

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

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

🟠Гайд
  • ❤ 6
  • 👍 4
  • 🔥 1
Post #1191 4.04K
⚡️ Бесплатный 7-часовой курс MIT по генеративному ИИ

MIT выложил полный интенсив по современным генмоделям — от LLM до диффузионных моделей. Разбирают архитектуры, принципы обучения, практические применения и ключевые идеи, которые лежат в основе сегодняшних систем.

Подойдёт тем, кто хочет быстро собрать цельную картину без воды.

Курс: https://www.youtube.com/playlist?list=PLXV9Vh2jYcjbnv67sXNDJiO8MWLA3ZJKR
  • ❤ 3
  • 👍 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →