Apply SQL Transformation (Applica trasformazione SQL)
Questo articolo descrive un componente della finestra di progettazione di Azure Machine Learning.
Usando il componente Applica trasformazione SQL, è possibile:
Creare tabelle per i risultati e salvare i set di dati in un database portatile.
Eseguire trasformazioni personalizzate sui tipi di dati o creare aggregazioni.
Eseguire istruzioni di query SQL per filtrare o modificare i dati e restituire i risultati della query come tabella dati.
Importante
Il motore SQL usato in questo componente è SQLite. Per altre informazioni sulla sintassi DI SQLite, vedere SQL come compreso da SQLite.
Questo componente urterà i dati a SQLite, che si trova nel database di memoria, di conseguenza l'esecuzione del componente richiede molto più memoria e potrebbe riscontrare un Out of memory
errore. Assicurarsi che il computer disponga di RAM sufficiente.
Come configurare la trasformazione Applica SQL
Il componente può richiedere fino a tre set di dati come input. Quando si fa riferimento ai set di dati connessi a ogni porta di input, è necessario usare i nomi t1
, t2
e t3
. Il numero di tabella indica l'indice della porta di input.
Di seguito è riportato il codice di esempio per illustrare come unire due tabelle. t1 e t2 sono due set di dati connessi alle porte di input sinistra e centrale di Applica trasformazione SQL:
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
Il parametro rimanente è una query SQL, che usa la sintassi SQLite. Quando si digitano più righe nella casella di testo Script SQL, usare un punto e virgola per terminare ogni istruzione. In caso contrario, le interruzioni di riga vengono convertite in spazi.
Questo componente supporta tutte le istruzioni standard della sintassi SQLite. Per un elenco di istruzioni non supportate, vedere la sezione Note tecniche.
Note tecniche
Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.
Un input è sempre obbligatorio sulla porta 1.
Per gli identificatori di colonna che contengono uno spazio o altri caratteri speciali, racchiudere sempre l'identificatore di colonna tra parentesi quadre o virgolette doppie quando si fa riferimento alla colonna nelle
SELECT
clausole oWHERE
.Se è stato usato Modifica metadati per specificare i metadati di colonna (categorici o campi) prima di Applicare la trasformazione SQL, gli output di Applica trasformazione SQL non conterranno questi attributi. È necessario usare Modifica metadati per modificare la colonna dopo l'applicazione della trasformazione SQL.
Istruzioni non supportate
Anche se SQLite supporta gran parte dello standard SQL ANSI, non include molte funzionalità supportate dai sistemi di database relazionali commerciali. Per altre informazioni, vedere SQL come illustrato da SQLite. Tenere inoltre presente le restrizioni seguenti durante la creazione di istruzioni SQL:
SQLite usa la digitazione dinamica per i valori, anziché assegnare un tipo a una colonna come nella maggior parte dei sistemi di database relazionali. È tipizzato in modo debole e consente la conversione implicita dei tipi.
LEFT OUTER JOIN
viene implementato, ma nonRIGHT OUTER JOIN
oFULL OUTER JOIN
.È possibile usare
RENAME TABLE
istruzioni eADD COLUMN
con ilALTER TABLE
comando , ma altre clausole non sono supportate, tra cuiDROP COLUMN
,ALTER COLUMN
eADD CONSTRAINT
.È possibile creare una vista all'interno di SQLite, ma in seguito le visualizzazioni sono di sola lettura. Non è possibile eseguire un'istruzione
DELETE
,INSERT
oUPDATE
in una vista. Tuttavia, è possibile creare un trigger che viene attivato su un tentativo diDELETE
,INSERT
oUPDATE
su una visualizzazione ed eseguire altre operazioni nel corpo del trigger.
Oltre all'elenco delle funzioni non supportate fornite nel sito SQLite ufficiale, il wiki seguente fornisce un elenco di altre funzionalità non supportate: SQLite - Unsupported SQL
Passaggi successivi
Vedere il set di componenti disponibili per Azure Machine Learning.