SQL-transformatie toepassen
In dit artikel wordt een onderdeel van Azure Machine Learning Designer beschreven.
Met behulp van 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 als begrepen door SQLite voor meer informatie over SQLite-syntaxis.
Dit onderdeel stoten gegevens naar SQLite, die zich in de geheugendatabase bevindt, waardoor de uitvoering van het onderdeel veel meer geheugen vereist en kan een Out of memory
fout veroorzaken. Zorg ervoor dat uw computer voldoende RAM-geheugen heeft.
SQL-transformatie toepassen configureren
Het onderdeel kan maximaal drie gegevenssets als invoer in beslag nemen. Wanneer u verwijst naar de gegevenssets die zijn verbonden met elke invoerpoort, moet u de namen t1
, t2
en t3
. 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 invoerpoorten 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 in het tekstvak SQL Script typt, 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 notities
Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.
Er is altijd een 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 naar de kolom in de
SELECT
ofWHERE
componenten verwijst.Als u Metagegevens bewerken hebt gebruikt om de metagegevens van de kolom (categorisch of velden) op te geven voordat u SQL-transformatie toepast, 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 als begrepen door 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 getypt en staat impliciete typeconversie toe.
LEFT OUTER JOIN
is geïmplementeerd, maar nietRIGHT OUTER JOIN
ofFULL OUTER JOIN
.U kunt en instructies gebruiken
RENAME TABLE
met deALTER TABLE
opdracht, maar andere componenten worden niet ondersteund, inclusiefDROP COLUMN
,ALTER COLUMN
enADD CONSTRAINT
.ADD COLUMN
U kunt een WEERGAVE maken in SQLite, maar daarna zijn weergaven alleen-lezen. U kunt een
DELETE
,INSERT
ofUPDATE
instructie niet uitvoeren in een weergave. U kunt echter een trigger maken die wordt geactiveerd bij een pogingDELETE
,INSERT
ofUPDATE
in een weergave en andere bewerkingen uitvoeren in de hoofdtekst van de trigger.
Naast de lijst met niet-ondersteunde functies die zijn opgegeven 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.