🚀 Вышел стабильный релиз MariaDB 11.8.2 — первая стабильная версия новой ветки с долгосрочной поддержкой (LTS, 5 лет). Также доступен предварительный релиз MariaDB 12.0.1.
🔹 Что нового в 11.8 по сравнению с предыдущим LTS 11.4:
🧠 Векторный поиск
Добавлены возможности из проекта *MariaDB Vector*:
• Новый тип данных
• Функции для сравнения векторов:
• Поддержка SIMD-ускорений: AVX2/AVX512, ARM, Power10
• Производительность векторных запросов выше Redis, pgvector, qdrant и weaviate
🧭 Поддержка времени до 2106 года
Решена проблема 2038 — TIMESTAMP теперь работает до 2106 года
🌍 Новая кодировка и локаль
По умолчанию теперь
Обновлены правила сортировки (Collation) до UCA 14.0.0
🔐 Новый механизм аутентификации: PARSEC
• PBKDF2 + ed25519
• Безопасная верификация пароля
💾 Многопоточность в дампе и импорте
•
• Поддержка резервного копирования как одной, так и нескольких БД
📈 Ускоренная репликация
• Новый механизм binlog-сегментации
• Асинхронный rollback после сбоев
• Параметр
🛠️ Новые фичи и команды
• Таблица
• Команды
• Возврат значений типа
• Поддержка Oracle-подобных SEQUENCE
• Функции
•
• Ограничения на размер временных файлов (`max_tmp_session_space_usage`, `max_tmp_total_space_usage`)
⚙️ Оптимизации
• Ускоренные
• Улучшена работа с виртуальными столбцами
• Авто-оптимизация кодировок
💡 Контекст
MariaDB — форк MySQL, с дополнительными хранилищами и расширенными возможностями, не зависящий от Oracle. Используется в RHEL, SUSE, Fedora, Debian, Arch и проектах вроде Wikipedia и Google Cloud SQL.
📌 Если вы работаете с векторным поиском, большими БД или вам важно долгосрочное сопровождение — MariaDB 11.8 теперь must-have.
https://mariadb.com/kb/en/mariadb-11-4-2-release-notes/
🔹 Что нового в 11.8 по сравнению с предыдущим LTS 11.4:
🧠 Векторный поиск
Добавлены возможности из проекта *MariaDB Vector*:
• Новый тип данных
VECTOR • Функции для сравнения векторов:
VEC_DISTANCE_EUCLIDEAN(), VEC_DISTANCE_COSINE(), VEC_DISTANCE() • Поддержка SIMD-ускорений: AVX2/AVX512, ARM, Power10
• Производительность векторных запросов выше Redis, pgvector, qdrant и weaviate
🧭 Поддержка времени до 2106 года
Решена проблема 2038 — TIMESTAMP теперь работает до 2106 года
🌍 Новая кодировка и локаль
По умолчанию теперь
utf8mb4, полная поддержка emoji Обновлены правила сортировки (Collation) до UCA 14.0.0
🔐 Новый механизм аутентификации: PARSEC
• PBKDF2 + ed25519
• Безопасная верификация пароля
💾 Многопоточность в дампе и импорте
•
mariadb-dump и mariadb-import теперь используют многопоточность • Поддержка резервного копирования как одной, так и нескольких БД
📈 Ускоренная репликация
• Новый механизм binlog-сегментации
• Асинхронный rollback после сбоев
• Параметр
slave_replication_delay_abort_timeout для отмены "зависших" транзакций🛠️ Новые фичи и команды
• Таблица
USERS для контроля доступа • Команды
FLUSH GLOBAL STATUS, REPAIR TABLE ... FORCE, SHOW CREATE SERVER • Возврат значений типа
ROW из хранимых процедур • Поддержка Oracle-подобных SEQUENCE
• Функции
UUID_v4, UUID_v7 •
FORMAT_BYTES(1000000000) = 953.67 MiB • Ограничения на размер временных файлов (`max_tmp_session_space_usage`, `max_tmp_total_space_usage`)
⚙️ Оптимизации
• Ускоренные
UPDATE/DELETE, SUBSTR(...) = const • Улучшена работа с виртуальными столбцами
• Авто-оптимизация кодировок
💡 Контекст
MariaDB — форк MySQL, с дополнительными хранилищами и расширенными возможностями, не зависящий от Oracle. Используется в RHEL, SUSE, Fedora, Debian, Arch и проектах вроде Wikipedia и Google Cloud SQL.
📌 Если вы работаете с векторным поиском, большими БД или вам важно долгосрочное сопровождение — MariaDB 11.8 теперь must-have.
https://mariadb.com/kb/en/mariadb-11-4-2-release-notes/
👍7❤2🥰2👀1
🎙️ ElevenLabs представила свою новую модель синтеза речи v3, которая стирает границы между искусственным и человеческим голосом. Новая архитектура позволяет тонко управлять эмоциями, интонациями и даже невербальными звуками вроде смеха или вздохов через специальные аудиотеги в тексте.
Из интересного: поддержка 70+ языков и режим диалога, где модель естественно обрабатывает перебивания и смену эмоций между персонажами. Это открывает новые возможности для создателей аудиокниг, игровых студий и разработчиков чат-ботов. Пока технология находится в раннем доступе, но уже сейчас можно сказать, что это огромный скачок в области TTS.
🔗 Ссылка - *клик*
Из интересного: поддержка 70+ языков и режим диалога, где модель естественно обрабатывает перебивания и смену эмоций между персонажами. Это открывает новые возможности для создателей аудиокниг, игровых студий и разработчиков чат-ботов. Пока технология находится в раннем доступе, но уже сейчас можно сказать, что это огромный скачок в области TTS.
🔗 Ссылка - *клик*
❤5👍4🤨3👏2🥰1🥱1
🦆 DuckDB + Python: мощный тандем для аналитики прямо на ноутбуке
Если вы работаете с аналитикой данных и вам важна скорость, гибкость и простота — попробуйте связку DuckDB + Python. Это встроенная колонко-ориентированная СУБД, которая отлично работает с pandas, Parquet и SQL-запросами — прямо в памяти, без сервера.
📌 Что такое DuckDB?
- Лёгкая SQL-база данных
- Работает как SQLite, но оптимизирована под аналитику
- Отлично справляется с файлами Parquet и Arrow
- Идеально для обработки больших наборов данных локально
🔗 Возможности интеграции с Python:
- Прямой запрос к pandas DataFrame:
- Работа с файлами:
- Использование SQL + pandas + визуализация в одном блоке
💡 Преимущества:
- 🚀 Быстрее pandas при агрегациях и фильтрации
- 🔗 Поддержка Parquet, CSV, JSON, Arrow и др.
- 🧠 SQL как первый язык аналитики — работает из коробки
- 🛠 Не требует отдельного сервера или установки СУБД
🧪 Это отличное решение для data science проектов, анализа больших логов, локальных ETL-задач и экспериментальной работы с данными.
🔍 Подробный гайд
#Python #DuckDB #DataAnalytics #Pandas #SQL #ETL
➡ SQL Community | Чат
Если вы работаете с аналитикой данных и вам важна скорость, гибкость и простота — попробуйте связку DuckDB + Python. Это встроенная колонко-ориентированная СУБД, которая отлично работает с pandas, Parquet и SQL-запросами — прямо в памяти, без сервера.
📌 Что такое DuckDB?
- Лёгкая SQL-база данных
- Работает как SQLite, но оптимизирована под аналитику
- Отлично справляется с файлами Parquet и Arrow
- Идеально для обработки больших наборов данных локально
🔗 Возможности интеграции с Python:
- Прямой запрос к pandas DataFrame:
con.execute("SELECT * FROM df WHERE col > 10").df()
- Работа с файлами:
con.execute("SELECT COUNT(*) FROM 'data.parquet'")
- Использование SQL + pandas + визуализация в одном блоке
💡 Преимущества:
- 🚀 Быстрее pandas при агрегациях и фильтрации
- 🔗 Поддержка Parquet, CSV, JSON, Arrow и др.
- 🧠 SQL как первый язык аналитики — работает из коробки
- 🛠 Не требует отдельного сервера или установки СУБД
🧪 Это отличное решение для data science проектов, анализа больших логов, локальных ETL-задач и экспериментальной работы с данными.
🔍 Подробный гайд
#Python #DuckDB #DataAnalytics #Pandas #SQL #ETL
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤5👍4🥰1👏1
🔥 Успех в IT = скорость + знания + окружение
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
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/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://t.me/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://t.me/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
Здесь ты найдёшь всё это — коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Собеседования DS: t.me/machinelearning_interview
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/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://t.me/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://t.me/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Подпишись, если хочешь быть в числе тех, кого зовут в топовые проекты!
❤2👍1🔥1
Forwarded from Python/ django
py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.
📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- ⚡ Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}
💡 Примеры установки:
pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу
🔧 Пример (SQLAlchemy)
python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None
py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.
Полноценный PostgreSQL — без его тяжеловесности.
▪Github
@pythonl
#python #sql #PostgreSQL #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4🥰3
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
Модель заточена и оптимизирована для интеграции с Model Context Protocol (MCP).
📊 На SimpleQA (agentic / MCP) — Jan-nano набирает 80.7
Это серьёзный результат для модели такого размера!
Модель работает через Jan — open-source альтернативу ChatGPT, которая запускается локально.
🔍 Jan-nano — ещё один пример того, как компактные модели могут конкурировать с большими моделями благодаря обучению и агентной архитектуре.
▪ HF: https://huggingface.co/Menlo/Jan-nano
@ai_machinelearning_big_data
#LLM #JanNano #MCP #OpenSourceAI
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍4🔥3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Database Build - инструмент для работы с базами данным с капелькой нейросетей
Можно написать «Создай базу для пиццерии» и получить готовую структуру с таблицами, связями и диаграммами.
Получившиеся таблицы можно править, генерить в них тестовые данные, а потом импортировать в SQL или задеплоить на Supabase (а скоро подвезут и AWS).
Это бесплатно
Можно написать «Создай базу для пиццерии» и получить готовую структуру с таблицами, связями и диаграммами.
Получившиеся таблицы можно править, генерить в них тестовые данные, а потом импортировать в SQL или задеплоить на Supabase (а скоро подвезут и AWS).
Это бесплатно
❤9👍4🔥2
🧠 Хитрая SQL-задача на собеседование: "Пропущенный день"
Представь таблицу заказов:
🎯 Задача: Найти пользователей, у которых были два заказа, сделанных с пропуском ровно одного дня
(например: 1 мая и 3 мая), но без других заказов между ними.
🛑 Не учитываются пары, где между ними был хоть один заказ.
---
💡 Решение с LEAD() + NOT EXISTS:
🔍 Подвох: многие находят заказы “через день”, но забывают проверить, не было ли чего-то между ними.
Такие задачки отлично проверяют знание оконных функций и аналитического мышления.
Представь таблицу заказов:
orders (
id INT,
user_id INT,
order_date DATE
)🎯 Задача: Найти пользователей, у которых были два заказа, сделанных с пропуском ровно одного дня
(например: 1 мая и 3 мая), но без других заказов между ними.
🛑 Не учитываются пары, где между ними был хоть один заказ.
---
💡 Решение с LEAD() + NOT EXISTS:
WITH ranked_orders AS (
SELECT
user_id,
order_date,
LEAD(order_date) OVER (PARTITION BY user_id ORDER BY order_date) AS next_order
FROM orders
),
valid_pairs AS (
SELECT
user_id
FROM ranked_orders ro
WHERE DATE_DIFF(ro.next_order, ro.order_date, DAY) = 2
AND NOT EXISTS (
SELECT 1 FROM orders o
WHERE o.user_id = ro.user_id
AND o.order_date > ro.order_date
AND o.order_date < ro.next_order
)
)
SELECT DISTINCT user_id FROM valid_pairs;
🔍 Подвох: многие находят заказы “через день”, но забывают проверить, не было ли чего-то между ними.
Такие задачки отлично проверяют знание оконных функций и аналитического мышления.
❤11👍5🔥2
🧠 Продвинутая SQL-задача: "Скользящий максимум с условиями"
Допустим, у вас есть таблица
🎯 Задача:
Для каждой транзакции нужно найти максимальный
- За последние 7 дней, включая текущую
- Только по этому же
- Только по статусу
📥 Ожидаемый вывод:
🧩 Решение:
⚠️ Подводные камни:
- Без индексов по
- Используется подзапрос, а не
- В PostgreSQL стоит учитывать точные границы
🚀 Навыки, которые проверяются:
- Оптимизация временных окон
- Группировка и фильтрация с условиями
- Агрегации по диапазонам
💡 Усложнение:
Хочешь ещё интереснее? Добавь группировку по разным
Допустим, у вас есть таблица
transactions:
CREATE TABLE transactions (
id SERIAL PRIMARY KEY,
user_id INT,
amount NUMERIC,
status TEXT,
created_at TIMESTAMP
);
🎯 Задача:
Для каждой транзакции нужно найти максимальный
amount:- За последние 7 дней, включая текущую
- Только по этому же
user_id - Только по статусу
'confirmed'📥 Ожидаемый вывод:
| id | user_id | amount | created_at | max_amount_last_7d |
|----|---------|--------|--------------------|---------------------|
| 1 | 101 | 100 | 2024-01-01 10:00 | 100 |
| 2 | 101 | 150 | 2024-01-04 12:00 | 150 |
| 3 | 101 | 120 | 2024-01-07 09:00 | 150 |
| 4 | 101 | 90 | 2024-01-15 14:00 | 120 |
🧩 Решение:
SELECT
t1.id,
t1.user_id,
t1.amount,
t1.created_at,
(
SELECT MAX(t2.amount)
FROM transactions t2
WHERE t2.user_id = t1.user_id
AND t2.status = 'confirmed'
AND t2.created_at BETWEEN t1.created_at - INTERVAL '7 days' AND t1.created_at
) AS max_amount_last_7d
FROM transactions t1;
⚠️ Подводные камни:
- Без индексов по
user_id, status, created_at запрос будет тормозить - Используется подзапрос, а не
window function, потому что окно — динамическое - В PostgreSQL стоит учитывать точные границы
BETWEEN при сравнении времени🚀 Навыки, которые проверяются:
- Оптимизация временных окон
- Группировка и фильтрация с условиями
- Агрегации по диапазонам
💡 Усложнение:
Хочешь ещё интереснее? Добавь группировку по разным
status, или перепиши на JOIN с LATERAL.🔥9❤6🥰2😱1
Media is too big
VIEW IN TELEGRAM
SQL за полтора часа в одном видео! Полный базовый курс по SQL. Базы данных курс для начинающих!
00:00:00 Введение
00:02:43 Платные курсы и что изучать дальше
00:04:55 Коротко об онлайн редакторе
00:07:11 Что такое база данных
00:08:10 Что такое CRUD
00:10:05 Запрос на создание первой таблицы
00:11:57 Типы данных у атрибутов(колонок) (DATA TYPES)
00:17:26 Прописываем атрибуты(колонки) первой таблицы
00:21:07 Создаем первую таблицу (CREATE TABLE)
00:21:38 Проверка на наличие таблицы при создании (IF NOT EXISTS)
00:22:18 Запрос на удаление таблицы(DROP TABLE)
00:22:33 Проверка на наличие таблицы при удалении(IF EXISTS)
00:22:57 Запрос на добавление объекта в таблицу (INSER INTO table)
00:23:35 Запрос на чтение(получение) объектов из таблицы(SELECT * FROM table)
00:24:18 Модификаторы для атрибутов(колонок) таблицы(NOT NULL, DEFAULT, UNIQUE)
00:29:26 Изменение уже существующей таблицы(ALTER TABLE, ADD, DROP, RENAME, MODIFY COLUMN)
00:36:08 Удаление объектов из таблицы(DELETE FROM table)
00:37:06 Редактирование объекта в таблице(UPDATE table)
00:39:03 Первичный ключ(PRIMARY KEY)
00:45:37 Композиция в бд
00:50:38 "Иностранный" ключ(FOREIGN KEY)
00:57:26 Индексы в бд(INDEX)
00:59:24 Готовим данные для темы алиас, юнион и слияние таблиц
01:03:30 Слияние таблиц(INNER JOIN)
01:06:02 Слияние таблиц(LEFT JOIN)
01:06:53 Слияние таблиц(RIGHT JOIN)
01:07:26 Слияние таблиц(FULL JOIN/OUTER JOIN) и Union
01:09:04 Алиас(table AS alias)
01:12:18 Select Distinct в SQL
01:13:42 AND OR NOT в SQL
01:16:18 ORDER BY и LIMIT в SQL
01:17:35 MIN и MAX в SQL
01:18:25 COUNT SUM AVG в SQL
01:19:29 LIKE в SQL
01:21:31 IN и BETWEEN в SQL
01:22:50 GROUP BY в SQL
01:25:17 EXISTS в SQL
01:27:37 ANY и SOME в SQL
01:29:00 INSERT INTO в SQL
01:30:40 Отношения в базе данных
01:32:11 Отношения один к одному
01:33:09 Отношения один ко многим
01:34:09 Отношения многие ко многим
01:37:10 Отношения один к одному и один ко многим "через"
01:39:10 SQL инъекции
источник
#devops #девопс
00:00:00 Введение
00:02:43 Платные курсы и что изучать дальше
00:04:55 Коротко об онлайн редакторе
00:07:11 Что такое база данных
00:08:10 Что такое CRUD
00:10:05 Запрос на создание первой таблицы
00:11:57 Типы данных у атрибутов(колонок) (DATA TYPES)
00:17:26 Прописываем атрибуты(колонки) первой таблицы
00:21:07 Создаем первую таблицу (CREATE TABLE)
00:21:38 Проверка на наличие таблицы при создании (IF NOT EXISTS)
00:22:18 Запрос на удаление таблицы(DROP TABLE)
00:22:33 Проверка на наличие таблицы при удалении(IF EXISTS)
00:22:57 Запрос на добавление объекта в таблицу (INSER INTO table)
00:23:35 Запрос на чтение(получение) объектов из таблицы(SELECT * FROM table)
00:24:18 Модификаторы для атрибутов(колонок) таблицы(NOT NULL, DEFAULT, UNIQUE)
00:29:26 Изменение уже существующей таблицы(ALTER TABLE, ADD, DROP, RENAME, MODIFY COLUMN)
00:36:08 Удаление объектов из таблицы(DELETE FROM table)
00:37:06 Редактирование объекта в таблице(UPDATE table)
00:39:03 Первичный ключ(PRIMARY KEY)
00:45:37 Композиция в бд
00:50:38 "Иностранный" ключ(FOREIGN KEY)
00:57:26 Индексы в бд(INDEX)
00:59:24 Готовим данные для темы алиас, юнион и слияние таблиц
01:03:30 Слияние таблиц(INNER JOIN)
01:06:02 Слияние таблиц(LEFT JOIN)
01:06:53 Слияние таблиц(RIGHT JOIN)
01:07:26 Слияние таблиц(FULL JOIN/OUTER JOIN) и Union
01:09:04 Алиас(table AS alias)
01:12:18 Select Distinct в SQL
01:13:42 AND OR NOT в SQL
01:16:18 ORDER BY и LIMIT в SQL
01:17:35 MIN и MAX в SQL
01:18:25 COUNT SUM AVG в SQL
01:19:29 LIKE в SQL
01:21:31 IN и BETWEEN в SQL
01:22:50 GROUP BY в SQL
01:25:17 EXISTS в SQL
01:27:37 ANY и SOME в SQL
01:29:00 INSERT INTO в SQL
01:30:40 Отношения в базе данных
01:32:11 Отношения один к одному
01:33:09 Отношения один ко многим
01:34:09 Отношения многие ко многим
01:37:10 Отношения один к одному и один ко многим "через"
01:39:10 SQL инъекции
источник
#devops #девопс
❤12👍7🔥5💊1
🧠 Oracle SQL — совет для продвинутых: аналитические функции > JOIN + GROUP BY
Если ты всё ещё используешь
🔧 Пример: вместо этого
🔥 Используй:
📌 Что это даёт:
•
•
•
⚡ Аналитические функции в Oracle — это:
• меньше кода
• выше производительность
• идеально для дашбордов, отчётов и сложной аналитики
🧠 Вывод: перестань бороться с GROUP BY — используй
Если ты всё ещё используешь
GROUP BY + подзапросы для расчёта рангов, окон и сумм — переходи на аналитические функции. Они читаются проще, работают быстрее и избавляют от лишних джойнов.🔧 Пример: вместо этого
SELECT department_id, employee_id, salary
FROM (
SELECT department_id, employee_id, salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rnk
FROM employees
)
WHERE rnk = 1;
🔥 Используй:
SELECT *
FROM (
SELECT e.*, RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rnk
FROM employees e
)
WHERE rnk = 1;
📌 Что это даёт:
•
RANK(), DENSE_RANK(), ROW_NUMBER() — вычисляются без лишнего JOIN •
PARTITION BY делит данные по группам без агрегирования •
OVER (...) даёт гибкость без переписывания логики⚡ Аналитические функции в Oracle — это:
• меньше кода
• выше производительность
• идеально для дашбордов, отчётов и сложной аналитики
🧠 Вывод: перестань бороться с GROUP BY — используй
OVER() и управляй данными как потоком.❤7💊4👀3👍2🔥2
🌐 DeepBI — инновационная платформа для анализа данных с помощью ИИ, которая превращает сложные запросы в простые диалоги. Этот инструмент позволяет исследовать данные из MySQL, PostgreSQL, CSV и других источников, используя естественный язык вместо SQL.
Инструмент умеет генерировать персистентные визуализации и дашборды через чат-интерфейс. Платформа поддерживает мультиязычность (английский/китайский) и работает на Windows, Linux и macOS. Для тестирования доступны Docker-образы и EXE-установщик.
🤖 GitHub
@data_analysis_ml
Инструмент умеет генерировать персистентные визуализации и дашборды через чат-интерфейс. Платформа поддерживает мультиязычность (английский/китайский) и работает на Windows, Linux и macOS. Для тестирования доступны Docker-образы и EXE-установщик.
🤖 GitHub
@data_analysis_ml
❤3👍3🔥2
Forwarded from Machinelearning
🤖 Gemini Robotics выпускает автономный AI для роботов
Google представили Gemini Robotics On-Device — первую модель, объединяющую зрение, язык и действия, которая работает прямо на роботах, без постоянного подключения к интернету.
🔍 Что делает эту модель особенной:
🔹 Объединяет универсальность и точность Gemini, но работает локально
🔹 Моделька справляется со сложными задачами с двумя руками (манипуляции, сборка, перенос)
🔹 Обучается новым действиям всего по 50–100 демкам
Модель уже поддерживает разные типы роботов — от гуманоидов до промышленных двухруких манипуляторов. И это несмотря на то, что изначально она была обучена только на датасете ALOHA под управлением человеческих инструкций.
🛠 В комплекте выходит SDK Gemini Robotics — для разработчиков, которые хотят дообучить модель под свои нужды, включая тесты в физическом симуляторе MuJoCo.
🌐 Полностью автономная работа — идеально для кейсов с плохой связью или требованиями к высокой скорости отклика.
Gemini Robotics продолжает двигаться к будущему, где AI становится частью физического мира.
👉 Подробнее: https://goo.gle/gemini-robotics-on-device
@ai_machinelearning_big_data
#ai #robots #vlm #google #Gemini
Google представили Gemini Robotics On-Device — первую модель, объединяющую зрение, язык и действия, которая работает прямо на роботах, без постоянного подключения к интернету.
🔍 Что делает эту модель особенной:
🔹 Объединяет универсальность и точность Gemini, но работает локально
🔹 Моделька справляется со сложными задачами с двумя руками (манипуляции, сборка, перенос)
🔹 Обучается новым действиям всего по 50–100 демкам
Модель уже поддерживает разные типы роботов — от гуманоидов до промышленных двухруких манипуляторов. И это несмотря на то, что изначально она была обучена только на датасете ALOHA под управлением человеческих инструкций.
🛠 В комплекте выходит SDK Gemini Robotics — для разработчиков, которые хотят дообучить модель под свои нужды, включая тесты в физическом симуляторе MuJoCo.
🌐 Полностью автономная работа — идеально для кейсов с плохой связью или требованиями к высокой скорости отклика.
Gemini Robotics продолжает двигаться к будущему, где AI становится частью физического мира.
👉 Подробнее: https://goo.gle/gemini-robotics-on-device
@ai_machinelearning_big_data
#ai #robots #vlm #google #Gemini
🤨3👍2
💎 Tencent выводит 3D-генерацию на новый уровень с обновлением Hunyuan3D.
Китайский технологический гигант продолжает совершенствовать свою открытую нейросеть для создания трёхмерных объектов. В версии 2.1 модель научилась учитывать физические свойства материалов при рендеринге — теперь свет реалистично преломляется на стекле, отражается от металла и рассеивается на тканях.
Нейросеть работает по принципу двухэтапной генерации: сначала создаются изображения объекта с разных ракурсов, затем они преобразуются в 3D-модель. При этом ии остаётся доступным для широкого круга пользователей, ее базовые функции работают на видеокартах от 10 ГБ памяти.
🔗 Ссылка - *клик*
Китайский технологический гигант продолжает совершенствовать свою открытую нейросеть для создания трёхмерных объектов. В версии 2.1 модель научилась учитывать физические свойства материалов при рендеринге — теперь свет реалистично преломляется на стекле, отражается от металла и рассеивается на тканях.
Нейросеть работает по принципу двухэтапной генерации: сначала создаются изображения объекта с разных ракурсов, затем они преобразуются в 3D-модель. При этом ии остаётся доступным для широкого круга пользователей, ее базовые функции работают на видеокартах от 10 ГБ памяти.
🔗 Ссылка - *клик*
❤6🥱2👍1🔥1🤨1
🧠 SQL-задача для профи: "Ловушка NULL в подзапросе"
Условие:
Есть две таблицы:
✔️ Задание:
Выведите всех сотрудников, которые работают в неактивных отделах.
Если department_id у сотрудника NULL, таких сотрудников выводить не нужно.
❗️Подводный камень:
Решение, которое интуитивно приходит в голову, не работает правильно:
📉 Почему это ошибка:
Если в departments есть хотя бы одна строка, где is_active = true, но id = NULL, то NOT IN (...) будет сравнивать с NULL, а NULL NOT IN (...) всегда возвращает UNKNOWN, то есть — ничего не вернёт.
✅ Правильное решение:
💡 Почему работает:
JOIN отсекает NULL по department_id сразу.
Фильтр по is_active = false работает без ловушек NULL.
Сотрудники без департамента автоматически исключаются.
🔎 Усложнение для профи:
Что произойдёт, если в таблице departments есть id = NULL, is_active = true?
Ответ: ничего — JOIN по NULL никогда не срабатывает. Но если используете NOT EXISTS, нужно быть осторожным.
🧩 Вывод:
Когда дело касается NOT IN и NULL, всегда проверяйте подзапрос. Лучше переходите на JOIN или NOT EXISTS:
📌 Запомни:
NULL ломает IN / NOT IN, но не ломает JOIN / EXISTS.
➡ SQL Community | Чат
Условие:
Есть две таблицы:
CREATE TABLE employees (
id INT PRIMARY KEY,
name TEXT,
department_id INT
);
CREATE TABLE departments (
id INT PRIMARY KEY,
name TEXT,
is_active BOOLEAN
);
Выведите всех сотрудников, которые работают в неактивных отделах.
Если department_id у сотрудника NULL, таких сотрудников выводить не нужно.
❗️Подводный камень:
Решение, которое интуитивно приходит в голову, не работает правильно:
SELECT *
FROM employees
WHERE department_id NOT IN (
SELECT id FROM departments WHERE is_active = true
);
📉 Почему это ошибка:
Если в departments есть хотя бы одна строка, где is_active = true, но id = NULL, то NOT IN (...) будет сравнивать с NULL, а NULL NOT IN (...) всегда возвращает UNKNOWN, то есть — ничего не вернёт.
✅ Правильное решение:
SELECT e.*
FROM employees e
JOIN departments d ON e.department_id = d.id
WHERE d.is_active = false;
💡 Почему работает:
JOIN отсекает NULL по department_id сразу.
Фильтр по is_active = false работает без ловушек NULL.
Сотрудники без департамента автоматически исключаются.
🔎 Усложнение для профи:
Что произойдёт, если в таблице departments есть id = NULL, is_active = true?
Ответ: ничего — JOIN по NULL никогда не срабатывает. Но если используете NOT EXISTS, нужно быть осторожным.
🧩 Вывод:
Когда дело касается NOT IN и NULL, всегда проверяйте подзапрос. Лучше переходите на JOIN или NOT EXISTS:
SELECT e.*
FROM employees e
WHERE EXISTS (
SELECT 1
FROM departments d
WHERE d.id = e.department_id AND d.is_active = false
);
📌 Запомни:
NULL ломает IN / NOT IN, но не ломает JOIN / EXISTS.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5❤2