Home
Login

Ein Compiler, der SQL mit KI kombiniert und die SQL-Syntax erweitert, um das Training, die Vorhersage und die Bewertung von Machine-Learning-Modellen zu unterstützen.

Apache-2.0Go 5.2ksql-machine-learning Last Updated: 2024-04-18

SQLFlow Projekt – Detaillierte Beschreibung

Projektübersicht

SQLFlow ist ein Compiler, der SQL-Programme in Workflows kompiliert, die auf Kubernetes ausgeführt werden. Es erweitert die SQL-Syntax, um KI-Aufgaben zu unterstützen, darunter Training, Vorhersage, Modellevaluierung, Modellinterpretation, benutzerdefinierte Jobs und mathematische Planung.

Projektadresse: https://github.com/sql-machine-learning/sqlflow

Kernfunktionen

1. Perfekte Kombination von SQL und KI

SQLFlow löst die Schwachstellen der traditionellen Entwicklung von maschinellem Lernen:

  • Traditionelle ML-Anwendungsentwicklung erfordert mehrere Rollen wie Dateningenieure, Data Scientists und Business Analysten.
  • Es erfordert die Beherrschung verschiedener Programmiersprachen wie Python, SQL, SAS, Julia, R usw.
  • Die Fragmentierung von Tools und Entwicklungsumgebungen führt zu technischen Schwierigkeiten.

SQLFlow ermöglicht es Ingenieuren mit SQL-Kenntnissen, fortschrittliche ML-Anwendungen zu entwickeln.

2. Breite Kompatibilität

Unterstützte Datenbanksysteme:

  • MySQL
  • MariaDB
  • TiDB
  • Apache Hive
  • Alibaba MaxCompute

Unterstützte Machine-Learning-Frameworks:

  • TensorFlow
  • Keras
  • XGBoost

3. Erweiterte SQL-Syntax

SQLFlow erweitert die Standard-SQL-Syntax und fügt maschinelles Lernen-bezogene Schlüsselwörter und Anweisungen hinzu, sodass Benutzer direkt in SQL Folgendes durchführen können:

  • Modelltraining (TO TRAIN)
  • Modellvorhersage (TO PREDICT)
  • Modellevaluierung
  • Feature Engineering

Anwendungsbeispiele

Modelltraining Beispiel

SELECT *
FROM iris.train
TO TRAIN DNNClassifier
WITH model.n_classes = 3, model.hidden_units = [10, 20]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;

Modellvorhersage Beispiel

SELECT *
FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;

Architekturentwurf

Die Gesamtarchitektur von SQLFlow zeichnet sich durch folgende Merkmale aus:

1. Erweiterbarkeit

  • Unterstützt mehrere SQL-Engines und ist nicht auf eine bestimmte SQL-Engine ausgerichtet.
  • Basiert nicht auf benutzerdefinierten Funktionen (UDF) zur Syntaxerweiterung.
  • Unterstützt komplexe Machine-Learning-Modelle und Toolkits.

2. Flexibilität und Benutzerfreundlichkeit

  • Flexibel genug, um modernste Algorithmen zu konfigurieren und auszuführen.
  • Unterstützt erweiterte Funktionen wie Feature Crosses.
  • Leicht zu erlernen, wodurch die Einstiegshürde gesenkt wird.

3. Verteilte Ausführung

Die Ausgabe ist ein Argo-Workflow, der verteilt auf einem Kubernetes-Cluster ausgeführt wird und Folgendes gewährleistet:

  • Hohe Verfügbarkeit
  • Horizontale Skalierbarkeit
  • Unterstützung für Enterprise-Bereitstellungen

Technische Vorteile

1. Unterschied zu bestehenden Lösungen

Microsoft SQL Server: Bietet Machine-Learning-Dienste, benötigt aber R oder Python als externe Skripte.

Teradata SQL for DL: Bietet RESTful-Dienste, die über die erweiterte SQL SELECT-Syntax aufgerufen werden können.

Google BigQuery: Ermöglicht Machine Learning in SQL über die CREATE MODEL-Anweisung.

Die Vorteile von SQLFlow liegen in:

  • Vollständig erweiterbare Lösung
  • Kompatibel mit mehreren SQL-Engines
  • Unterstützt komplexe Machine-Learning-Modelle
  • Keine Notwendigkeit, Python- oder R-Code in SQL-Anweisungen einzubetten

2. Workflow-Integration

  • Kompilierung von SQL-Programmen in Kubernetes-Workflows
  • Unterstützung für Argo-Workflow-Orchestrierung
  • Cloud-native Architekturdesign

Community und Ökosystem

Akademische Unterstützung

Open-Source-Ökosystem

SQLFlow verfügt über ein vollständiges Open-Source-Ökosystem:

  • Hauptprojekt: sql-machine-learning/sqlflow
  • Python-Client: sql-machine-learning/pysqlflow
  • Zeppelin-Integration: sql-machine-learning/zeppelin-sqlflow
  • Offizielle Website: sql-machine-learning.github.io

Anwendungsbereiche

SQLFlow eignet sich besonders für folgende Szenarien:

  • Enterprise-Datenanalyseteams, die die Einstiegshürde für ML-Entwicklung senken möchten
  • Geschäftsszenarien, in denen Machine Learning direkt in SQL-Abfragen durchgeführt werden muss
  • Organisationen, die Datenverarbeitungs- und Machine-Learning-Workflows vereinheitlichen möchten
  • Unternehmen, die eine skalierbare, Cloud-native ML-Lösung benötigen

Zusammenfassung

SQLFlow bietet durch die perfekte Kombination von SQL und KI eine leistungsstarke und einfach zu bedienende Machine-Learning-Plattform für Datenexperten. Es senkt nicht nur die Einstiegshürde für die Nutzung von Machine Learning, sondern gewährleistet durch eine Cloud-native Architektur auch Enterprise-Skalierbarkeit und -Zuverlässigkeit. Für Organisationen, die Machine-Learning-Funktionen nahtlos in ihre Daten-Workflows integrieren möchten, ist SQLFlow eine ideale Wahl.