Топ-8 баз данных со встроенной поддержкой машинного обучения

СУБД со встроенным машинным обучением
Андрей Васенин

Андрей Васенин

Автор статьи. Сфера интересов: ИТ-специалист (программирование, администрирование, DBA). Кандидат экономических наук. Подробнее .

Хотя подходы и возможности различаются, все рассматриваемые в нашей статье базы данных (СУБД) позволяют создавать модели машинного обучения прямо там, где находятся ваши данные, т.е. в структуре самой базы.

Хранение кода рядом с данными необходимо для обеспечения низкой задержки доступа к данным. В конце концов, машинное обучение, особенно глубокое обучение, имеет тенденцию многократно обрабатывать все ваши данные (каждый такой цикл обработки называется Эпохой - Epoch).


Оглавление статьи[Показать]


Идеальным случаем для обработки очень больших наборов данных является построение модели, в которой данные всегда находятся "под рукой", так что не будет требоваться многократная массовая передача данных. Некоторые базы данных поддерживают это в ограниченной степени. Возникает естественный вопрос: какие базы данных поддерживают внутреннее машинное обучение и как они это делают? В данном блоге мы рассмотрим эти базы данных (в алфавитном порядке).

 

Amazon Redshift

Amazon Redshift - это управляемое хранилище данных размером в петабайты, предназначенное для упрощения анализа всех ваших данных с помощью существующих инструментов бизнес-аналитики, что так же значительно повышает рентабельность такой обработки. Данная СУБД оптимизирована для наборов данных размером от нескольких сотен гигабайт до петабайта и более и стоит менее 1000 долларов за терабайт в год.

Язык Amazon Redshift ML разработан, чтобы упростить пользователям создание SQL запросов, обучение и развертывание моделей машинного обучения с помощью команд SQL. Команда CREATE MODEL в Redshift SQL определяет данные для обучения и целевой столбец, а затем передает данные в Amazon SageMaker Autopilot для обучения через зашифрованную корзину Amazon S3 в той же зоне.

После обучения AutoML Redshift ML компилирует лучшую модель и регистрирует ее как функцию прогнозирования SQL в вашем кластере Redshift. Затем вы можете вызвать модель для вывода, вызвав функцию прогнозирования внутри оператора SELECT.

Резюме. Redshift ML использует SageMaker Autopilot для автоматического создания моделей прогнозирования из данных, которые вы указываете с помощью оператора SQL, который извлекается в корзину S3. Наилучшая найденная функция прогнозирования регистрируется в кластере Redshift.

 

BlazingSQL

BlazingSQL - это SQL-движок с ускорением на GPU, построенный на основе экосистемы RAPIDS; он существует как проект с открытым исходным кодом и как платная услуга. RAPIDS - это набор программных библиотек и API с открытым исходным кодом, созданный Nvidia, использующий CUDA и основанный на столбчатом формате памяти Apache Arrow. CuDF, часть RAPIDS, представляет собой подобную Pandas библиотеку DataFrame графического процессора для загрузки, объединения, агрегирования, фильтрации и других манипуляций с данными.

Резюме. BlazingSQL может выполнять запросы с ускорением на GPU к озерам данных в Amazon S3, передавать полученные DataFrames в cuDF для обработки данных и, наконец, выполнять машинное обучение с помощью RAPIDS XGBoost и cuML, а также глубокое обучение с помощью PyTorch и TensorFlow.

 

Google Cloud BigQuery

BigQuery - это управляемое хранилище данных Google Cloud размером в петабайты, которое позволяет выполнять аналитику огромных объемов данных почти в реальном времени. BigQuery ML позволяет создавать и выполнять модели машинного обучения в BigQuery с помощью запросов SQL.

BigQuery ML поддерживает:

  • линейную регрессию для прогнозирования;
  • бинарную и мультиклассовую логистическую регрессию для классификации;
  • К-средство кластеризации для сегментации данных;
  • матричную факторизацию для создания систем товарных рекомендаций;
  • временные ряды для выполнения прогнозов временных последовательностей, включая аномалии, сезонность и праздники;
  • модели классификации и регрессии XGBoost;
  • глубокие нейронные сети на основе TensorFlow для моделей классификации и регрессии;
  • таблицы AutoML и импорт модели TensorFlow.

Вы можете использовать модель с данными из нескольких наборов данных BigQuery для обучения и прогнозирования. BigQuery ML не извлекает данные из хранилища данных. Вы можете выполнять разработку функций с помощью BigQuery ML, используя предложение TRANSFORM в своем операторе CREATE MODEL.

Резюме. BigQuery ML предоставляет большую часть возможностей машинного обучения Google Cloud в хранилище данных BigQuery с синтаксисом SQL без извлечения данных из хранилища данных.

 

IBM Db2 Warehouse

IBM Db2 Warehouse on Cloud - это управляемая общедоступная облачная служба. Вы также можете настроить IBM Db2 Warehouse локально с собственным оборудованием или в частном облаке. В качестве хранилища данных он включает такие функции, как обработка данных в памяти и столбчатые таблицы для онлайн-аналитической обработки. Его технология Netezza предоставляет надежный набор аналитических инструментов, предназначенных для эффективного выполнения запроса к данным. Ряд библиотек и функций помогут вам получить точное представление о том, что вам нужно.

Db2 Warehouse поддерживает машинное обучение в базе данных на Python, R и SQL. Модуль IDAX содержит аналитические хранимые процедуры, включая анализ дисперсии, правила ассоциации, преобразование данных, деревья решений, диагностические меры (diagnostic measures), дискретизацию и моменты, кластеризацию K-средних, k-ближайших соседей, линейную регрессию, управление метаданными, наивную байесовскую классификацию, принципал. компонентный анализ, распределения вероятностей, случайную выборку, деревья регрессии, последовательные шаблоны и правила, а также параметрическая и непараметрическая статистика.

Резюме. IBM Db2 Warehouse включает в себя широкий набор аналитики SQL в базе данных, который включает некоторые базовые функции машинного обучения, а также поддержку R и Python в базе данных.

 

Kinetica

Kinetica Streaming Data Warehouse сочетает в себе анализ исторических и потоковых данных с анализом местоположения и искусственным интеллектом на единой платформе, доступной через API и SQL. Kinetica - это очень быстрая распределенная, столбчатая база данных с приоритетом памяти и ускорением на графическом процессоре с функциями фильтрации, визуализации и агрегирования.

Kinetica интегрирует модели и алгоритмы машинного обучения с вашими данными для масштабной прогнозной аналитики в реальном времени. Он позволяет оптимизировать конвейеры данных и жизненный цикл аналитики, моделей машинного обучения и инженерии данных, а также вычислять функции с помощью потоковой передачи. Kinetica предоставляет решение полного жизненного цикла для машинного обучения с ускорением с помощью графических процессоров: управляемый Jupyter notebooks, обучение моделей с помощью RAPIDS, а также автоматическое развертывание моделей и создание логических выводов на платформе Kinetica.

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

 

Microsoft SQL Server

Службы машинного обучения Microsoft SQL Server поддерживают R, Python, Java, команду PREDICT T-SQL и хранимую процедуру rx_Predict в СУБД SQL Server, а также SparkML в кластерах больших данных SQL Server. Для языков R и Python Microsoft включает несколько пакетов и библиотек для машинного обучения. Вы можете хранить свои обученные модели в базе данных или извне. Управляемый экземпляр SQL Azure в качестве предварительной версии поддерживает службы машинного обучения для Python и R.

Microsoft R имеет расширения, которые позволяют обрабатывать данные как с диска, так и в памяти. SQL Server предоставляет платформу расширений, чтобы код R, Python и Java мог использовать данные и функции SQL Server. Кластеры больших данных SQL Server запускают SQL Server, Spark и HDFS в Kubernetes. Когда SQL Server вызывает код Python, он, в свою очередь, может вызвать машинное обучение Azure и сохранить полученную модель в базе данных для использования в прогнозах.

Резюме. Текущие версии SQL Server могут обучать и выводить модели машинного обучения на нескольких языках программирования.

 

Oracle Database

Oracle Cloud Infrastructure (OCI) Data Science - это управляемая бессерверная платформа для групп специалистов по анализу данных, позволяющая создавать, обучать и управлять моделями машинного обучения с использованием Oracle Cloud Infrastructure, включая Oracle Autonomous Database и Oracle Autonomous Data Warehouse. Платформа включает инструменты, библиотеки и пакеты, ориентированные на Python, разработанные сообществом разработчиков ПО с открытым исходным кодом, а также библиотеку Oracle Accelerated Data Science (ADS), которая поддерживает непрерывный жизненный цикл прогнозных моделей:

  • Сбор, профилирование, подготовка и визуализация данных
  • Функциональная инженерия
  • Обучение модели (включая Oracle AutoML)
  • Оценка, объяснение и интерпретация модели (включая Oracle MLX)
  • Развертывание модели в Oracle Functions
  • OCI Data Science интегрируется с остальной частью стека Oracle Cloud Infrastructure, включая функции, поток данных, автономное хранилище данных и хранилище объектов.

В настоящее время поддерживаются следующие модели:

  • Oracle AutoML
  • Keras
  • Scikit-Learn
  • XGBoost
  • ADSTuner (настройка гиперпараметров)
  • ADS также поддерживает объяснимость машинного обучения (MLX).

Резюме. Oracle Cloud Infrastructure может размещать исследуемый массив информации в собственное хранилище данных, хранилище объектов и функций, что обеспечивает полный жизненный цикл разработки модели.

 

Vertica

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

Vertica использует массовую параллельную обработку для манипуляции с петабайтами исследуемых данных и выполняет внутреннее машинное обучение с параллелизмом данных. Платформа имеет восемь встроенных алгоритмов для подготовки данных, три алгоритма регрессии, четыре алгоритма классификации, два алгоритма кластеризации, несколько функций управления моделями и возможность импортировать модели TensorFlow и PMML, обученные где-то еще. После того, как вы подобрали или импортировали модель, вы можете использовать ее для прогнозирования. Vertica также позволяет создавать пользовательские расширения, запрограммированные на C ++, Java, Python или R. Синтаксис SQL используется как для обучения, так и для вывода.

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

 

Заключение

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

Вас заинтересует / Intresting for you:

Оптимизация структур баз данны...
Оптимизация структур баз данны... 1660 просмотров Ирина Светлова Sun, 24 Mar 2019, 06:25:41
Что такое базы данных? Назначе...
Что такое базы данных? Назначе... 12925 просмотров Ирина Светлова Mon, 28 Oct 2019, 05:41:34
Перенос корпоративных баз данн...
Перенос корпоративных баз данн... 2794 просмотров Дэн Fri, 27 Sep 2019, 07:52:18
База данных и СУБД: основные п...
База данных и СУБД: основные п... 15870 просмотров Дэйзи ак-Макарова Fri, 24 Nov 2017, 05:30:03
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #9970 2 года 11 мес. назад
Спасибо за ответ. Я же пробовал Kinetica. Показалось, что несколько "тугой" интерфейс и куцый функционал.
apv аватар
apv ответил в теме #9969 2 года 11 мес. назад
Илья, как и почти всегда, выбор базы с машинным обучением определяется спецификой задачи. По возможностям и удобству работы я под впечатлением от OCI Data Science...
ildergun аватар
ildergun ответил в теме #9968 3 года 10 ч. назад
Обзор понравился. Только краткие выжимки сути. Спасибо, Андрей! Ну все же сакраментальный вопрос задам - какая СУБД с машинным обучением все же лучше?)))