Använda SQL-transformering
I den här artikeln beskrivs 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 omvandlingar 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 som förstås av SQLite.
Den här komponenten skickar data till SQLite, som finns i minnesdatabasen, och därför kräver komponentkörningen 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
, t2
och 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 Apply SQL Transformation:
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
ellerWHERE
.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-instruktioner:
SQLite använder dynamisk skrivning 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 inteRIGHT OUTER JOIN
ellerFULL OUTER JOIN
.Du kan använda
RENAME TABLE
ochADD COLUMN
-instruktioner medALTER TABLE
kommandot, men andra satser stöds inte, inklusiveDROP COLUMN
,ALTER COLUMN
ochADD CONSTRAINT
.Du kan skapa en VY i SQLite, men därefter är vyerna skrivskyddade. Du kan inte köra en
DELETE
- ellerUPDATE
INSERT
-instruktion i en vy. Du kan dock skapa en utlösare som utlöses vid ett försök attDELETE
,INSERT
ellerUPDATE
i en vy och utföra andra åtgärder i utlösarens brödtext.
Förutom 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.