SQL против Python: враги мира данных

Спонсором этого поста выступила компания VMware Tanzu.

Ежегодно рейтинг лучших языков программирования IEEE Spectrum дает представление о том, что действительно важно в глобальной экосистеме программного обеспечения. В списке 2025 года SQL подскочил с 9-го места в 2024 году и занял 4-е место, сразу после Python, Java и C++. Это положение примечательно, учитывая возраст SQL и его специализированную область применения.

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

Истоки SQL

SQL был создан в 1970-х годах на основе видения реляционных баз данных Эдгаром Коддом и его формализации реляционной алгебры и теории множеств. В отличие от процедурных и функциональных языков, которые диктуют, как выполнять задачу, SQL является декларативным; он указывает то, что вы хотите, оставляя движку определять путь. Эта абстракция на основе множеств последовательно применялась на протяжении десятилетий, поддерживая рабочие нагрузки от небольших наборов данных до систем, управляющих миллиардами строк, поскольку она основана на реляционной алгебре и теории множеств.

SQL пережил все аппаратные циклы и тенденции программирования. Все началось с мейнфреймов, было адаптировано к серверам UNIX, распределенным системам, а теперь используется в облачных механизмах баз данных SaaS. Механизмы SQL реализованы на C, C++, Java и других языках и оптимизированы для многоядерных процессоров, графических процессоров и систем хранения данных NVMe. Интерфейс SQL остается стандартизированным, защищая пользователей от сложностей, в то время как реализации продолжают развиваться под капотом.

SQL против процедурного и функционального мышления

Разница между SQL и процедурными языками, такими как Java, C++ и Python, заключается не только в синтаксисе. Процедурные и функциональные языки полагаются на явный поток управления, циклы, условные ветвления и вызовы функций для обработки данных по одному элементу за раз. Напротив, SQL выражает операции над целыми наборами строк одновременно. Вместо написания цикла для сканирования списка и суммирования значений SQL использует агрегатную функцию (SUM) по столбцу. Вместо вложенных операторов if SQL применяет предложения WHERE для фильтрации подмножеств. Объединения заменяют ручной поиск указателей или поиск по карте, описывая, как соединяются отношения. Этот сдвиг означает, что в то время как процедурный код определяет, как выполнять вычисления, SQL определяет, какой результат требуется, оставляя оптимизатору базы данных решать, использовать ли индекс, выполнять хэш-соединение или распараллеливать несколько процессоров.

Python: дополнение, а не конкурент

Python, занимающий первое место в списке, во многом обязан своим успехом науке о данных и машинному обучению. Он доступен, гибок и поддерживается богатой экосистемой библиотек численного и машинного обучения (ML). Но Python и SQL не являются соперниками; они дополняют друг друга. SQL управляет структурированным хранилищем, фильтрацией, объединениями и крупномасштабной агрегацией; Python обеспечивает оркестровку, статистическое моделирование и пользовательскую логику.

Аналитик может написать SQL-запросы для извлечения миллионов записей о продажах, а затем переключиться на Python с помощью pandas или NumPy для визуализации или статистических тестов. Инженеры по обработке данных встраивают шаги SQL в рабочие процессы на основе Python с помощью Airflow или Prefect, обеспечивая эффективную обработку базы данных перед последующим преобразованием. Некоторые механизмы баз данных даже поддерживают функции Python, встроенные непосредственно в SQL, что позволяет обрабатывать данные и выполнять пользовательскую логику рядом с данными, не вынося их из механизма.

AI, Python, SQL для победы

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

Теперь, в современном мире, ИИ может писать сценарии Python. Таким образом, через диалоговый интерфейс ИИ генерирует Python, а Python генерирует SQL.

Пример: «Создайте мне скрипт Python, который генерирует и выполняет SQL-запрос к таблице населения и усредняет демографические данные. Данные хранятся в 50 таблицах, по одной таблице на каждый штат сша, поэтому сгенерируйте 50 таких запросов и суммируйте данные в конце скрипта Python».

Итак, ИИ порождает Python, который порождает SQL в гармоничной цепочке.

Каково будущее SQL?

Сохраняющаяся актуальность SQL в 2025 году отражает его роль стандартного интерфейса для работы со структурированными данными. Несмотря на изменения в аппаратном обеспечении, парадигмах программирования и платформах данных, SQL остается стабильным, поскольку он основан на реляционной алгебре и теории множеств. Будущие тенденции указывают на более широкую интеграцию SQL с векторными нагрузками и рабочими нагрузками искусственного интеллекта, а также встроенные процедурные языки, такие как Python, для функций в базе данных.

SQL, скорее всего, не будет заменен, а останется общим слоем в гетерогенных системах, таких как традиционные реляционные базы данных, распределенные хранилища и гибридные платформы данных. Его будущее определяется полезностью: SQL остается стандартизированным, широко распространенным методом запроса и управления данными, и он продолжает внедряться в новые механизмы и инфраструктуры по мере их появления.

Последние десятилетия принесли большие успехи в инфраструктуре; теперь пришло время создавать приложения, которые максимально используют эти новые инструменты. Решения VMware Tanzu ускоряют разработку и доставку приложений за счет оптимизации процессов производства, автоматизации операций платформы и снижения затрат, производительности и безопасности. Узнайте больше Последние новости от VMware Tanzu ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одного эпизода. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Иван Новик возглавляет управление продуктами платформы данных в подразделении Broadcom Tanzu, курируя данные в реальном времени, потоковую передачу, базы данных OLTP и хранилища/озера данных. Ранее он более десяти лет возглавлял инновацию Tanzu Greenplum, руководя ее эволюцией от версии 4 до… Подробнее от Ивана Новика

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *