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- oder WHERE-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 und FULL OUTER JOIN sind dagegen nicht implementiert.

  • Sie können RENAME TABLE- und ADD COLUMN-Anweisungen mit dem ALTER TABLE-Befehl verwenden, andere Klauseln werden jedoch nicht unterstützt, einschließlich DROP COLUMN, ALTER COLUMN und ADD CONSTRAINT.

  • Sie können eine SICHT in SQLite erstellen, aber danach sind Sichten schreibgeschützt. Sie können keine DELETE-, INSERT- oder UPDATE-Anweisung für eine Sicht ausführen. Sie können jedoch einen Trigger erstellen, der beim Ausführen einer DELETE-, INSERT- oder UPDATE-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.