Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2019 (15.x) i nowsze wersje
usługi Azure SQL Managed Instance
Ten artykuł opisuje, jak używać funkcji w pakiecie sqlmlutils do instalacji nowych pakietów Python na instancji Machine Learning Services na SQL Server. Możesz używać pakietów, które instalujesz, w skryptach języka Python uruchamianych w bazie danych za pomocą instrukcji T-SQL sp_execute_external_script.
W tym artykule opisano sposób używania funkcji w pakiecie sqlmlutils do instalowania nowych pakietów języka Python w wystąpieniu usług Azure SQL Managed Instance Machine Learning Services. Możesz używać pakietów instalowanych w skryptach języka Python uruchamianych w bazie danych za pomocą instrukcji T-SQL sp_execute_external_script.
Uwaga / Notatka
Nie możesz aktualizować ani odinstalować pakietów, które są preinstalowane na instancji SQL Managed Instance Machine Learning Services. Aby wyświetlić listę aktualnie zainstalowanych pakietów, zobacz Wyświetlanie listy wszystkich zainstalowanych pakietów języka Python.
Aby uzyskać więcej informacji na temat lokalizacji pakietu i ścieżek instalacji, zobacz Pobieranie informacji o pakiecie języka Python.
Uwaga / Notatka
Użyj pakietu sqlmlutils opisanego w tym artykule, aby dodać pakiety Python do SQL Server 2019 lub nowszych. Aby zapoznać się z programem SQL Server 2017 i jego wcześniejszymi wersjami, zobacz Instalowanie pakietów przy użyciu narzędzi języka Python.
Wymagania wstępne
- SQL Server Machine Learning Services zainstalowane z opcją języka Python.
Python zainstalowany na komputerze klienckim, którego używasz do łączenia z SQL Server. Możesz uruchamiać skrypty z linii poleceń lub korzystać ze środowiska programistycznego Python, takiego jak Visual Studio Code z rozszerzeniem Python.
Wersja Python na komputerze klienckim musi odpowiadać wersji Python na serwerze, a pakiety, które instalujesz, muszą być kompatybilne z wersją Python, którą posiadasz. Aby uzyskać informacje na temat wersji języka Python dołączonej do każdej wersji programu SQL Server, zobacz Wersje języka Python i języka R.
Aby sprawdzić wersję języka Python w konkretnym wystąpieniu programu SQL Server, użyj następującego polecenia języka T-SQL.
EXECUTE sp_execute_external_script @language = N'Python', @script = N' import sys print(sys.version) 'Rozszerzenie MSSQL dla programu Visual Studio Code zainstalowane na komputerze klienckim, którego używasz do łączenia się z programem SQL Server. Możesz użyć innych narzędzi do zarządzania bazami danych lub zapytań.
Inne uwagi
Biblioteka pakietów Python znajduje się w folderze Program Files w instancji SQL Server. Domyślnie instalacja w tym folderze wymaga uprawnień administratora. Aby uzyskać więcej informacji, zobacz Lokalizacja biblioteki pakietów.
Instalacja pakietu jest specyficzna dla instancji SQL, bazy danych i użytkownika, które określasz w informacji o połączeniu podanej do sqlmlutils. Aby używać pakietu w wielu instancjach SQL lub bazach danych, albo dla różnych użytkowników, zainstaluj pakiet dla każdego z nich. Wyjątkiem jest pakiet zainstalowany w zakresie publicznym , który jest współdzielony wszystkim użytkownikom. sqlmlutils domyślnie wybiera zakres publiczny tylko wtedy, gdy łączysz się jako członek
sysadminroli serwera, a w przeciwnym razie zakres prywatny. Aby zainstalować w publicznym zakresie jako inny principal, należy przepuścićscope=sqlmlutils.Scope.public_scope()doinstall, co wymaga roli bazydb_ownerdanych. Jeśli użytkownik zainstaluje nowszą wersję publicznego pakietu, publiczny pakiet nie jest dotknięty, ale ten użytkownik ma dostęp do nowszej wersji.Przed dodaniem pakietu zastanów się, czy pakiet jest odpowiedni dla środowiska programu SQL Server.
Używaj Python w bazie danych do zadań, które korzystają z ścisłej integracji z silnikiem bazy danych, takich jak uczenie maszynowe, zamiast do zadań polegających wyłącznie na zapytaniach do bazy danych.
Jeśli dodasz pakiety, które wywierają zbyt dużą presję obliczeniową na serwerze, wydajność na tym cierpi.
W utwardzonym środowisku SQL Server unikaj następujących typów pakietów:
- Pakiety wymagające dostępu do sieci
- Pakiety wymagające podwyższonego poziomu dostępu do systemu plików
- Pakiety używane do tworzenia aplikacji internetowych lub innych zadań, które nie korzystają z działania wewnątrz programu SQL Server
Nie da się zainstalować pakietu tensorflow w Python z sqlmlutils. Aby uzyskać więcej informacji i obejść ten problem, zobacz Znane problemy w usługach SQL Server Machine Learning Services.
Instalowanie narzędzia sqlmlutils na komputerze klienckim
Aby użyć narzędzia sqlmlutils, należy najpierw zainstalować go na komputerze klienckim używanym do nawiązywania połączenia z programem SQL Server.
Instalowanie narzędzia sqlmlutils w trybie online
Jeśli komputer kliencki ma dostęp do internetu, zainstaluj sqlmlutils za pomocą pip:
pip install sqlmlutils
Instalowanie narzędzia sqlmlutils w trybie offline
Jeśli komputer kliencki nie ma dostępu do internetu, zainstaluj sqlmlutils z pobranego pliku:
Upewnij się, że masz zainstalowany PIP . Więcej informacji można znaleźć w artykule instalacja PIP.
Pobierz najnowszy plik sqlmlutils ze strony wydań sqlmlutils na komputer kliencki. Nie rozpakuj pliku.
Otwórz wiersz poleceń i wykonaj następujące polecenie, aby zainstalować pakiet sqlmlutils. Zamień pełną ścieżkę do pobranego pliku. Ten przykład zakłada, że pobrany plik to .
c:\temp\sqlmlutils-1.0.0.zippip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
Dodawanie pakietu języka Python w programie SQL Server
Korzystając z sqlmlutils, możesz dodawać pakiety Python do instancji SQL i używać ich w kodzie Python, który działa w tej instancji. sqlmlutils używa CREATE EXTERNAL LIBRARY do instalowania pakietu i wszystkich jego zależności.
Poniższy przykład dodaje pakiet tekst-tools do SQL Server.
Dodawanie pakietu w trybie online
Jeśli komputer kliencki, którego używasz do połączenia z SQL Server, ma dostęp do internetu, możesz użyć sqlmlutils, aby znaleźć pakiet text-tools i wszelkie zależności online, a następnie zainstalować pakiet na instancji SQL Server zdalnie.
Na komputerze klienckim otwórz środowisko Python lub Python.
Użyj następujących poleceń, aby zainstalować pakiet narzędzi tekstowych . Zastąp informacje o połączeniu z bazą danych SQL Server własnymi danymi (jeśli używasz uwierzytelniania systemu Windows, nie potrzebujesz parametrów
uidipwd).
Na komputerze klienckim otwórz środowisko Python lub Python.
Użyj następujących poleceń, aby zainstalować pakiet narzędzi tekstowych . Zastąp własne informacje o połączeniu z bazą danych programu SQL Server. Również należy podać nazwę sterownika ODBC zainstalowanego na komputerze klienckim, na przykład ,
driver="ODBC Driver 18 for SQL Server"ponieważ nazwa sterownika, której używa sqlmlutils, domyślnie dotyczy tylko systemu Windows.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")
Dodawanie pakietu w trybie offline
Jeśli komputer kliencki, którego używasz do połączenia z SQL Server, nie ma połączenia internetowego, użyj pip na komputerze, który ma, aby pobrać pakiet do lokalnego folderu. Następnie kopiujesz folder na komputer kliencki i instalujesz pakiet offline.
Uwaga / Notatka
Ta procedura działa dla pakietu, który nie ma zależności.
SQLPackageManager.install() rozpoznaje zależności z PyPI nawet wtedy, gdy podasz lokalny plik .whl, więc aby dodać pakiet, który ma zależności, użyj komputera klienckiego z dostępem do internetu i postępuj zgodnie z instrukcjami w sekcji Add the package online.
Na komputerze z dostępem do internetu
Otwórz Command Prompt i uruchom następujące polecenie, aby utworzyć lokalny folder zawierający pakiet text-tools. W tym przykładzie zostanie utworzony folder
c:\temp\text-tools.pip download text-tools -d c:\temp\text-toolstext-toolsSkopiuj folder na komputer kliencki. W poniższym przykładzie przyjęto założenie, że skopiowano go do elementuc:\temp\packages\text-tools.
Na komputerze klienckim
Użyj sqlmlutils , aby zainstalować pakiet (.whl plik), który pip pobrał do lokalnego folderu.
W tym przykładzie narzędzia tekstowe nie mają zależności od nich, więc text-tools folder zawiera pojedynczy plik.
Uruchom następujący skrypt języka Python. Zastąp rzeczywistą ścieżkę pliku i nazwę pakietu oraz informacje o połączeniu z bazą danych programu SQL Server (jeśli używasz uwierzytelniania systemu Windows, nie potrzebujesz parametrów uid i pwd).
Uruchom następujący skrypt języka Python. Zastąp rzeczywistą ścieżkę pliku i nazwę pakietu oraz informacje o połączeniu z bazą danych programu SQL Server. Również należy podać nazwę sterownika ODBC zainstalowanego na komputerze klienckim, na przykład , driver="ODBC Driver 18 for SQL Server"ponieważ nazwa sterownika, której używa sqlmlutils, domyślnie dotyczy tylko systemu Windows.
import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="yourserver", database="yourdatabase", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text_tools-1.0.0-py3-none-any.whl")
Korzystanie z pakietu
Teraz możesz użyć pakietu w skrypcie języka Python na serwerze SQL Server. Przykład:
EXECUTE sp_execute_external_script
@language = N'Python',
@script = N'
from text_tools.finders import find_best_string
corpus = "Lorem Ipsum text"
query = "Ipsum"
first_match = find_best_string(query, corpus)
print(first_match)
'
Usuwanie pakietu z programu SQL Server
Aby usunąć pakiet text-tools, uruchom następujące polecenie Python na komputerze klienckim, używając tej samej zmiennej połączenia, którą zdefiniowałeś wcześniej.
sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")
Więcej funkcji sqlmlutils
Pakiet sqlmlutils zawiera kilka funkcji do zarządzania pakietami Python oraz do tworzenia, zarządzania i uruchamiania procedur i zapytań przechowywanych w SQL Server. Więcej informacji znajdziesz w pliku sqlmlutils Python README.
Aby uzyskać informacje o dowolnej funkcji sqlmlutils , użyj funkcji pomocy języka Python. Przykład:
import sqlmlutils
help(sqlmlutils.SQLPackageManager.install)