Top-Datenbanken, die maschinelles Lernen innerhalb der Datenbank unterstützen

Update: 20. Mai 2021
Top-Datenbanken, die maschinelles Lernen innerhalb der Datenbank unterstützen

In meinem Artikel vom August 2020, „So wählen Sie eine Cloud-Plattform für maschinelles Lernen aus“, lautete meine erste Richtlinie für die Auswahl einer Plattform: „Seien Sie nah an Ihren Daten.“ Das Halten des Codes in der Nähe der Daten ist erforderlich, um die Latenz gering zu halten, da die Lichtgeschwindigkeit die Übertragungsgeschwindigkeit begrenzt. Schließlich durchläuft maschinelles Lernen - insbesondere Deep Learning - in der Regel alle Ihre Daten mehrmals (jedes Mal wird es als bezeichnet) Epoche).

Ich sagte damals, dass der Idealfall für sehr große Datenmengen darin besteht, das Modell zu erstellen, in dem sich die Daten bereits befinden, sodass keine Massendatenübertragung erforderlich ist. Mehrere Datenbanken unterstützen dies in begrenztem Umfang. Die nächste natürliche Frage ist, welche Datenbanken das interne maschinelle Lernen unterstützen und wie sie dies tun. Ich werde diese Datenbanken in alphabetischer Reihenfolge diskutieren.

Amazon RedShift

Amazon Redshift ist ein verwalteter Data Warehouse-Service im Petabyte-Bereich, mit dem Sie Ihre Daten einfach und kostengünstig mit Ihren vorhandenen Business Intelligence-Tools analysieren können. Es ist für Datensätze von einigen hundert Gigabyte bis zu einem Petabyte oder mehr optimiert und kostet weniger als 1,000 USD pro Terabyte und Jahr.

Amazon Redshift ML wurde entwickelt, um SQL-Benutzern das Erstellen, Trainieren und Bereitstellen von Modellen für maschinelles Lernen mithilfe von 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 zum Training über einen verschlüsselten Amazon S3-Bucket in derselben Zone an Amazon SageMaker Autopilot.

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

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

BlazingSQL

BlazingSQL ist eine GPU-beschleunigte SQL-Engine, die auf dem RAPIDS-Ökosystem aufbaut. Es existiert als Open-Source-Projekt und als kostenpflichtiger Service. RAPIDS ist eine Suite von Open-Source-Softwarebibliotheken und APIs, die von Nvidia inkubiert wurden, CUDA verwenden und auf dem Spaltenspeicherformat Apache Arrow basieren. CuDF, Teil von RAPIDS, ist eine Pandas-ähnliche GPU-DataFrame-Bibliothek zum Laden, Verbinden, Aggregieren, Filtern und anderweitigen Bearbeiten von Daten.

Dask ist ein Open-Source-Tool, mit dem Python-Pakete auf mehrere Computer skaliert werden können. Dask kann Daten und Berechnungen auf mehrere GPUs verteilen, entweder im selben System oder in einem Cluster mit mehreren Knoten. Dask lässt sich in 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 zur Datenmanipulation an cuDF übergeben und schließlich maschinelles Lernen mit RAPIDS XGBoost und cuML sowie Deep Learning mit PyTorch und TensorFlow durchführen.

Google Cloud-BigQuery

BigQuery ist das von Google Cloud verwaltete Data Warehouse im Petabyte-Bereich, mit dem Sie nahezu in Echtzeit Analysen über große Datenmengen ausführen können. Mit BigQuery ML können Sie maschinelle Lernmodelle in BigQuery mithilfe von SQL-Abfragen erstellen und ausführen.

BigQuery ML unterstützt die lineare Regression für Prognosen. binäre und mehrklassige logistische Regression zur Klassifizierung; K-bedeutet Clustering zur Datensegmentierung; Matrixfaktorisierung zur Erstellung von Produktempfehlungssystemen; Zeitreihen zur Durchführung von Zeitreihenvorhersagen, einschließlich Anomalien, Saisonalität und Feiertagen; XGBoost-Klassifizierungs- und Regressionsmodelle; TensorFlow-basierte tiefe neuronale Netze für Klassifizierungs- und Regressionsmodelle; AutoML-Tabellen; und TensorFlow-Modellimport. Sie können ein Modell mit Daten aus mehreren BigQuery-Datasets zum Training und zur Vorhersage verwenden. BigQuery ML extrahiert die Daten nicht aus dem Data Warehouse. Sie können das 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 mit SQL-Syntax in das BigQuery Data Warehouse, ohne die Daten aus dem Data Warehouse zu extrahieren.

IBM DB2 Warehouse

IBM Db2 Warehouse on Cloud ist ein verwalteter öffentlicher Cloud-Dienst. Sie können IBM Db2 Warehouse auch vor Ort mit Ihrer eigenen Hardware oder in einer privaten Cloud einrichten. Als Data Warehouse umfasst es Funktionen wie In-Memory-Datenverarbeitung und Spaltentabellen für die Online-Analyseverarbeitung. Es ist Netezza Technologie Bietet einen robusten Satz an Analysen, die darauf ausgelegt sind, die Abfrage effizient auf die Daten zu übertragen. Eine Reihe von Bibliotheken und Funktionen helfen Ihnen dabei, genau den Einblick zu erhalten, den Sie benötigen.

Db2 Warehouse unterstützt datenbankinternes maschinelles Lernen in Python, R und SQL. Der IDAX Modulen Enthält analytische gespeicherte Prozeduren, einschließlich Varianzanalyse, Assoziationsregeln, Datentransformation, Entscheidungsbäume, Diagnosemaße, Diskretisierung und Momente, K-Mittel-Clustering, k-nächste Nachbarn, lineare Regression, Metadatenverwaltung, naive Bayes-Klassifizierung, Hauptkomponentenanalyse, Wahrscheinlichkeitsverteilungen, Zufallsstichproben, Regressionsbäume, sequentielle Muster und Regeln sowie parametrische und nichtparametrische Statistiken.

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

Oracle-Datenbank

Kinetica Streaming Data Warehouse kombiniert die Analyse historischer Daten und Streaming-Daten mit Standortinformationen und KI auf einer einzigen Plattform, auf die alle über API und SQL zugegriffen werden kann. Kinetica ist eine sehr schnelle, verteilte, säulenförmige, speicherorientierte, GPU-beschleunigte Datenbank mit Filter-, Visualisierungs- und Aggregationsfunktionen.

Kinetica integriert maschinelle Lernmodelle und -algorithmen in Ihre Daten, um prädiktive Echtzeitanalysen in großem Maßstab durchzuführen. Sie können damit Ihre Datenpipelines und den Lebenszyklus Ihrer Analysen, Modelle für maschinelles Lernen und Datenentwicklung optimieren und Funktionen mit Streaming berechnen. Kinetica bietet eine vollständige Lebenszykluslösung für maschinelles Lernen, die durch GPUs beschleunigt wird: verwaltete Jupyter-Notebooks, Modelltraining über RAPIDS sowie automatisierte Modellbereitstellung und Inferenz auf der Kinetica-Plattform.

Zusammenfassung: Kinetica bietet eine vollständige datenbankinterne Lebenszykluslösung für maschinelles Lernen, die durch GPUs beschleunigt wird, und kann Funktionen aus Streaming-Daten berechnen.

Microsoft SQL Server

Microsoft SQL Server Machine Learning Services unterstützt R, Python, Java, den Befehl PREDICT T-SQL und die gespeicherte Prozedur rx_Predict im SQL Server-RDBMS sowie SparkML in SQL Server-Big-Data-Clustern. 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 Machine Learning Services für Python und R als Vorschau.

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

Zusammenfassung: Aktuelle Versionen von SQL Server können Modelle für maschinelles Lernen in mehreren Programmiersprachen trainieren und ableiten.

Oracle-Datenbank

Oracle Cloud Infrastructure (OCI) Data Science ist eine verwaltete und serverlose Plattform für Data Science-Teams zum Erstellen, Trainieren und Verwalten von Modellen für maschinelles Lernen mithilfe von Oracle Cloud Infrastructure, einschließlich Oracle Autonomous Database und Oracle Autonomous Data Warehouse. Es enthält Python-zentrierte Tools, Bibliotheken und Pakete, die von der Open Source-Community und der Oracle Accelerated Data Science (ADS) -Bibliothek entwickelt wurden und den End-to-End-Lebenszyklus von Vorhersagemodellen unterstützen:

  • Datenerfassung, Profilerstellung, Vorbereitung und Visualisierung
  • Feature Engineering
  • Modellschulung (einschließlich Oracle AutoML)
  • Modellbewertung, 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 Funktionen, Datenfluss, Autonomous Data Warehouse und Objektspeicher.

Derzeit unterstützte Modelle sind:

  • Oracle AutoML
  • Keras
  • Scikit-lernen
  • XGBoost
  • ADSTuner (Hyperparameter-Tuning)

ADS unterstützt auch die Erklärbarkeit von maschinellem Lernen (MLX).

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

Vertica

Vertica Analytics Platform ist ein skalierbares Data Warehouse für Spaltenspeicher. Es wird in zwei Modi ausgeführt: Enterprise, das Daten lokal im Dateisystem der Knoten speichert, aus denen die Datenbank besteht, und EON, das Daten für alle Rechenknoten gemeinsam speichert.

Vertica verwendet eine massiv parallele Verarbeitung, um Petabytes an Daten zu verarbeiten, und führt das interne maschinelle Lernen 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, an anderer Stelle trainierte TensorFlow- und PMML-Modelle zu importieren. Sobald Sie ein Modell angepasst oder importiert haben, können Sie es zur Vorhersage verwenden. Vertica erlaubt auch benutzerdefinierte Erweiterungen, die in C ++, Java, Python oder R programmiert sind. Sie verwenden die SQL-Syntax sowohl für das Training als auch für die Inferenz.

Zusammenfassung: Vertica verfügt über eine Reihe integrierter Algorithmen für maschinelles Lernen und kann TensorFlow- und PMML-Modelle importieren. Es kann Vorhersagen sowohl aus importierten als auch aus eigenen Modellen treffen.

MindsDB

Wenn Ihre Datenbank internes maschinelles Lernen noch nicht unterstützt, können Sie diese Funktion wahrscheinlich mit MindsDB hinzufügen, das in ein halbes Dutzend Datenbanken und fünf BI-Tools integriert ist. Zu den unterstützten Datenbanken gehören MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server und Snowflake. Eine MongoDB-Integration in die Werke und die Integration in Streaming-Datenbanken werden später im Jahr 2021 versprochen. Zu den unterstützten BI-Tools gehören derzeit SAS, Qlik Sense, Microsoft Power BI und Looker und Domo.

MindsDB bietet AutoML, AI-Tabellen und erklärbare AI (XAI). Sie können das AutoML-Training in MindsDB Studio, in einer SQL INSERT-Anweisung oder in einem Python-API-Aufruf aufrufen. Das Training kann optional GPUs verwenden und optional ein Zeitreihenmodell erstellen.

Sie können das Modell als Datenbanktabelle speichern und von einer SQL SELECT-Anweisung für das gespeicherte Modell, von MindsDB Studio oder von einem Python-API-Aufruf aus aufrufen. Sie können die Modellqualität in MindsDB Studio bewerten, erklären und visualisieren.

Sie können MindsDB Studio und die Python-API auch mit lokalen und Remote-Datenquellen verbinden. MindsDB bietet zusätzlich ein vereinfachtes Deep-Learning-Framework, Lightwood, das auf PyTorch ausgeführt wird.

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