다음을 통해 공유


Invoke-SqlNotebook

SQL Notebook 파일(.ipynb)을 실행하고 구체화된 Notebook을 출력합니다.

구문

Invoke-SqlNotebook
      [-ServerInstance <Object>]
      [-Database <Object>]
      [-Username <Object>]
      [-Password <Object>]
      [-Credential <PSCredential>]
      [-InputFile <Object>]
      [-InputObject <Object>]
      [-OutputFile <Object>]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-Encrypt <String>]
      [-HostNameInCertificate <String>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      [-ConnectionString <Object>]
      [-InputFile <Object>]
      [-InputObject <Object>]
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      -InputFile <Object>
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]
Invoke-SqlNotebook
      -InputObject <Object>
      [-OutputFile <Object>]
      [-Force]
      [-ProgressAction <ActionPreference>]
      [<CommonParameters>]

Description

Invoke-SqlNotebook cmdlet은 SQL Notebook 파일(.ipynb)을 실행하고 구체화된 Notebook을 출력합니다.

Notebook은 제공된 ServerInstance 및 데이터베이스에서 실행됩니다.

cmdlet이 실행되면 결과 Notebook 파일은 사용자가 정의한 위치 또는 입력 전자 필기장 파일의 동일한 디렉터리에 있습니다.

cmdlet outfile은 생략할 수 있습니다. 이 경우 입력 파일 이름과 파일에 추가된 _out 사용하여 생성됩니다.

예제

예제 1: 로컬 서버에 대해 Notebook 실행(기본 인스턴스)

PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     4656   notebook_out.ipynb

이 명령은 cmdlet이 실행되는 컴퓨터에서 실행되는 SQL Server의 기본 인스턴스에 대해 Notebook을 실행합니다. 기본적으로 -OutputFile 전달되지 않으므로 구체화된 Notebook은 파일 이름에 대한 접미사로 _outInputFile 이름이 같은 디스크에 저장됩니다(notebook.ipynb -> notebook_out.ipynb).

예제 2: 로컬 서버에서 Notebook 실행(인스턴스 디파트)하고 구체화된 Notebook을 지정된 파일에 저장합니다.

PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb -OutputFile C:\new_notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     44656  new_notebook.ipynb

이 명령은 cmdlet이 실행되는 컴퓨터에서 실행되는 SQL Server의 기본 인스턴스에 대해 Notebook을 실행합니다. 실행된 Notebook은 -OutputFile 매개 변수로 지정된 파일에 저장됩니다.

예제 3: -ConnectionString 매개 변수를 사용하여 Notebook 실행

PS C:\> Invoke-Sqlnotebook -ConnectionString 'Server=Localhost;Database=TestNotebook;Trusted_Connection=True;' -InputFile C:\notebook.ipynb

   Directory: C:\

Mode           LastWriteTime         Length Name
----           -------------         ------ ----
-a----         8/1/2019  1:00 PM     44656  notebook_out.ipynb

이는 예제 1과 동일하며 -ConnectionString 매개 변수를 통해 서버에 대한 연결만 지정됩니다.

예제 4: 등록된 모든 서버에 대해 Notebook 실행

dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' |
WHERE { $_.Mode -ne 'd'} |            
foreach {
    $datetime = Get-Date -Format yyyyMMddhhmm;
    Get-SqlInstance -ServerInstance $_.Name |
    foreach {
            Invoke-SqlNotebook -ServerInstance $_.Name -Database master -InputFile '$home\Documents\SQL Server Management Studio\BPCheck.ipynb' `
            -OutputFile "BPCheck_output_$($_.NetName)_$($datetime).ipynb";
            }
        }

등록된 서버 또는 중앙 관리 서버를 사용하여 여러 서버에 대해 Invoke-SqlNotebook 실행합니다. 이 예제에서는 SQL Server 인스턴스의 NetName 속성이 출력 파일의 이름에 포함됩니다. 구체화된 전자 필기장이 연도별 일별 시간 분으로 타임스탬프를 찍을 것입니다.

예제 5: Azure Data Studio에서 Notebook 실행, 결과 열기

Azure Data Studio 마켓플레이스에서 PowerShell 확장 설치합니다. Azure Data Studio의 PowerShell 통합 콘솔을 사용하여 Invoke-SqlNotebook 실행하고 Open-EditorFile 사용하여 Azure Data Studio에서 SQL Notebook의 결과를 직접 엽니다.

Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile

참고: Open-EditorFile 명령은 PowerShell 통합 콘솔에서만 사용할 수 있습니다.

예제 6: 서비스 주체를 사용하여 Notebook 실행, Azure SQL Database(또는 Managed Instance)에 연결

Import-Module SQLServer
Import-Module Az.Accounts -MinimumVersion 2.2.0

### Obtain the Access Token interactively.
### Note: help for Invoke-Sqlcmd has examples on other ways to acquire the token.
Connect-AzAccount
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token

# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-SqlNotebook -ServerInstance myserver.database.windows.net -Database master -AccessToken $access_token`
                   -InputFile MyNotebook.ipynb

매개 변수

-AccessToken

사용자/암호 또는 Windows 인증 대신 SQL Server에 인증하는 데 사용되는 액세스 토큰입니다.

예를 들어 Service Principal 또는 Managed Identity 사용하여 SQL Azure DB 연결하고 SQL Azure Managed Instance 데 사용할 수 있습니다(이 페이지의 맨 아래에 있는 참조 참조 참조).

일반적인 시나리오에서 이 매개 변수는 (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token(Az.Account 모듈 필요)와 같이 가져옵니다.

이 매개 변수를 사용하는 경우 UserName, 암호또는 자격 증명 지정하지 마세요.

형식:PSObject
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ConnectionString

서버에 연결할 연결 문자열을 지정합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Credential

사용자 이름 및 암호 필드를 사용하여 SQL 인스턴스에 연결하는 PSCredential 개체입니다.

형식:PSCredential
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Database

이 cmdlet은 ServerInstance 매개 변수에 지정된 인스턴스에서 이 데이터베이스에 연결합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Encrypt

SQL Server에 연결할 때 사용할 암호화 유형입니다.

이 값은 Microsoft.Data.SqlClient 드라이버의 SqlConnection 개체에 있는 Encrypt 속성 SqlConnectionEncryptOption 매핑됩니다.

모듈의 v22에서 기본값은 Optional(v21과의 호환성을 위해)입니다. 모듈의 v23+에서 기본값은 기존 스크립트에 대한 호환성이 손상되는 변경을 만들 수 있는 '필수'입니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:String
허용되는 값:Mandatory, Optional, Strict
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Force

기본적으로 cmdlet이 구체화된 Notebook을 파일에 쓰면 사용자가 실수로 기존 파일을 덮어쓰지 않도록 검사가 수행됩니다. -Force 사용하여 이 검사를 무시하고 cmdlet이 기존 파일을 덮어쓰도록 허용합니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-HostNameInCertificate

SQL Server TLS/SSL 인증서의 유효성을 검사하는 데 사용할 호스트 이름입니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:String
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputFile

cmdlet을 통해 실행할 Notebook 파일(.ipynb)을 지정합니다.

형식:Object
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InputObject

Notebook을 입력 Notebook으로 사용할 Json 문자열로 지정합니다.

형식:Object
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-OutputFile

실행된 Notebook을 저장할 원하는 출력 Notebook 파일을 지정합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Password

Username 매개 변수에 지정된 SQL Server 인증 로그인 ID의 암호를 지정합니다.

암호는 대/소문자를 구분합니다. 가능하면 Windows 인증을 사용하거나 -Credential 매개 변수를 대신 사용하는 것이 좋습니다.

암호 매개 변수 뒤에 암호를 지정하면 모니터를 볼 수 있는 모든 사용자에게 암호가 표시됩니다.

.ps1 스크립트에서 암호 뒤에 암호를 코딩하는 경우 스크립트 파일을 읽는 모든 사용자에게 암호가 표시됩니다.

다른 사용자가 파일을 읽을 수 없도록 파일에 적절한 NTFS 권한을 할당합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ProgressAction

powerShell이 스크립트, cmdlet 또는 공급자(예: Write-Progress cmdlet에서 생성된 진행률 표시줄)에 의해 생성된 진행률 업데이트에 응답하는 방법을 결정합니다. Write-Progress cmdlet은 명령의 상태를 표시하는 진행률 표시줄을 만듭니다.

형식:ActionPreference
별칭:proga
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-ServerInstance

데이터베이스 엔진 인스턴스의 이름을 지정하는 문자열 또는 SMO(SQL Server Management Objects) 개체를 지정합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-TrustServerCertificate

신뢰의 유효성을 검사하기 위해 인증서 체인을 건너뛰는 동안 채널이 암호화되는지 여부를 나타냅니다.

모듈의 v22에서 기본값은 $true(v21과의 호환성을 위해)입니다. 모듈의 v23+에서 기본값은 '$false'이며, 이로 인해 기존 스크립트에 대한 호환성이 손상되는 변경이 발생할 수 있습니다.

이 매개 변수는 모듈의 v22에서 새로 생성됩니다.

형식:SwitchParameter
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Username

데이터베이스 엔진 인스턴스에 대한 SQL Server 인증 연결을 만들기 위한 로그인 ID를 지정합니다.

암호 매개 변수를 통해 암호를 지정해야 합니다.

사용자 이름 및 암호를 지정하지 않으면 이 cmdlet은 Windows PowerShell 세션을 실행하는 Windows 계정을 사용하여 Windows 인증 연결을 시도합니다. 가능하면 Windows 인증을 사용합니다.

형식:Object
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

System.Object

System.Management.Automation.PSCredential

출력

System.Object

참고

구체화된 Notebook을 시각화하는 좋은 방법은 Azure Data Studio를 사용하는 것입니다.