Stosowanie przekształcenia SQL
W tym artykule opisano składnik projektanta usługi Azure Machine Learning.
Za pomocą składnika Zastosuj transformację SQL można wykonywać następujące czynności:
Tworzenie tabel dla wyników i zapisywanie zestawów danych w przenośnej bazie danych.
Wykonywanie niestandardowych przekształceń na typach danych lub tworzenie agregacji.
Wykonaj instrukcje zapytania SQL, aby filtrować lub zmieniać dane i zwracać wyniki zapytania jako tabelę danych.
Ważne
Aparat SQL używany w tym składniku to SQLite. Aby uzyskać więcej informacji na temat składni SQLite, zobacz SQL w postaci zrozumiałej dla sqlite.
Ten składnik będzie podbijać dane do sqlite, który znajduje się w bazie danych pamięci, dlatego wykonanie składnika wymaga znacznie większej ilości pamięci i może spowodować wystąpienie Out of memory
błędu. Upewnij się, że komputer ma wystarczającą ilość pamięci RAM.
Jak skonfigurować stosowanie przekształcenia SQL
Składnik może przyjmować maksymalnie trzy zestawy danych jako dane wejściowe. W przypadku odwołowania się do zestawów danych połączonych z każdym portem wejściowym należy użyć nazw t1
, t2
i t3
. Numer tabeli wskazuje indeks portu wejściowego.
Poniżej przedstawiono przykładowy kod pokazujący sposób łączenia dwóch tabel. T1 i t2 to dwa zestawy danych połączone z lewym i środkowymi portami wejściowymi funkcji Zastosuj transformację 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
Pozostały parametr jest zapytaniem SQL, które używa składni SQLite. Podczas wpisywania wielu wierszy w polu tekstowym Skrypt SQL użyj średnika, aby zakończyć każdą instrukcję. W przeciwnym razie podziały wierszy są konwertowane na spacje.
Ten składnik obsługuje wszystkie standardowe instrukcje składni SQLite. Aby uzyskać listę nieobsługiwanych instrukcji, zobacz sekcję Uwagi techniczne.
Uwagi techniczne
Ta sekcja zawiera szczegóły implementacji, porady i odpowiedzi na często zadawane pytania.
Dane wejściowe są zawsze wymagane na porcie 1.
W przypadku identyfikatorów kolumn zawierających spację lub inne znaki specjalne należy zawsze ująć identyfikator kolumny w nawiasy kwadratowe lub znaki podwójnego cudzysłowu podczas odwoływania się do kolumny w
SELECT
klauzulach orWHERE
.Jeśli użyto opcji Edytuj metadane do określenia metadanych kolumn (kategorii lub pól) przed zastosowaniem przekształcenia SQL, dane wyjściowe funkcji Zastosuj przekształcenie SQL nie będą zawierać tych atrybutów. Aby edytować kolumnę po zastosowaniu przekształcenia SQL, należy użyć polecenia Edytuj metadane.
Nieobsługiwane instrukcje
Chociaż sqLite obsługuje większość standardu ANSI SQL, nie zawiera wielu funkcji obsługiwanych przez komercyjne systemy relacyjnych baz danych. Aby uzyskać więcej informacji, zobacz SQL rozumiany przez SQLite. Należy również pamiętać o następujących ograniczeniach podczas tworzenia instrukcji SQL:
SqLite używa dynamicznego wpisywania wartości, a nie przypisywania typu do kolumny, tak jak w większości systemów relacyjnych baz danych. Jest on słabo wpisany i umożliwia niejawną konwersję typu.
LEFT OUTER JOIN
jest implementowany, ale nieRIGHT OUTER JOIN
lubFULL OUTER JOIN
.Można użyć
RENAME TABLE
instrukcji iADD COLUMN
z poleceniemALTER TABLE
, ale inne klauzule nie są obsługiwane, w tymDROP COLUMN
, i .ADD CONSTRAINT
ALTER COLUMN
Widok można utworzyć w programie SQLite, ale później widoki są tylko do odczytu. Nie można wykonać instrukcji
DELETE
,INSERT
lubUPDATE
w widoku. Można jednak utworzyć wyzwalacz, który jest uruchamiany przy próbieDELETE
,INSERT
lubUPDATE
w widoku i wykonać inne operacje w treści wyzwalacza.
Oprócz listy nieobsługiwanych funkcji dostępnych w oficjalnej witrynie SQLite poniższa witryna typu wiki zawiera listę innych nieobsługiwanych funkcji: SQLite — nieobsługiwany program SQL
Następne kroki
Zobacz zestaw składników dostępnych dla usługi Azure Machine Learning.