다음을 통해 공유


sqlmlutils를 사용하여 Python 패키지 설치

적용 대상: SQL Server 2019 (15.x) Azure SQL Managed Instance

이 문서에서는 sqlmlutils 패키지의 함수를 사용하여 SQL Server Machine Learning Services빅 데이터 클러스터 인스턴스에 새 파이썬 패키지를 설치하는 방법을 설명합니다. 설치하는 패키지는 sp_execute_external_script T-SQL 문을 사용하여 데이터베이스에서 실행되는 파이썬 스크립트에서 사용할 수 있습니다.

이 문서에서는 sqlmlutils 패키지의 함수를 사용하여 Azure SQL 관리 인스턴스 Machine Learning Services에 새 Python 패키지를 설치하는 방법을 설명합니다. 설치하는 패키지는 sp_execute_external_script T-SQL 문을 사용하여 데이터베이스에서 실행되는 파이썬 스크립트에서 사용할 수 있습니다.

참고 항목

SQL Managed Instance Machine Learning Services의 인스턴스에 미리 설치된 패키지는 업데이트하거나 제거할 수 없습니다. 현재 설치된 패키지의 목록을 보려면 설치된 모든 Python 패키지 나열을 참조하세요.

패키지 위치 및 설치 경로에 대한 자세한 정보는 Python 패키지 정보 가져오기를 참조하세요.

참고 항목

이 문서에 설명된 sqlmlutils 패키지는 SQL Server 2019 이상에 파이썬 패키지를 추가하는 데 사용됩니다. SQL Server 2017 이하의 경우 파이썬 도구를 사용하여 패키지 설치를 참조하세요.

필수 조건

  • SQL Server에 연결하는 데 사용하는 클라이언트 컴퓨터에 Azure Data Studio를 설치합니다. 다른 데이터베이스 관리 또는 쿼리 도구를 사용할 수 있지만 이 문서에서는 Azure Data Studio를 가정합니다.

  • Azure Data Studio에 Python 커널을 설치합니다. 명령줄에서 Python을 설치하고 사용할 수도 있으며 Python 확장과 함께 Visual Studio Code와 같은 대체 Python 개발 환경을 사용할 수도 있습니다.

    클라이언트 컴퓨터의 파이썬 버전은 서버의 파이썬 버전과 일치해야 하며 설치하는 패키지가 보유한 파이썬 버전 규격이어야 합니다. 각 SQL Server 버전에 포함된 Python 버전에 관한 자세한 내용은 Python 및 R 버전을 참조하세요.

    특정 SQL Server 인스턴스에서 파이썬 버전을 확인하려면 다음 T-SQL 명령을 사용합니다.

    EXECUTE sp_execute_external_script
      @language = N'Python',
      @script = N'
    import sys
    print(sys.version)
    '
    

기타 고려 사항

  • Python 패키지 라이브러리는 SQL Server 인스턴스의 Program Files 폴더에 있으며, 기본적으로 이 폴더에 설치하려면 관리자 권한이 필요합니다. 자세한 내용은 패키지 라이브러리 위치를 참조하세요.

  • 패키지 설치는 sqlmlutils에 제공하는 연결 정보에 지정한 SQL 인스턴스, 데이터베이스 및 사용자와 관련이 있습니다. 여러 SQL 인스턴스 또는 데이터베이스 또는 다른 사용자에 패키지를 사용하려면 각각에 대한 패키지를 설치해야 합니다. 예외는 패키지가 dbo의 멤버에 의해 설치되는 경우 패키지가 공용이며 모든 사용자와 공유된다는 것입니다. 사용자가 새 버전의 공용 패키지를 설치하는 경우 공용 패키지는 영향을 받지 않지만 해당 사용자는 새 버전에 액세스할 수 있습니다.

  • 패키지를 추가하기 전에 패키지가 SQL Server 환경에 적합한지 여부를 고려합니다.

    • 단순히 데이터베이스를 쿼리하는 작업보다는 기계 학습과 같은 데이터베이스 엔진과의 긴밀한 통합을 활용하는 작업에 대해 Python 데이터베이스 내에서 사용하는 것이 좋습니다.

    • 서버에 너무 많은 계산 압력을 가하는 패키지를 추가하면 성능이 저하됩니다.

    • 강화된 SQL Server 환경에서는 다음을 방지해야 할 수 있습니다.

      • 네트워크 액세스가 필요한 패키지
      • 높은 파일 시스템 액세스 권한이 필요한 패키지
      • SQL Server 내에서 실행하는 데 이점이 없는 웹 개발 또는 기타 작업에 사용되는 패키지
    • 파이썬 패키지 tensorflow는 sqlmlutils를 사용하여 설치할 수는 없습니다. 자세한 내용과 해결 방법은 SQL Server Machine Learning Services의 알려진 문제를 참조하십시오.

클라이언트 컴퓨터에 sqlmlutils 설치

sqlmlutils를 사용하려면 먼저 SQL Server에 연결하는 데 사용하는 클라이언트 컴퓨터에 설치해야 합니다.

Azure Data Studio에서

Azure Data Studio에서 sqlmlutils를 사용하는 경우 Python 커널 Notebook의 패키지 관리 기능을 사용하여 설치할 수 있습니다.

  1. Azure Data Studio의 Python 커널 Notebook에서 패키지 관리를 클릭합니다.
  2. 새로 추가를 클릭합니다.
  3. Pip 패키지 검색 필드에 "sqlmlutils"를 입력하고 검색을 클릭합니다.
  4. 설치할 패키지 버전을 선택합니다(최신 버전 권장).
  5. 설치를 클릭한 후 닫기를 클릭합니다.

Python 명령줄

Python 명령 프롬프트 또는 IDE에서 sqlmlutils를 사용하는 경우 간단한 pip 명령으로 sqlmlutils를 설치할 수 있습니다.

pip install sqlmlutils

zip 파일에서 sqlmlutils를 설치 할 수도 있습니다.

  1. pip이 설치되어 있는지 확인합니다. 자세한 내용은 pip installation을 참조하십시오.
  2. 최신 sqlmlutils zip 파일을 https://github.com/microsoft/sqlmlutils/tree/master/R/dist에서 클라이언트 컴퓨터로 다운로드합니다. 파일 압축을 풀지 마세요.
  3. 명령 프롬프트를 열고 다음 명령을 실행하여 sqlmlutils 패키지를 설치합니다. 다운로드한 sqlmlutils zip 파일의 전체 경로를 대체합니다. 이 예제에서는 다운로드한 파일을 c:\temp\sqlmlutils-1.0.0.zip이라고 가정합니다.
    pip install --upgrade --upgrade-strategy only-if-needed c:\temp\sqlmlutils-1.0.0.zip
    

SQL Server에 Python 패키지 추가

sqlmlutils를 사용하여 SQL 인스턴스에 Python 패키지를 추가할 수 있습니다. 그런 다음 SQL 인스턴스에서 실행되는 Python 코드에서 해당 패키지를 사용할 수 있습니다. sqlmlutilsCREATE EXTERNAL LIBRARY를 사용하여 패키지와 각 종속성을 설치합니다.

다음 예제에서는 SQL Server에 text-tools 패키지를 추가합니다.

온라인으로 패키지 추가

SQL Server에 연결하는 데 사용하는 클라이언트 컴퓨터에 인터넷 액세스 권한이 있는 경우 sqlmlutils를 사용하여 인터넷을 통해 text-tools 패키지 및 종속성을 찾은 다음 패키지를 SQL Server 인스턴스에 원격으로 설치할 수 있습니다.

  1. 클라이언트 컴퓨터에서 Python 또는 Python 환경을 엽니다.

  2. 다음 명령을 사용하여 text-tools 패키지를 설치합니다. 자신의 SQL Server 데이터베이스 연결 정보를 대체합니다(Windows Authentication을 사용하는 경우에는 uidpwd 매개 변수가 필요 없습니다).

  1. 클라이언트 컴퓨터에서 Python 또는 Python 환경을 엽니다.

  2. 다음 명령을 사용하여 text-tools 패키지를 설치합니다. 사용자 고유의 SQL Server 데이터베이스 연결 정보를 대체합니다.

import sqlmlutils
connection = sqlmlutils.ConnectionInfo(server="server", database="database", uid="username", pwd="password")
sqlmlutils.SQLPackageManager(connection).install("text-tools")

오프라인으로 패키지 추가

SQL Server에 연결하는 데 사용하는 클라이언트 컴퓨터에 인터넷 연결이 없는 경우 인터넷 액세스 권한이 있는 컴퓨터에서 pip를 사용하여 패키지 및 종속 패키지를 로컬 폴더에 다운로드할 수 있습니다. 그런 다음, 패키지를 오프라인으로 설치할 수 있는 클라이언트 컴퓨터에 해당 폴더를 복사합니다.

인터넷에 액세스할 수 있는 컴퓨터

  1. 명령 프롬프트를 열고 다음 명령을 실행하여 텍스트 도구 패키지가 포함된 로컬 폴더를 만듭니다. 이 예제에서는 c:\temp\text-tools 폴더를 만듭니다.

    pip download text-tools -d c:\temp\text-tools
    
  2. text-tools 폴더를 클라이언트 컴퓨터에 복사합니다. 다음 예제에서는 c:\temp\packages\text-tools에 복사한 것으로 가정합니다.

클라이언트 컴퓨터에서

sqlmlutils를 사용하여 pip가 만든 로컬 폴더에서 찾은 각 패키지(WHL 파일)를 설치합니다. 패키지를 설치하는 순서는 중요하지 않습니다.

이 예제 에서는 텍스트 도구 에 종속성이 없으므로 text-tools 폴더에서 설치할 파일이 하나만 있습니다. 반면, scikit-plot과 같은 패키지에는 11개의 종속성이 있으므로 폴더(scikit-plot 패키지 및 11개의 종속 패키지)에서 12개의 파일을 찾을 수 있으며 각 파일을 설치합니다.

다음 Python 스크립트를 실행합니다. 패키지의 실제 파일 경로와 이름을 대체하고, 자신의 SQL Server 데이터베이스 연결 정보를 대체합니다(Windows Authentication을 사용하는 경우에는 uidpwd 매개 변수가 필요 없습니다). 폴더의 각 패키지 파일에 대한 sqlmlutils.SQLPackageManager 문을 반복합니다.

다음 Python 스크립트를 실행합니다. 패키지의 실제 파일 경로와 이름, 사용자 고유의 SQL Server 데이터베이스 연결 정보로 대체합니다. 폴더의 각 패키지 파일에 대한 sqlmlutils.SQLPackageManager 문을 반복합니다.

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")

패키지 사용

이제 SQL Server의 Python 스크립트에서 패키지를 사용할 수 있습니다. 예시:

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)
  '

SQL Server에서 패키지 제거

텍스트 도구 패키지를 제거하려면 이전에 정의한 것과 동일한 연결 변수를 사용하여 클라이언트 컴퓨터에서 다음 Python 명령을 사용합니다.

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

추가 sqlmlutils 함수

sqlmlutils 패키지에는 Python 패키지를 관리하고 SQL Server에서 저장 프로시저와 쿼리를 생성, 관리, 실행할 수 있는 많은 함수가 있습니다. 자세한 내용은 sqlmlutils 파이썬 추가 정보 파일을 참조하세요.

sqlmlutils 함수에 대한 정보는 Python 도움말 함수를 사용합니다. 예시:

import sqlmlutils
help(SQLPackageManager.install)

다음 단계