Применение преобразования SQL
В этой статье описывается компонент конструктора Машинного обучения Azure.
С помощью компонента применения преобразования SQL можно:
создать таблицу для результатов, а затем сохранить наборы данных в переносимой базе данных;
выполнять пользовательские преобразования типов данных или создавать статистические выражения;
выполнять инструкции SQL-запроса для фильтрации или изменения данных и получения результатов запроса в виде таблицы данных.
Важно!
В этом компоненте используется подсистема SQL SQLite. Дополнительные сведения о синтаксисе SQLite см. в статье Поддержка SQL в SQLite.
Этот компонент будет отправлять данные в SQLite — базу данных в памяти, поэтому его выполнение требует значительно большего объема памяти и может привести к ошибке Out of memory
. Убедитесь, что на компьютере достаточно ОЗУ.
Как настроить модуль "Применение преобразования 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
Оставшийся параметр — SQL-запрос, в котором используется синтаксис SQLite. При вводе нескольких строк в текстовом поле скрипта SQL используйте точку с запятой для завершения каждой инструкции. В противном случае разрывы строки преобразуются в пробелы.
Этот компонент поддерживает все стандартные операторы синтаксиса SQLite. Список неподдерживаемых инструкций см. в разделе Технические примечания.
Технические примечания
В этом разделе содержатся сведения и советы относительно реализации, а также ответы на часто задаваемые вопросы.
На порт 1 всегда должны подаваться входные данные.
Для ссылки на идентификаторы столбцов, содержащих пробел или другие специальные символы, используйте квадратные скобки или двойные кавычки в предложениях
SELECT
иWHERE
.Если вы использовали модуль Изменение метаданных для указания метаданных столбцов (категориальных или полей) до модуля Применение преобразования SQL, этих атрибутов не будет в выходных данных модуля Применение преобразования SQL. Модуль Изменение метаданных следует использовать для редактирования столбца после использования модуля Применение преобразования SQL.
Неподдерживаемые инструкции
Хотя SQLite поддерживает большую часть стандарта ANSI SQL, в него не включены несколько функций, поддерживаемых коммерческими системами реляционных баз данных. Дополнительную информацию см. в статье Поддержка SQL в SQLite. При создании инструкций SQL также необходимо учитывать указанные ниже ограничения.
SQLite использует динамическую типизацию значений, а не присвоение типа столбцу, как в большинстве систем реляционных баз данных. Кроме того, для нее характерна слабая типизация. Система также позволяет выполнять неявное преобразование типов.
Соединение
LEFT OUTER JOIN
реализовано,RIGHT OUTER JOIN
иFULL OUTER JOIN
— нет.Можно использовать инструкции
RENAME TABLE
иADD COLUMN
с командойALTER TABLE
, но другие предложения не поддерживаются, в том числеDROP COLUMN
,ALTER COLUMN
иADD CONSTRAINT
.Вы можете создать VIEW в SQLite, но последующие представления будут доступны только для чтения. Невозможно выполнить инструкцию
DELETE
,INSERT
илиUPDATE
для представления. Но вы можете создать триггер, срабатывающий при попытке выполнить инструкциюDELETE
,INSERT
илиUPDATE
для представления, и выполнить другие операции в теле триггера.
Помимо списка неподдерживаемых функций, предоставленного на официальном сайте SQLite, в следующей вики-статье приведен список других неподдерживаемых функций: SQLite: неподдерживаемые функции SQL
Дальнейшие действия
Ознакомьтесь с набором доступных компонентов для Машинного обучения Azure.