SQL-transformatie toepassen
In dit artikel wordt een onderdeel van de Azure Machine Learning-ontwerpfunctie beschreven.
Met het onderdeel SQL-transformatie toepassen kunt u het volgende doen:
Maak tabellen voor resultaten en sla de gegevenssets op in een draagbare database.
Voer aangepaste transformaties uit op gegevenstypen of maak aggregaties.
Voer SQL-queryinstructies uit om gegevens te filteren of te wijzigen en de queryresultaten als een gegevenstabel te retourneren.
Belangrijk
De SQL-engine die in dit onderdeel wordt gebruikt, is SQLite. Zie SQL as Understood by SQLite (SQL as Understood by SQLite) voor meer informatie over SQLite-syntaxis.
Dit onderdeel zal gegevens naar SQLite stoten, die zich in de geheugendatabase bevindt. Daarom vereist de uitvoering van het onderdeel veel meer geheugen en kan er een Out of memory
fout optreden. Zorg ervoor dat uw computer voldoende RAM-geheugen heeft.
SQL-transformatie toepassen configureren
Het onderdeel kan maximaal drie gegevenssets als invoer gebruiken. Wanneer u naar de gegevenssets verwijst die zijn verbonden met elke invoerpoort, moet u de namen t1
, t2
en t3
gebruiken. Het tabelnummer geeft de index van de invoerpoort aan.
Hieronder ziet u voorbeeldcode om te laten zien hoe u twee tabellen kunt samenvoegen. t1 en t2 zijn twee gegevenssets die zijn verbonden met de linker- en middelste invoerpoort van SQL-transformatie toepassen:
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
De resterende parameter is een SQL-query, die gebruikmaakt van de SQLite-syntaxis. Wanneer u meerdere regels typt in het tekstvak SQL-script , gebruikt u een puntkomma om elke instructie te beëindigen. Anders worden regeleinden geconverteerd naar spaties.
Dit onderdeel ondersteunt alle standaardinstructies van de SQLite-syntaxis. Zie de sectie Technische opmerkingen voor een lijst met niet-ondersteunde instructies.
Technische opmerkingen
Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.
Er is altijd invoer vereist op poort 1.
Voor kolom-id's die een spatie of andere speciale tekens bevatten, plaatst u de kolom-id altijd tussen vierkante haken of dubbele aanhalingstekens wanneer u verwijst naar de kolom in de
SELECT
of-componentenWHERE
.Als u Metagegevens bewerken hebt gebruikt om de kolommetagegevens (categorisch of velden) op te geven vóór SQL-transformatie toepassen, bevatten de uitvoer van SQL-transformatie toepassen deze kenmerken niet. U moet Metagegevens bewerken gebruiken om de kolom te bewerken na SQL-transformatie toepassen.
Niet-ondersteunde instructies
Hoewel SQLite veel van de ANSI SQL-standaard ondersteunt, bevat het niet veel functies die worden ondersteund door commerciële relationele databasesystemen. Zie SQL as Understood by SQLite (SQL as Understood by SQLite) voor meer informatie. Houd ook rekening met de volgende beperkingen bij het maken van SQL-instructies:
SQLite gebruikt dynamisch typen voor waarden, in plaats van een type toe te wijzen aan een kolom, zoals in de meeste relationele databasesystemen. Het is zwak getypeerd en staat impliciete typeconversie toe.
LEFT OUTER JOIN
is geïmplementeerd, maar nietRIGHT OUTER JOIN
ofFULL OUTER JOIN
.U kunt de instructies en gebruiken
RENAME TABLE
met deALTER TABLE
opdracht, maar andere componenten worden niet ondersteund, waaronderDROP COLUMN
,ALTER COLUMN
enADD CONSTRAINT
.ADD COLUMN
U kunt een WEERGAVE maken in SQLite, maar daarna zijn weergaven alleen-lezen. U kunt de
DELETE
instructie ,INSERT
ofUPDATE
niet uitvoeren in een weergave. U kunt echter een trigger maken die wordt geactiveerd bij een poging totDELETE
,INSERT
ofUPDATE
in een weergave en andere bewerkingen uitvoeren in de hoofdtekst van de trigger.
Naast de lijst met niet-ondersteunde functies op de officiële SQLite-site, biedt de volgende wiki een lijst met andere niet-ondersteunde functies: SQLite - Niet-ondersteunde SQL
Volgende stappen
Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning.