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를 사용하는 것입니다.