Forwarded from Machinelearning
⚛️ Исследователи из MIT разработали новый инструмент на основе генеративного ИИ, предназначенный для анализа сложных табличных данных в базах данных
Этот инструмент, называемый GenSQL, основан на языке программирования SQL и позволяет пользователям выполнять сложные статистические анализы без глубокого понимания внутренних механизмов. GenSQL может использоваться для прогнозирования, обнаружения аномалий, заполнения пропущенных значений, исправления ошибок и создания синтетических данных. Система интегрирует табличный набор данных и генеративную вероятностную модель ИИ, которая может учитывать неопределенность и корректировать процесс принятия решений на основе новых данных.
Одно из основных преимуществ GenSQL заключается в его способности обрабатывать сложные запросы, комбинируя анализ данных и модели. Например, система может определить вероятность того, что разработчик из Сиэтла знает язык программирования Rust, учитывая не только корреляцию между столбцами в базе данных, но и более сложные зависимости. Кроме того, вероятностные модели, используемые GenSQL, являются прозрачными и аудируемыми, что позволяет пользователям видеть, какие данные используются для принятия решений и получать оценку уровня неопределенности.
В ходе исследования GenSQL был сравнен с другими популярными методами, основанными на нейронных сетях, и показал значительно более высокую скорость и точность. Исследователи планируют продолжить разработку инструмента, сделав его более доступным и мощным, а также расширить его возможности для обработки больших объемов данных и обработки естественного языка, чтобы в конечном итоге создать эксперта по ИИ, подобного ChatGPT, для анализа баз данных.
📌 Источник
#базыданных #mit
@ai_machinelearning_big_data
Этот инструмент, называемый GenSQL, основан на языке программирования SQL и позволяет пользователям выполнять сложные статистические анализы без глубокого понимания внутренних механизмов. GenSQL может использоваться для прогнозирования, обнаружения аномалий, заполнения пропущенных значений, исправления ошибок и создания синтетических данных. Система интегрирует табличный набор данных и генеративную вероятностную модель ИИ, которая может учитывать неопределенность и корректировать процесс принятия решений на основе новых данных.
Одно из основных преимуществ GenSQL заключается в его способности обрабатывать сложные запросы, комбинируя анализ данных и модели. Например, система может определить вероятность того, что разработчик из Сиэтла знает язык программирования Rust, учитывая не только корреляцию между столбцами в базе данных, но и более сложные зависимости. Кроме того, вероятностные модели, используемые GenSQL, являются прозрачными и аудируемыми, что позволяет пользователям видеть, какие данные используются для принятия решений и получать оценку уровня неопределенности.
В ходе исследования GenSQL был сравнен с другими популярными методами, основанными на нейронных сетях, и показал значительно более высокую скорость и точность. Исследователи планируют продолжить разработку инструмента, сделав его более доступным и мощным, а также расширить его возможности для обработки больших объемов данных и обработки естественного языка, чтобы в конечном итоге создать эксперта по ИИ, подобного ChatGPT, для анализа баз данных.
📌 Источник
#базыданных #mit
@ai_machinelearning_big_data
👍8🔥3❤2
Она способна выполнять сложные операции миграции, гарантируя, что клиентские приложения продолжат функционировать во время обновления схемы базы данных.
Это достигается без блокировки базы данных и позволяет старым и новым версиям схемы работать одновременно, даже при внесении критических изменений. Это устраняет риски, связанные с миграциями схем, и значительно упрощает развертывание клиентских приложений, предоставляя возможность мгновенного отката.
Основные функции Pgroll включают:
- Миграции без простоев (без блокировки базы данных, без критических изменений).
- Поддержка одновременной работы старых и новых версий схемы.
- Автоматическое заполнение столбцов при необходимости.
- Мгновенный откат в случае возникновения проблем во время миграции.
- Работа с существующими схемами, нет необходимости начинать с нуля.
- Совместимость с Postgres 14.0 и более поздними версиями.
- Работа с любым сервисом Postgres (включая RDS и Aurora).
Pgroll написана на языке программирования Go, является кроссплатформенной и не требует внешних зависимостей.
https://github.com/xataio/pgroll
#postgres #migration #базыданных
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4❤3
В современном мире защиты данных крайне важно, чтобы пароли не хранились в виде обычного текста. Вместо этого используются их «закодированные отпечатки» – хеши, полученные в результате специального процесса хеширования. Это гарантирует, что даже при компрометации базы данных злоумышленник не сможет восстановить исходный пароль.
📌 Как это работает:
• При регистрации пароль проходит хеширование с применением современных алгоритмов (например, bcrypt, scrypt или Argon2), часто с добавлением уникальной соли для каждого пользователя.
• При авторизации введённый пароль снова хешируется, и полученный хеш сравнивается с тем, что хранится в базе. Совпадение означает, что введённый пароль верный.
📌 Почему так делают:
• Безопасность: Даже если база будет взломана, злоумышленник увидит лишь набор случайных символов, из которых восстановить оригинальный пароль практически невозможно.
• Секретность: Администраторы системы не имеют доступа к исходным паролям – хеши необратимы.
• Надёжность: Использование соли и, при необходимости, перца, значительно усложняет атаки с помощью радужных таблиц и повышает общую стойкость системы.
В итоге, пароли в базах данных – это не сами пароли, а их «отпечатки», которые можно сравнивать, но никак не восстановить. Этот подход напоминает замок, который открывается лишь при наличии правильного ключа, при этом сам ключ нигде не хранится.
#базыданных #безопасность #хеширование #пароли
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6🔥3🥰1
🧠 Хитрая задача по SQL: максимум без агрегатов?
У тебя есть таблица
📌 Задача:
Для каждого клиента (`customer_id`) найти наиболее поздний заказ (по
🔥 Уловка:
💡 Подумай:
Как ты решишь эту задачу только с
📥 Ожидаемый результат:
```
🧩 Подсказка:
Можно использовать
📎 Такой приём полезен:
• Когда нельзя использовать оконные функции
• Когда ты работаешь на старых версиях СУБД
• Когда нужна универсальность между MySQL / Oracle / SQLite
#SQL #Задача #БазыДанных #DataEngineering #Оптимизация
@sqlhub
У тебя есть таблица
orders
со следующими полями:
orders(id, customer_id, order_date, amount)
📌 Задача:
Для каждого клиента (`customer_id`) найти наиболее поздний заказ (по
order_date`), **не используя `GROUP BY
и `MAX()`**.🔥 Уловка:
DISTINCT ON
, TOP 1 WITH TIES
и RANK()
нельзя — ты ограничен базовым SQL, работающим на большинстве СУБД.💡 Подумай:
Как ты решишь эту задачу только с
JOIN
, WHERE
и EXISTS
?📥 Ожидаемый результат:
```sql
customer_id | order_id | order_date | amount
------------|----------|------------|--------
1001 | 87 | 2024-12-01 | 320.00
1002 | 91 | 2024-12-05 | 175.00
...
```
🧩 Подсказка:
Можно использовать
NOT EXISTS
, чтобы выбрать заказы, у которых нет более новых у того же клиента.
SELECT o.*
FROM orders o
WHERE NOT EXISTS (
SELECT 1
FROM orders o2
WHERE o2.customer_id = o.customer_id
AND o2.order_date > o.order_date
)
📎 Такой приём полезен:
• Когда нельзя использовать оконные функции
• Когда ты работаешь на старых версиях СУБД
• Когда нужна универсальность между MySQL / Oracle / SQLite
#SQL #Задача #БазыДанных #DataEngineering #Оптимизация
@sqlhub
👍8❤4🔥4👎1