套用 SQL 轉換
本文說明 Azure 機器學習 設計工具的元件。
使用套用 SQL 轉換元件,您可以:
建立結果的數據表,並將數據集儲存在可攜式資料庫中。
對數據類型執行自定義轉換,或建立匯總。
執行 SQL 查詢語句來篩選或改變數據,並將查詢結果當做數據表傳回。
重要
此元件中使用的 SQL 引擎是 SQLite。 如需 SQLite 語法的詳細資訊,請參閱 SQLite 所瞭解的 SQL。
此元件會將數據顛簸至位於記憶體 DB 中的 SQLite,因此元件執行需要更多記憶體,而且可能會發生 Out of memory
錯誤。 請確定您的電腦有足夠的 RAM。
如何設定套用 SQL 轉換
元件最多可能需要三個數據集作為輸入。 當您參考連線到每個輸入連接埠的資料集時,必須使用名稱 t1
、 t2
與 t3
。 數據表編號表示輸入埠的索引。
以下是示範如何聯結兩個數據表的範例程序代碼。 t1 和 t2 是兩個數據集,連線到套用 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
其餘參數是使用 SQLite 語法的 SQL 查詢。 在 [SQL 腳本] 文字框中輸入多行時,請使用分號來終止每個語句。 否則,換行符會轉換成空格。
此元件支援 SQLite 語法的所有標準語句。 如需不支持的語句清單,請參閱 技術附注 一節。
技術注意事項
本節包含常見問題的實作詳細數據、秘訣和解答。
埠 1 上一律需要輸入。
對於包含空格或其他特殊字元的數據行標識符,在參考
SELECT
或WHERE
子句中的數據行時,一律以方括號或雙引號括住數據行標識符。如果您已在套用 SQL 轉換之前使用編輯元數據來指定資料行元資料(類別或欄位),套用 SQL 轉換的輸出將不會包含這些屬性。 您必須使用編輯元數據,在套用 SQL 轉換之後編輯資料行。
不支援的語句
雖然 SQLite 支援許多 ANSI SQL 標準,但不包含商業關係資料庫系統支援的許多功能。 如需詳細資訊,請參閱 SQLite 所瞭解的 SQL。 此外,在建立 SQL 語句時請注意下列限制:
SQLite 會針對值使用動態類型,而不是將類型指派給數據行,如同在大部分關係資料庫系統中一樣。 它是弱型別,並允許隱含類型轉換。
LEFT OUTER JOIN
已實作 ,但不是RIGHT OUTER JOIN
或FULL OUTER JOIN
。您可以使用
RENAME TABLE
與語句搭配ALTER TABLE
命令,但不支援其他子句,包括DROP COLUMN
、ALTER COLUMN
與ADD CONSTRAINT
ADD COLUMN
。您可以在 SQLite 中建立 VIEW,但之後檢視是唯讀的。 您無法在檢視上執行
DELETE
、INSERT
或UPDATE
語句。 不過,您可以建立觸發程式,在嘗試DELETE
、INSERT
或UPDATE
檢視時引發,並在觸發程式主體中執行其他作業。
除了官方 SQLite 網站上提供的不支援函式清單之外,下列 Wiki 還提供其他不支援的功能清單: SQLite - 不支援的 SQL