In-Database Machine Learning

9 ML-inklusive Datenbanken

05.05.2021
Von 
Martin Heller schreibt als freier Autor für die Schwesterpublikation InfoWorld.
Eine Reihe von Datenbanken ermöglichen die Erstellung von Machine-Learning-Modellen direkt dort, wo sich Ihre Daten befinden. Ein Überblick über die Datenbanken, deren Ansätze und Fähigkeiten.
Mittlerweile unterstützt eine wachsende Anzahl von Datenbanken internes maschinelles Lernen.
Mittlerweile unterstützt eine wachsende Anzahl von Datenbanken internes maschinelles Lernen.
Foto: agsandrew - shutterstock.com

Da die Lichtgeschwindigkeit die Schnelligkeit der Übertragung limitiert, macht es Sinn, dass sich der Code in der Nähe der Daten befindet, um so die Latenz niedrig zu halten. Schließlich neigt maschinelles Lernen - insbesondere Deep Learning - dazu, alle Ihre Daten mehrfach zu durchforsten (jeder Durchlauf wird als Epoche bezeichnet).

Bei sehr große Datensätzen ist es entsprechend ideal, das Modell dort zu erstellen, wo sich die Daten bereits befinden, so dass keine umfangreiche Datenübertragung erforderlich ist. Diese Möglichkeit wird von mehreren Datenbanken - wenn auch nur in begrenztem Umfang - unterstützt. Hier eine Übersicht über Datenbanken, die internes maschinelles Lernen unterstützen:

1. Amazon Redshift

Amazon Redshift ist ein Managed Service für Data Warehouses im Petabyte-Bereich. Er wurde für die einfache und kostengünstige Analyse all Ihrer Daten mit Ihren vorhandenen Business-Intelligence-Tools konzipiert. Er unterstützt Datensätze von einigen hundert Gigabyte bis zu einem Petabyte oder mehr und kostet weniger als 1.000 Dollar pro Terabyte im Jahr.

Amazon Redshift ML wurde entwickelt, um SQL-Benutzern das Erstellen, Trainieren und Bereitstellen von Modellen für maschinelles Lernen mit SQL-Befehlen zu erleichtern. Der Befehl CREATE MODEL in Redshift SQL definiert die für das Training zu verwendenden Daten und die Zielspalte und übergibt die Daten dann über einen verschlüsselten Amazon S3 Bucket in derselben Zone an Amazon SageMaker Autopilot zum Trainieren.

Nach dem AutoML-Training kompiliert Redshift ML das beste Modell und registriert es als SQL-Funktion für die Vorhersage in Ihrem Redshift-Cluster. Sie können dann das Modell zur Inferenz aufrufen, indem Sie die Vorhersagefunktion innerhalb einer SELECT-Anweisung aufrufen.

Zusammenfassung: Redshift ML verwendet SageMaker Autopilot, um automatisch Vorhersagemodelle aus den Daten zu erstellen, die Sie über eine SQL-Anweisung angeben und die in einen S3-Bucket extrahiert werden. Die beste gefundene Vorhersagefunktion wird im Redshift-Cluster registriert.

2. BlazingSQL

BlazingSQL ist eine GPU-beschleunigte SQL Engine, die auf dem RAPIDS-Ökosystem aufsetzt. Es gibt sie als Open-Source-Projekt sowie als kostenpflichtigen Service. RAPIDS ist eine von Nvidia ins Leben gerufene Suite von Open-Source-Softwarebibliotheken und APIs, die CUDA verwendet und auf dem Spaltenspeicherformat Apache Arrow basiert. CuDF, Teil von RAPIDS, ist eine Pandas-ähnliche GPU-DataFrame-Bibliothek zum Laden, Verbinden, Aggregieren, Filtern und anderweitigen Manipulieren von Daten.

Dask ist ein Open-Source-Tool, das Python-Pakete auf mehrere Maschinen skalieren kann. Dask kann Daten und Berechnungen über mehrere GPUs verteilen, entweder im selben System oder in einem Multi-Node-Cluster. Dask lässt sich mit RAPIDS cuDF, XGBoost und RAPIDS cuML für GPU-beschleunigte Datenanalyse und maschinelles Lernen integrieren.

Zusammenfassung: BlazingSQL kann GPU-beschleunigte Abfragen auf Data Lakes in Amazon S3 ausführen, die resultierenden DataFrames an cuDF zur Datenmanipulation übergeben und schließlich maschinelles Lernen mit RAPIDS XGBoost und cuML sowie Deep Learning mit PyTorch und TensorFlow durchführen.

3. Google Cloud BigQuery

BigQuery ist das Managed Data Warehouse in Petabyte-Größe von Google Cloud und ermöglicht es Ihnen, Analysen über riesige Datenmengen nahezu in Echtzeit durchzuführen. Mit BigQuery ML können Sie Modelle für maschinelles Lernen in BigQuery mithilfe von SQL-Abfragen erstellen und ausführen.

BigQuery ML unterstützt lineare Regression für Prognosen, binäre und mehrklassige logistische Regression für die Klassifizierung, K-Means-Clustering für die Datensegmentierung, Matrixfaktorisierung für die Erstellung von Produktempfehlungssystemen, Zeitreihen für die Durchführung von Zeitreihenprognosen, einschließlich Anomalien, Saisonalität und Feiertagen, XGBoost-Klassifizierungs- und Regressionsmodelle, TensorFlow-basierte tiefe neuronale Netzwerke für Klassifizierungs- und Regressionsmodelle, AutoML-Tabellen und den Import von TensorFlow-Modellen.

Sie können zudem ein Modell mit Daten aus mehreren BigQuery-Datensätzen für das Training und für die Vorhersage verwenden. BigQuery ML extrahiert die Daten nicht aus dem Data Warehouse. Sie können Feature-Engineering mit BigQuery ML durchführen, indem Sie die TRANSFORM-Klausel in Ihrer CREATE MODEL-Anweisung verwenden.

Zusammenfassung: BigQuery ML bringt einen Großteil der Leistung von Google Cloud Machine Learning in das BigQuery Data Warehouse mit SQL-Syntax, ohne die Daten aus dem Data Warehouse zu extrahieren.

4. IBM Db2 Warehouse

Das IBM Db2 Warehouse on Cloud ist ein Managed Public Cloud Service. Sie können IBM Db2 Warehouse aber auch vor Ort mit Ihrer eigenen Hardware oder in einer privaten Cloud einrichten. Als Data Warehouse umfasst es Funktionen wie In-Memory-Datenverarbeitung und spaltenförmige Tabellen für die analytische Online-Verarbeitung. Die Netezza-Technologie bietet eine robuste Reihe von Analysefunktionen, die darauf ausgelegt sind, die Abfrage effizient zu den Daten zu bringen. Eine Reihe von Bibliotheken und Funktionen helfen Ihnen dabei, genau den Einblick zu bekommen, den Sie benötigen.

Db2 Warehouse unterstützt datenbankinternes maschinelles Lernen in Python, R und SQL. Das IDAX-Modul enthält analytische gespeicherte Prozeduren, einschließlich Varianzanalyse, Assoziationsregeln, Datentransformation, Entscheidungsbäume, Diagnosemaßnahmen, Diskretisierung und Momente, K-Means-Clustering, k-nearest neighbors, lineare Regression, Metadatenmanagement, naive Bayes-Klassifizierung, Hauptkomponentenanalyse, Wahrscheinlichkeitsverteilungen, Zufallsstichproben, Regressionsbäume, sequentielle Muster und Regeln sowie parametrische und nicht-parametrische Statistiken.

Zusammenfassung: IBM Db2 Warehouse enthält eine breite Palette von datenbankinternen SQL-Analysen, die einige grundlegende Funktionen für maschinelles Lernen umfassen, sowie datenbankinterne Unterstützung für R und Python.

5. Kinetica

Das Kinetica Streaming Data Warehouse kombiniert historische und Streaming-Datenanalysen mit Location Intelligence und KI in einer einzigen Plattform, die über API und SQL zugänglich ist. Kinetica ist eine sehr schnelle, verteilte, spaltenförmige, speicherorientierte, GPU-beschleunigte Datenbank mit Filter-, Visualisierungs- und Aggregationsfunktionen.

Kinetica integriert Machine-Learning-Modelle und -Algorithmen mit Ihren Daten für prädiktive Echtzeit-Analysen im großen Maßstab. Es ermöglicht Ihnen, Ihre Daten-Pipelines und den Lebenszyklus Ihrer Analysen, Machine-Learning-Modelle und Data-Engineering zu rationalisieren und Funktionen mit Streaming zu berechnen. Kinetica bietet eine vollständige Lebenszykluslösung für GPU-beschleunigtes maschinelles Lernen: verwaltete Jupyter-Notebooks, Modelltraining über RAPIDS und automatisierte Modellbereitstellung und Inferenzierung in der Kinetica-Plattform.

Zusammenfassung: Kinetica bietet eine vollständige datenbankinterne Lifecycle-Lösung für GPU-beschleunigtes Machine Learning und kann Features aus Streaming-Daten berechnen.

6. Microsoft SQL Server

Die Microsoft SQL Server Machine Learning Services unterstützen R, Python, Java, den T-SQL-Befehl PREDICT und die gespeicherte Prozedur rx_Predict im SQL Server RDBMS, sowie SparkML in SQL Server Big Data Clusters. In den Sprachen R und Python enthält Microsoft mehrere Pakete und Bibliotheken für maschinelles Lernen. Sie können Ihre trainierten Modelle in der Datenbank oder extern speichern. Azure SQL Managed Instance unterstützt außerdem Machine Learning Services für Python und R als Vorschau.

Microsoft R verfügt über Erweiterungen, mit denen es Daten sowohl von der Festplatte als auch im Speicher verarbeiten kann. SQL Server bietet ein Erweiterungs-Framework, damit R-, Python- und Java-Code SQL Server-Daten und -Funktionen nutzen kann. SQL Server Big Data-Cluster wiederum führen SQL Server, Spark und HDFS in Kubernetes aus. Wenn der SQL Server Python-Code aufruft, kann dieser wiederum Azure Machine Learning aufrufen und das resultierende Modell in der Datenbank zur Verwendung in Vorhersagen speichern.

Zusammenfassung: Aktuelle Versionen von SQL Server können Machine Learning-Modelle in mehreren Programmiersprachen trainieren und ableiten.

7. Oracle Database

Oracle Cloud Infrastructure (OCI) Data Science ist eine Managed und Serverless Plattform für Data-Science-Teams zum Erstellen, Trainieren und Verwalten von Machine-Learning-Modellen mithilfe der Oracle Cloud Infrastructure, einschließlich Oracle Autonomous Database und Oracle Autonomous Data Warehouse. Sie umfasst Python-zentrierte Tools, Bibliotheken und Pakete, die von der Open-Source-Community entwickelt wurden, sowie die Oracle Accelerated Data Science (ADS)-Bibliothek, die den gesamten Lebenszyklus von Vorhersagemodellen unterstützt, nämlich:

  • Datenerfassung, Profiling, Vorbereitung und Visualisierung

  • Feature-Engineering

  • Modelltraining (einschließlich Oracle AutoML)

  • Modellauswertung, -erklärung und -interpretation (einschließlich Oracle MLX)

  • Modellbereitstellung für Oracle-Funktionen

OCI Data Science lässt sich in den Rest des Oracle-Cloud-Infrastructure-Stacks integrieren, einschließlich Functions, Data Flow, Autonomous Data Warehouse und Object Storage. Zu den derzeit unterstützten Modellen gehören:

ADS unterstützt auch Machine Learning Explainability (MLX).

Zusammenfassung: Oracle Cloud Infrastructure kann Data-Science-Ressourcen hosten, die in das Data Warehouse, den Objektspeicher und die Funktionen integriert sind und so einen vollständigen Lebenszyklus der Modellentwicklung ermöglichen.

8. Vertica

Die Vertica Analytics Platform ist ein skalierbares spaltenbasiertes Data Warehouse. Es gibt sie in zwei Modi: dem Modus Enterprise, bei dem die Daten lokal im Dateisystem der Knoten gespeichert werden, aus denen die Datenbank besteht, und EON, bei dem die Daten kommunal für alle Rechenknoten gespeichert werden.

Vertica verwendet massiv parallele Verarbeitung, um Petabytes von Daten zu verarbeiten, und führt sein internes Machine Learning mit Datenparallelität durch. Es verfügt über acht integrierte Algorithmen zur Datenaufbereitung, drei Regressionsalgorithmen, vier Klassifizierungsalgorithmen, zwei Clustering-Algorithmen, mehrere Modellverwaltungsfunktionen und die Möglichkeit, anderswo trainierte TensorFlow- und PMML-Modelle zu importieren. Sobald Sie ein Modell angepasst oder importiert haben, können Sie es für die Vorhersage verwenden. Vertica erlaubt auch benutzerdefinierte Erweiterungen, die in C++, Java, Python oder R programmiert sind. Sie verwenden SQL-Syntax sowohl für das Training als auch für die Inferenz.

Zusammenfassung: Vertica hat eine Reihe von Algorithmen für maschinelles Lernen integriert und kann TensorFlow- und PMML-Modelle importieren. Es kann sowohl Vorhersagen aus importierten Modellen als auch aus eigenen Modellen machen.

9. MindsDB

Falls Ihre Datenbank nicht bereits internes Machine Learning unterstützt, können Sie diese Fähigkeit wahrscheinlich mit MindsDB hinzufügen - immerhin lässt sich die Plattform mit einem halben Dutzend Datenbanken und fünf BI-Tools integrieren. Zu den unterstützten Datenbanken gehören MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server und Snowflake. Eine MongoDB-Integration ist in Arbeit, außerdem wurden Integrationen mit Streaming-Datenbanken für später im Jahr 2021 angekündigt. Zu den unterstützten BI-Tools gehören derzeit SAS, Qlik Sense, Microsoft Power BI, Looker und Domo.

MindsDB bietet AutoML, AI Tables und Explainable AI (XAI). Sie können AutoML-Training über MindsDB Studio, eine SQL INSERT-Anweisung oder einen Python API-Aufruf aufrufen. Das Training kann optional GPUs verwenden und kann optional ein Zeitreihenmodell erstellen.

Sie können das Modell als Datenbanktabelle speichern und es über eine SQL SELECT-Anweisung gegen das gespeicherte Modell, aus MindsDB Studio oder über einen Python-API-Aufruf aufrufen. Die Modellqualität lässt sich von MindsDB Studio aus bewerten, erklären und visualisieren.

Außerdem können Sie MindsDB Studio und die Python-API mit lokalen und entfernten Datenquellen verbinden. MindsDB bietet zusätzlich ein vereinfachtes Deep-Learning-Framework namens Lightwood, das auf PyTorch läuft.

Zusammenfassung: MindsDB bringt nützliche Funktionen für maschinelles Lernen in eine Reihe von Datenbanken, die keine integrierte Unterstützung für maschinelles Lernen bieten.

Wie Sie gesehen haben, unterstützt mittlerweile eine wachsende Anzahl von Datenbanken internes maschinelles Lernen. Der genaue Mechanismus variiert, und einige sind leistungsfähiger als andere. Wenn Sie jedoch so viele Daten haben, dass Sie sonst Modelle auf eine Stichproben-Teilmenge anpassen müssten, dann kann Ihnen eine der acht oben aufgeführten Datenbanken - und andere mit Hilfe von MindsDB - dabei helfen, Modelle aus dem gesamten Datensatz zu erstellen, ohne dass ein erheblicher Overhead für den Datenexport anfällt.

Dieser Artikel basiert auf einem Beitrag der US-Schwesterpublikation Infoworld.