Anwenden der SQL-Transformation
Dieser Artikel beschreibt eine Komponente von Azure Machine Learning Designer.
Mit der Komponente SQL-Transformation anwenden können Sie:
Erstellen von Tabellen für Ergebnisse und Speichern der Datasets in einer portierbaren Datenbank
Ausführen von benutzerdefinierten Transformationen für Datentypen oder Erstellen von Aggregaten
Ausführen von SQL-Abfrageanweisungen, um Daten zu filtern oder zu ändern und die Abfrageergebnisse als Datentabelle zurückzugeben
Wichtig
Die in dieser Komponente verwendete SQL-Engine ist SQLite. Weitere Informationen zur SQLite-Syntax finden Sie unter SQL As Understood By SQLite.
Diese Komponente überträgt Daten in SQLite, das sich in der Speicher-DB befindet. Daher benötigt die Komponentenausführung viel mehr Speicher und kann auf einen Out of memory
-Fehler stoßen. Stellen Sie sicher, dass Ihr Computer über genügend RAM verfügt.
Konfigurieren von „Apply SQL Transformation“
Die Komponente kann bis zu drei Datensätze als Eingaben verarbeiten. Wenn Sie auf die Datasets verweisen, die mit den einzelnen Eingabeports verbunden sind, müssen Sie die Namen t1
, t2
und t3
verwenden. Die Tabellennummer gibt den Index des Eingabeports an.
Das folgende Codebeispiel zeigt, wie zwei Tabellen verknüpft werden können. t1 und t2 sind zwei Datasets, die mit dem linken und mittleren Eingabeport von Anwenden der SQL-Transformation verbunden sind:
SELECT t1.*
, t3.Average_Rating
FROM t1 join
(SELECT placeID
, AVG(rating) AS Average_Rating
FROM t2
GROUP BY placeID
) as t3
on t1.placeID = t3.placeID
Der verbleibende Parameter ist eine SQL-Abfrage, für die die SQLite-Syntax verwendet wird. Wenn Sie mehrere Zeilen in das Textfeld SQL-Skript eingeben, verwenden Sie ein Semikolon, um jede Anweisung zu beenden. Andernfalls werden Zeilenumbrüche in Leerzeichen konvertiert.
Diese Komponente unterstützt alle Standardanweisungen der SQLite-Syntax. Eine Liste der nicht unterstützten-Anweisungen finden Sie im Abschnitt Technische Hinweise.
Technische Hinweise
Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.
An Port 1 ist immer eine Eingabe erforderlich.
Enthält ein Spaltenbezeichner (Spalten-ID) ein Leerzeichen oder andere Sonderzeichen, müssen Sie den Bezeichner in eckige Klammern oder doppelte Anführungszeichen einschließen, wenn Sie in einer
SELECT
- oderWHERE
-Klausel auf die Spalte verweisen.Wenn Sie Metadaten bearbeiten verwendet haben, um die Spaltenmetadaten (Kategorie oder Felder) vor SQL-Transformation anwenden anzugeben, enthalten die Ausgaben von SQL-Transformation anwenden diese Attribute nicht. Sie müssen Metadaten bearbeiten verwenden, um die Spalte nach der Ausführung von SQL-Transformation anwenden zu bearbeiten.
Nicht unterstützte Anweisungen
SQLite unterstützt zwar einen Großteil des ANSI SQL-Standards, umfasst aber nicht viele Funktionen, die von kommerziellen relationalen Datenbanksystemen unterstützt werden. Weitere Informationen finden Sie unter SQL as Understood by SQLite. Beachten Sie beim Erstellen von SQL-Anweisungen außerdem die folgenden Einschränkungen:
SQLite verwendet dynamische Typzuweisung für Werte, anstatt jeder Spalte einen Typ zuzuweisen, wie dies in den meisten relationalen Datenbanksystemen geschieht. SQLite ist schwach typisiert und ermöglicht implizite Typkonvertierung.
LEFT OUTER JOIN
ist implementiert,RIGHT OUTER JOIN
undFULL OUTER JOIN
sind dagegen nicht implementiert.Sie können
RENAME TABLE
- undADD COLUMN
-Anweisungen mit demALTER TABLE
-Befehl verwenden, andere Klauseln werden jedoch nicht unterstützt, einschließlichDROP COLUMN
,ALTER COLUMN
undADD CONSTRAINT
.Sie können eine SICHT in SQLite erstellen, aber danach sind Sichten schreibgeschützt. Sie können keine
DELETE
-,INSERT
- oderUPDATE
-Anweisung für eine Sicht ausführen. Sie können jedoch einen Trigger erstellen, der beim Ausführen einerDELETE
-,INSERT
- oderUPDATE
-Anweisung für eine Sicht ausgelöst wird, und Sie können in dem Trigger weitere Vorgänge ausführen.
Zusätzlich zur Liste der nicht unterstützten Funktionen, die auf der offiziellen SQLite-Website zu finden ist, wird im folgenden Wiki eine Liste weiterer nicht unterstützter Features bereitgestellt: SQLite - Unsupported SQL
Nächste Schritte
Hier finden Sie die für Azure Machine Learning verfügbaren Komponenten.