Invoke-SqlNotebook
SQL Notebook ファイル (.ipynb) を実行し、具体化されたノートブックを出力します。
構文
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]
[<CommonParameters>]
Invoke-SqlNotebook
[-ConnectionString <Object>]
[-InputFile <Object>]
[-InputObject <Object>]
[-OutputFile <Object>]
[-Force]
[<CommonParameters>]
Invoke-SqlNotebook
-InputFile <Object>
[-OutputFile <Object>]
[-Force]
[<CommonParameters>]
Invoke-SqlNotebook
-InputObject <Object>
[-OutputFile <Object>]
[-Force]
[<CommonParameters>]
説明
Invoke-SqlNotebook コマンドレットは、SQL Notebook ファイル (.ipynb) を実行し、具体化されたノートブックを出力します。
ノートブックは、指定された ServerInstance とデータベースで実行されます。
コマンドレットを実行すると、結果の Notebook ファイルは、ユーザーが定義した場所、または入力ノートブック ファイルの同じディレクトリに配置されます。
コマンドレット outfile は省略できます。その場合は、入力ファイル名と ファイルに追加された_out を使用して作成されます。
例
例 1: ローカル サーバー (既定のインスタンス) に対してノートブックを実行する
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
このコマンドは、コマンドレットが実行されるコンピューターで実行されているSQL Serverの既定のインスタンスに対してノートブックを実行します。 既定では、 -OutputFile が渡されなかったため、具体化されたノートブックは InputFile と同じ名前のディスクに保存され、ファイル名のサフィックスとして _out が付けられます (notebook.ipynb -> notebook_out.ipynb)
例 2: ローカル サーバー (defaut インスタンス) でノートブックを実行し、具体化されたノートブックを指定したファイルに保存する
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
このコマンドは、コマンドレットが実行されるコンピューターで実行されているSQL Serverの既定のインスタンスに対してノートブックを実行します。 実行されたノートブックは、 -OutputFile パラメーターで指定されたファイルに保存されます。
例 3: -ConnectionString パラメーターを使用してノートブックを実行する
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: すべての登録済みサーバーに対してノートブックを実行する
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 を実行します。
この例では、NetName
SQL Server インスタンスの プロパティが出力ファイルの名前に含まれます。具体化されたノートブックには、年-月-日-時分のタイムスタンプが設定されます。
例 5: ノートブックの実行、Azure Data Studio で結果を開く
Azure Data Studio Marketplace から PowerShell 拡張機能 をインストールします。
Azure Data Studio の PowerShell 統合コンソールを使用して を実行 Invoke-SqlNotebook
し、 を使用 Open-EditorFile
して SQL Notebook の結果を Azure Data Studio で直接開きます。
Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile
注: コマンドは Open-EditorFile
、PowerShell 統合コンソールでのみ使用できます。
例 6: サービス プリンシパルを使用したノートブックの実行、Azure SQL データベースへの接続 (または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に対する認証に使用されるアクセス トークン。
これは、たとえば、 または Managed Identity
または にSQL Azure DB
SQL Azure Managed Instance
接続して使用するために使用Service Principal
できます (このページの下部にある参照を参照してください)。
一般的なシナリオでは、このパラメーターは 次のようなもの (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
で取得されます (Az.Account モジュールが必要です)
このパラメーターを使用する場合は、 UserName、 Password、または Credential を 指定しないでください。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionString
サーバーに接続する接続文字列を指定します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
ユーザー名フィールドとパスワード フィールドが SQL インスタンスへの接続に使用される PSCredential オブジェクト。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Database
このコマンドレットは、ServerInstance パラメーターで指定されたインスタンス内のこのデータベースに接続します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encrypt
SQL Serverに接続するときに使用する暗号化の種類。
この値は、 Encrypt
Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの プロパティ SqlConnectionEncryptOption
にマップされます。
モジュールの v22 では、既定値は Optional
(v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "必須" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
既定では、コマンドレットによって具体化されたノートブックがファイルに書き込まれると、ユーザーが誤って既存のファイルを上書きしないように、チェックが実行されます。 を使用して-Force
、このチェックをバイパスし、コマンドレットが既存のファイルを上書きできるようにします。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostNameInCertificate
SQL Server TLS/SSL 証明書の検証に使われるホスト名。
このパラメーターは、モジュールの v22 の新機能です。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputFile
コマンドレットを使用して実行されるノートブック ファイル (.ipynb) を指定します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
入力ノートブックとして使用される Json 文字列として Notebook を指定します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputFile
実行されたノートブックを保存する目的の出力ノートブック ファイルを指定します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Password
Username パラメーターで指定されたSQL Server認証ログイン ID のパスワードを指定します。
パスワードでは大文字と小文字が区別されます。 可能であれば、Windows 認証を使用するか、代わりに -Credential パラメーターの使用を検討してください。
Password パラメーターの後にパスワードを指定すると、モニターを表示できるすべてのユーザーにパスワードが表示されます。
パスワードの後にパスワードを .ps1 スクリプトでコーディングすると、スクリプト ファイルを読んでいるすべてのユーザーにパスワードが表示されます。
他のユーザーがファイルを読み取ることをできないようにするには、適切な NTDB 権限をファイルに割り当てます。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ServerInstance
データベース エンジンのインスタンスの名前を指定する文字列またはSQL Server管理オブジェクト (SMO) オブジェクトを指定します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
信頼を検証するために証明書チェーンの歩き方をバイパスしながらチャネルを暗号化するかどうかを示します。
モジュールの v22 では、既定値は $true
(v21 との互換性のために) です。 モジュールの v23 以降では、既定値は "$false" になります。これにより、既存のスクリプトに破壊的変更が発生する可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Username
データベース エンジンのインスタンスへの SQL Server 認証接続を確立するためのログイン ID を指定します。
パスワードは Password パラメーターを使用して指定する必要があります。
Username と Password が指定されていない場合、このコマンドレットは、Windows PowerShell セッションを実行している Windows アカウントを使用して Windows 認証接続を試行します。 可能な場合は、Windows 認証を使用します。
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
System.Object
System.Management.Automation.PSCredential
出力
System.Object
メモ
具体化されたノートブックを視覚化する良い方法は、Azure Data Studio を使用することです。