Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2017 (14.x) és újabb verziók
Felügyelt Azure SQL-példány
Módosítja egy meglévő külső csomagtár tartalmát.
Megjegyzés:
Az SQL Server 2017-ben az R nyelv és a Windows platform támogatott. Az R, a Python és a külső nyelvek a Windows és Linux platformokon támogatottak az SQL Server 2019-ben és újabb verzióiban.
Megjegyzés:
A felügyelt Azure SQL-példányban a kódtárat úgy módosíthatja, hogy eltávolítja, majd sqlmlutils használatával telepíti a módosított verziót. További információ az sqlmlutilsról: Python-csomagok telepítése sqlmlutils használatával és új R-csomagok telepítése sqlmlutils használatával.
Az SQL Server 2019 szintaxisa
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>
}
Az SQL Server 2017 szintaxisa
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
}
Felügyelt Azure SQL-példány szintaxisa
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'
}
Arguments
library_name
Egy meglévő csomagtár nevét adja meg. A kódtárak hatóköre a felhasználóra terjed ki. A kódtárneveknek egyedinek kell lenniük egy adott felhasználó vagy tulajdonos kontextusában.
Az erőforrástár neve nem rendelhető hozzá tetszőlegesen. Ez azt a nevet kell használnia, amelyet a hívó futtatókörnyezet elvár a csomag betöltésekor.
owner_name
Megadja annak a felhasználónak vagy szerepkörnek a nevét, aki a külső tár tulajdonosa.
file_spec
Egy adott platform csomagjának tartalmát adja meg. Platformonként csak egy fájlösszetevő támogatott.
A fájl helyi elérési út vagy hálózati elérési út formájában adható meg. Ha az adatforrás beállítás meg van adva, a fájlnév relatív elérési út lehet a fájlban EXTERNAL DATA SOURCEhivatkozott tárolóhoz képest.
Opcionálisan meg lehet adni egy operációsrendszer-platformot a fájlhoz. Egy adott nyelvhez vagy futtatókörnyezethez minden operációsrendszer-platformon csak egy fájlösszetevő vagy -tartalom engedélyezett.
library_bits
A csomag tartalmát hexa literálként adja meg, a szerelvényekhez hasonlóan.
Ez a beállítás akkor hasznos, ha rendelkezik a szükséges engedéllyel egy tár módosításához, de a kiszolgálón a fájlhozzáférés korlátozott, és a tartalmat nem mentheti olyan elérési útra, amelyhez a kiszolgáló hozzáférhet.
Ehelyett bináris formátumban átadhatja a csomag tartalmát változóként.
platform = WINDOWS
Megadja a tár tartalmának platformját. Erre az értékre akkor van szükség, ha egy meglévő tárat módosít egy másik platform hozzáadásához. Az SQL Server 2017-ben a Windows az egyetlen támogatott platform.
peron
Megadja a tár tartalmának platformját. Erre az értékre akkor van szükség, ha egy meglévő tárat módosít egy másik platform hozzáadásához. Az SQL Server 2019-ben a Windows és a Linux a támogatott platformok.
LANGUAGE = 'R'
Megadja a csomag nyelvét. Az R támogatott az SQL Server 2017-ben.
Nyelv
Megadja a csomag nyelvét. Az érték lehet R vagy Python a felügyelt Azure SQL-példányban.
Nyelv
Megadja a csomag nyelvét. Az érték lehet R, Python vagy külső nyelv neve (lásd : CREATE EXTERNAL LANGUAGE).
Megjegyzések
Az R nyelvhez a csomagokat tömörített archív fájlok formájában kell előkészíteni a Windows .ZIP kiterjesztésével. Az SQL Server 2017-ben csak a Windows platform támogatott.
Az R nyelv esetében a fájl használatakor a csomagokat tömörített archív fájlok formájában kell elkészíteni a .ZIP kiterjesztéssel.
A Python nyelv esetében a .whl vagy .zip fájlban lévő csomagot tömörített archív fájl formájában kell elkészíteni. Ha a csomag már .zip fájl, akkor azt egy új .zip fájlba kell felvenni. A csomagok közvetlen feltöltése .whl vagy .zip fájlként jelenleg nem támogatott.
Az ALTER EXTERNAL LIBRARY utasítás csak a kódtár bitjeinek feltöltését tölti fel az adatbázisba. A módosított kódtár akkor lesz telepítve, ha egy felhasználó kódot futtat a kódtárat hívó sp_execute_external_script (Transact-SQL).
Az SQL-példányokban számos csomag , más néven rendszercsomagok vannak előre telepítve. A rendszercsomagokat a felhasználó nem tudja hozzáadni, frissíteni vagy eltávolítani.
Permissions
Alapértelmezés szerint a dbo-felhasználó vagy a szerepkör bármely tagja db_owner rendelkezik engedéllyel az ALTER EXTERNAL LIBRARY futtatására. Emellett a külső tárat létrehozó felhasználó módosíthatja a külső tárat.
Példák
Az alábbi példák egy külső, úgynevezett kódtárat módosítanak customPackage.
Tár tartalmának cseréje fájl használatával
Az alábbi példa egy külső kódtárat módosít, amelynek neve customPackageegy tömörített fájl, amely a frissített biteket tartalmazza.
ALTER EXTERNAL LIBRARY customPackage
SET
(CONTENT = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\customPackage.zip')
WITH (LANGUAGE = 'R');
A frissített kódtár telepítéséhez hajtsa végre a tárolt eljárást sp_execute_external_script.
EXEC sp_execute_external_script
@language =N'R',
@script=N'library(customPackage)'
;
A Python nyelv esetében a példa úgy is működik, hogy lecseréli 'R' a következőre 'Python': .
Meglévő kódtár módosítása bájtfolyam használatával
Az alábbi példa úgy módosítja a meglévő kódtárat, hogy hexadecimális literálként adja át az új biteket.
ALTER EXTERNAL LIBRARY customLibrary
SET (CONTENT = 0xABC123...) WITH (LANGUAGE = 'R');
A Python nyelv esetében a példa úgy is működik, hogy lecseréli 'R' a következőre 'Python': .
Megjegyzés:
Ez a kódminta csak a szintaxist mutatja be; a bináris érték CONTENT = csonkolva lett az olvashatóság érdekében, és nem hoz létre működő kódtárat. A bináris változó tényleges tartalma sokkal hosszabb lenne.
Lásd még
KÜLSŐ KÓDTÁR LÉTREHOZÁSA (Transact-SQL)
DROP EXTERNAL LIBRARY (Transact-SQL)
sys.external_library_files
sys.external_libraries