Använda SQL-transformering

Den här artikeln beskriver en komponent i Azure Machine Learning-designern.

Med hjälp av komponenten Tillämpa SQL-transformering kan du:

  • Skapa tabeller för resultat och spara datauppsättningarna i en portabel databas.

  • Utför anpassade transformeringar på datatyper eller skapa aggregeringar.

  • Kör SQL-frågeinstruktioner för att filtrera eller ändra data och returnera frågeresultatet som en datatabell.

Viktigt

SQL-motorn som används i den här komponenten är SQLite. Mer information om SQLite-syntax finns i SQL enligt SQLite. Den här komponenten skickar data till SQLite, som finns i minnesdatabasen, vilket innebär att komponentkörningen kräver mycket mer minne och kan stöta på ett Out of memory fel. Kontrollera att datorn har tillräckligt med RAM-minne.

Så här konfigurerar du Tillämpa SQL-transformering

Komponenten kan ta upp till tre datauppsättningar som indata. När du refererar till de datauppsättningar som är anslutna till varje indataport måste du använda namnen t1, t2och t3. Tabellnumret anger indexet för indataporten.

Nedan visas exempelkod som visar hur du kopplar två tabeller. t1 och t2 är två datauppsättningar som är anslutna till de vänstra och mellersta indataportarna i Tillämpa SQL-transformering:

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

Den återstående parametern är en SQL-fråga som använder SQLite-syntaxen. När du skriver flera rader i textrutan SQL-skript använder du ett semikolon för att avsluta varje instruktion. Annars konverteras radbrytningar till blanksteg.

Den här komponenten stöder alla standardinstruktioner för SQLite-syntaxen. En lista över instruktioner som inte stöds finns i avsnittet Tekniska anteckningar .

Tekniska anteckningar

Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.

  • Indata krävs alltid på port 1.

  • För kolumnidentifierare som innehåller ett blanksteg eller andra specialtecken ska du alltid omsluta kolumnidentifieraren inom hakparenteser eller dubbla citattecken när du refererar till kolumnen i satserna SELECT eller WHERE .

  • Om du har använt Redigera metadata för att ange kolumnmetadata (kategoriska eller fält) före Tillämpa SQL-transformering innehåller inte utdata från Tillämpa SQL-transformering dessa attribut. Du måste använda Redigera metadata för att redigera kolumnen efter Tillämpa SQL-transformering.

Instruktioner som inte stöds

Även om SQLite stöder mycket av ANSI SQL-standarden innehåller den inte många funktioner som stöds av kommersiella relationsdatabassystem. Mer information finns i SQL enligt SQLite. Tänk också på följande begränsningar när du skapar SQL-uttryck:

  • SQLite använder dynamisk typning för värden i stället för att tilldela en typ till en kolumn som i de flesta relationsdatabassystem. Det är svagt skrivet och tillåter implicit typkonvertering.

  • LEFT OUTER JOIN implementeras, men inte RIGHT OUTER JOIN eller FULL OUTER JOIN.

  • Du kan använda RENAME TABLE och ADD COLUMN -instruktioner med ALTER TABLE kommandot, men andra satser stöds inte, inklusive DROP COLUMN, ALTER COLUMNoch ADD CONSTRAINT.

  • Du kan skapa en VY i SQLite, men därefter är vyerna skrivskyddade. Du kan inte köra en DELETE- INSERTeller UPDATE -instruktion i en vy. Du kan dock skapa en utlösare som utlöses vid ett försök till DELETE, INSERTeller UPDATE i en vy och utföra andra åtgärder i utlösarens brödtext.

Utöver listan över funktioner som inte stöds på den officiella SQLite-webbplatsen innehåller följande wiki en lista över andra funktioner som inte stöds: SQLite – SQL som inte stöds

Nästa steg

Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.