Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к: SQL Server 2017 (14.x) и более поздних версий
Управляемого экземпляра SQL Azure
Изменяет содержимое существующей внешней библиотеки пакетов.
Примечание.
В SQL Server 2017 (14.x) поддерживается язык R и платформа Windows. R, Python и внешние языки на платформах Windows и Linux поддерживаются в SQL Server 2019 (15.x) и более поздних версиях.
Синтаксис для SQL Server 2019
ALTER EXTERNAL LIBRARY library_name
[ AUTHORIZATION owner_name ]
SET <file_spec>
WITH ( LANGUAGE = <language> )
[ ; ]
<file_spec> ::=
{
(CONTENT = { <client_library_specifier> | <library_bits> | NONE}
[, PLATFORM = <platform> )
}
<client_library_specifier> :: =
{
'[\\computer_name\]share_name\[path\]manifest_file_name'
| '[local_path\]manifest_file_name'
| '<relative_path_in_external_data_source>'
}
<library_bits> :: =
{
varbinary_literal
| varbinary_expression
}
<platform> :: =
{
WINDOWS
| LINUX
}
<language> :: =
{
'R'
| 'Python'
| <external_language>
}
Синтаксис для SQL Server 2017
ALTER EXTERNAL LIBRARY library_name
[ AUTHORIZATION owner_name ]
SET <file_spec>
WITH ( LANGUAGE = 'R' )
[ ; ]
<file_spec> ::=
{
(CONTENT = { <client_library_specifier> | <library_bits> | NONE}
[, PLATFORM = WINDOWS )
}
<client_library_specifier> :: =
{
'[\\computer_name\]share_name\[path\]manifest_file_name'
| '[local_path\]manifest_file_name'
| '<relative_path_in_external_data_source>'
}
<library_bits> :: =
{
varbinary_literal
| varbinary_expression
}
Синтаксис для Управляемого экземпляра SQL Azure
CREATE EXTERNAL LIBRARY library_name
[ AUTHORIZATION owner_name ]
FROM <file_spec> [ ,...2 ]
WITH ( LANGUAGE = <language> )
[ ; ]
<file_spec> ::=
{
(CONTENT = <library_bits>)
}
<library_bits> :: =
{
varbinary_literal
| varbinary_expression
}
<language> :: =
{
'R'
| 'Python'
}
Аргументы
LIBRARY_NAME
Указывает имя существующей библиотеки пакетов. Область действия библиотек ограничивается пользователем. Имена библиотек должны быть уникальными в контексте определенного пользователя или владельца.
Имя библиотеки не может быть произвольно назначено. То есть необходимо использовать имя, которое ожидает вызывающая среда выполнения при загрузке пакета.
OWNER_NAME
Указывает имя пользователя или роли, которой принадлежит внешняя библиотека.
FILE_SPEC
Указывает содержимое пакета для конкретной платформы. Поддерживается только один файл артефакта на платформу.
Файл можно указать в виде локального или сетевого пути. Если указан параметр источника данных, имя файла может быть относительным путем по отношению к контейнеру, на который ссылается EXTERNAL DATA SOURCE.
При необходимости можно указать платформу операционной системы для файла. Для каждой платформы операционной системы для конкретного языка или среды выполнения разрешен только один артефакт файла или содержимое.
LIBRARY_BITS
Задает содержимое пакета как шестнадцатеричный литерал, аналогично сборкам.
Этот параметр полезен, если у вас есть необходимое разрешение на изменение библиотеки, но доступ к файлам на сервере ограничен, и вы не можете сохранить содержимое в пути, к которому может получить доступ сервер.
Вместо этого можно передать содержимое пакета в качестве переменной в двоичном формате.
PLATFORM = WINDOWS
Указывает платформу для содержимого библиотеки. Это значение является обязательным при изменении существующей библиотеки для добавления другой платформы. В SQL Server 2017 (14.x) Windows является единственной поддерживаемой платформой.
ПЛАТФОРМЫ
Указывает платформу для содержимого библиотеки. Это значение является обязательным при изменении существующей библиотеки для добавления другой платформы. В SQL Server 2019 (15.x) Windows и Linux являются поддерживаемыми платформами.
LANGUAGE = "R"
Задает язык пакета. R поддерживается в SQL Server 2017 (14.x).
LANGUAGE
Задает язык пакета. Значение может быть R или Python в Управляемом экземпляре SQL Azure.
LANGUAGE
Задает язык пакета. Значением может быть R, Python или название внешнего языка (см. раздел CREATE EXTERNAL LANGUAGE).
Замечания
Для языка R пакеты должны быть подготовлены в виде архивных файлов с расширением .zip для Windows. В SQL Server 2017 (14.x) поддерживается только платформа Windows.
Для языка R при использовании файла пакеты должны быть подготовлены в виде архивных файлов с расширением .zip .
Для языка Python пакет в .whl файле или .zip файле должен быть подготовлен в виде архивного файла. Если пакет уже является файлом .zip , он должен быть включен в новый .zip файл. Отправка пакета как .whl или .zip файла напрямую не поддерживается.
Инструкция ALTER EXTERNAL LIBRARY только загружает биты библиотеки в базу данных. Измененная библиотека устанавливается, когда пользователь запускает код в sp_execute_external_script , который вызывает библиотеку.
Несколько пакетов, называемых системными пакетами, предварительно установлены в экземпляре SQL. Нельзя добавлять, обновлять или удалять системные пакеты.
Разрешения
По умолчанию пользователь dbo или любой член роли db_owner имеет разрешение на выполнение ALTER EXTERNAL LIBRARY. Кроме того, внешнюю библиотеку может изменять пользователь, который ее создал.
Примеры
В следующем примере изменяется внешняя библиотека customPackage.
Замена содержимого библиотеки с помощью файла
В следующем примере изменяется внешняя библиотека customPackage с помощью сжатого ZIP-файла, содержащего обновленные биты.
ALTER EXTERNAL LIBRARY customPackage
SET (CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
Чтобы установить обновленную библиотеку, выполните хранимую процедуру sp_execute_external_script.
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'library(customPackage)';
В языке Python пример также выполняется при замене 'R' на 'Python'.
Изменение существующей библиотеки с помощью байтового потока
В следующем примере существующая библиотека изменяется путем передачи новых битов в виде шестнадцатеричного литерала.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
В языке Python пример также выполняется при замене 'R' на 'Python'.
Примечание.
Этот пример кода демонстрирует только синтаксис; двоичное значение CONTENT = усечено для удобства чтения и не создает рабочую библиотеку. Фактическое содержимое двоичной переменной длиннее.