Udostępnij za pomocą


Instalowanie pakietów języka Python za pomocą narzędzia sqlmlutils

Dotyczy: SQL Server 2019 (15.x) i nowsze wersje usługi Azure SQL Managed Instance

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 Machine Learning Services w programie SQL Server i w klastrach danych big data. Instalowane pakiety mogą być używane w skryptach języka Python uruchomionych w bazie danych przy użyciu instrukcji sp_execute_external_script języka T-SQL.

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. Instalowane pakiety mogą być używane w skryptach języka Python uruchomionych w bazie danych przy użyciu instrukcji sp_execute_external_script języka T-SQL.

Uwaga / Notatka

Nie można zaktualizować ani odinstalować pakietów, które zostały wstępnie zainstalowane w wystąpieniu usług 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

Pakiet sqlmlutils opisany w tym artykule służy do dodawania pakietów języka Python do programu SQL Server 2019 lub nowszego. 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

  • Zainstaluj program Azure Data Studio na komputerze klienckim używanym do nawiązywania połączenia z programem SQL Server. Możesz użyć innych narzędzi do zarządzania bazami danych lub zapytań, ale w tym artykule przyjmuje się użycie Azure Data Studio.

  • Zainstaluj jądro języka Python w narzędziu Azure Data Studio. Możesz również zainstalować język Python i używać go z poziomu wiersza polecenia. Możesz również użyć alternatywnego środowiska deweloperskiego języka Python, takiego jak Visual Studio Code z rozszerzeniem języka Python.

    Wersja języka Python na komputerze klienckim musi być zgodna z wersją języka Python na serwerze, a instalowane pakiety muszą być zgodne z wersją zainstalowanego języka Python. 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)
    '
    

Inne uwagi

  • Biblioteka pakietów języka Python znajduje się w folderze Program Files wystąpienia programu SQL Server i 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żyć pakietu w wielu wystąpieniach LUB bazach danych SQL lub dla różnych użytkowników, należy zainstalować pakiet dla każdego z nich. Wyjątkiem jest to, że jeśli pakiet jest zainstalowany przez członka dboprogramu , pakiet jest publiczny i jest udostępniany wszystkim użytkownikom. Jeśli użytkownik zainstaluje nowszą wersję pakietu publicznego, nie będzie to miało wpływu na pakiet publiczny, ale ten użytkownik będzie miał dostęp do nowszej wersji.

  • Przed dodaniem pakietu zastanów się, czy pakiet jest odpowiedni dla środowiska programu SQL Server.

    • Zalecamy używanie języka Python w bazie danych do zadań, które korzystają z ścisłej integracji z aparatem bazy danych, takich jak uczenie maszynowe, a nie zadania, które po prostu wysyłają zapytania do bazy danych.

    • W przypadku dodawania pakietów, które wywierają zbyt duże obciążenie obliczeniowe na serwerze, wydajność będzie cierpieć.

    • W środowisku programu SQL Server ze wzmocnionym zabezpieczeniami warto uniknąć następujących czynności:

      • 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 można zainstalować pakietu python tensorflow przy użyciu narzędzia 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.

W narzędziu Azure Data Studio

Jeśli będziesz używać narzędzia sqlmlutils w narzędziu Azure Data Studio, możesz zainstalować go przy użyciu funkcji Zarządzanie pakietami w notesie jądra języka Python.

  1. W notesie jądra języka Python w Azure Data Studio kliknij Zarządzaj pakietami.
  2. Kliknij pozycję Dodaj nowy.
  3. Wprowadź "sqlmlutils" w polu Wyszukaj pakiety Pip i kliknij przycisk Wyszukaj.
  4. Wybierz wersję pakietu , którą chcesz zainstalować (zalecana jest najnowsza wersja).
  5. Kliknij przycisk Zainstaluj , a następnie zamknij.

Z poziomu wiersza polecenia języka Python

Jeśli będziesz używać sqlmlutils z wiersza polecenia języka Python lub środowiska IDE, możesz zainstalować sqlmlutils za pomocą prostego polecenia pip.

pip install sqlmlutils

Możesz również zainstalować narzędzie sqlmlutils z pliku zip:

  1. Upewnij się, że zainstalowano pip. Aby uzyskać więcej informacji, zobacz instalacja pip .
  2. Pobierz najnowszy plik zip sqlmlutils z https://github.com/microsoft/sqlmlutils/tree/master/R/dist komputera klienckiego. Nie rozpakuj pliku.
  3. Otwórz okno polecenia i uruchom następujące polecenia, aby zainstalować pakiet sqlmlutils. Zastąp pełną ścieżkę do pobranego pliku zip sqlmlutils — w tym przykładzie przyjęto założenie, że pobrany plik to c:\temp\sqlmlutils-1.0.0.zip.
    pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
    

Dodawanie pakietu języka Python w programie SQL Server

Za pomocą narzędzia sqlmlutils można dodawać pakiety języka Python do wystąpienia SQL. Następnie możesz użyć tych pakietów w kodzie języka Python uruchomionym w wystąpieniu SQL. Narzędzie sqlmlutils używa funkcji CREATE EXTERNAL LIBRARY do zainstalowania pakietu i każdej z jego zależności.

W poniższym przykładzie dodasz pakiet narzędzi tekstowych do programu SQL Server.

Dodawanie pakietu w trybie online

Jeśli komputer kliencki używany do nawiązywania połączenia z programem SQL Server ma dostęp do Internetu, możesz użyć narzędzia sqlmlutils , aby znaleźć pakiet narzędzi tekstowych i wszelkie zależności za pośrednictwem Internetu, a następnie zainstalować pakiet w wystąpieniu programu SQL Server zdalnie.

  1. Na komputerze klienckim otwórz środowisko Python lub Python.

  2. 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 uid i pwd).

  1. Na komputerze klienckim otwórz środowisko Python lub Python.

  2. 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.

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 łączenia się z programem SQL Server, nie ma połączenia z Internetem, możesz użyć pip na komputerze z dostępem do Internetu, aby pobrać pakiet i wszystkie zależne pakiety do folderu lokalnego. Następnie skopiuj folder na komputer kliencki, na którym można zainstalować pakiet w trybie offline.

Na komputerze z dostępem do Internetu

  1. 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-tools
    
  2. text-tools Skopiuj folder na komputer kliencki. W poniższym przykładzie przyjęto założenie, że skopiowano go do elementu c:\temp\packages\text-tools.

Na komputerze klienckim

Użyj sqlmlutils, aby zainstalować każdy pakiet (plik WHL), który znajduje się w folderze lokalnym utworzonym przez pip. Nie ma znaczenia, w jakiej kolejności instalujesz pakiety.

W tym przykładzie narzędzia tekstowe nie mają zależności, więc do zainstalowania jest tylko jeden plik z text-tools folderu. Z kolei pakiet, taki jak scikit-plot , ma 11 zależności, więc można znaleźć 12 plików w folderze (pakiet scikit-plot i 11 pakietów zależnych) i zainstalować każdy z nich.

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). Powtórz instrukcję sqlmlutils.SQLPackageManager dla każdego pliku pakietu w folderze.

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. Powtórz instrukcję sqlmlutils.SQLPackageManager dla każdego pliku pakietu w folderze.

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

Jeśli chcesz usunąć pakiet narzędzi tekstowych , użyj następującego polecenia języka Python na komputerze klienckim, używając tej samej zmiennej połączenia zdefiniowanej wcześniej.

sqlmlutils.SQLPackageManager(connection).uninstall("text-tools")

Więcej funkcji sqlmlutils

Pakiet sqlmlutils zawiera wiele funkcji do zarządzania pakietami języka Python oraz do tworzenia, zarządzania i uruchamiania procedur składowanych i zapytań w programie SQL Server. Aby uzyskać szczegółowe informacje, zobacz plik SQLmlutils Python README.

Aby uzyskać informacje o dowolnej funkcji sqlmlutils , użyj funkcji pomocy języka Python. Przykład:

import sqlmlutils
help(SQLPackageManager.install)

Dalsze kroki