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]
[-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>]
説明
Invoke-SqlNotebook コマンドレットは、SQL Notebook ファイル (.ipynb) を実行し、具体化されたノートブックを出力します。
ノートブックは、提供された ServerInstance とデータベースで実行されます。
コマンドレットを実行すると、結果の Notebook ファイルは、ユーザーが定義した場所、または入力ノートブック ファイルの同じディレクトリに配置されます。
コマンドレットの出力ファイルは省略できます。その場合は、入力ファイル名とファイルに追加された _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 が渡されていないため、具体化されたノートブックは、ファイル名のサフィックスとして _out を持つ InputFile と同じ名前のディスクに保存されます (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 を実行します。
この例では、SQL Server インスタンスの NetName
プロパティが出力ファイルの名前に含まれます。具体化されたノートブックには、年月の日時分のタイムスタンプが付けられます。
例 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 データベース (またはマネージド インスタンス) への接続
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、Password、または Credential を指定しないでください。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ConnectionString
サーバーに接続する接続文字列を指定します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
ユーザー名フィールドとパスワード フィールドが SQL インスタンスへの接続に使用される PSCredential オブジェクト。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Database
このコマンドレットは、ServerInstance パラメーターで指定されたインスタンス内のこのデータベースに接続します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Encrypt
SQL Server に接続するときに使用する暗号化の種類。
この値は、Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの Encrypt
プロパティ SqlConnectionEncryptOption
にマップされます。
モジュールの v22 では、既定値は Optional
です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "必須" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | String |
指定可能な値: | Mandatory, Optional, Strict |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
既定では、コマンドレットが具体化されたノートブックをファイルに書き込むときに、ユーザーが誤って既存のファイルを上書きしないようにチェックが実行されます。
-Force
を使用してこのチェックをバイパスし、コマンドレットが既存のファイルを上書きできるようにします。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-HostNameInCertificate
SQL Server TLS/SSL 証明書の検証に使用するホスト名。
このパラメーターは、モジュールの v22 の新機能です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputFile
コマンドレットを使用して実行されるノートブック ファイル (.ipynb) を指定します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
入力ノートブックとして使用される Json 文字列としてノートブックを指定します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-OutputFile
実行されたノートブックを保存する目的の出力ノートブック ファイルを指定します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Password
Username パラメーターで指定された SQL Server 認証ログイン ID のパスワードを指定します。
パスワードでは大文字と小文字が区別されます。 可能であれば、Windows 認証を使用するか、代わりに -Credential パラメーターの使用を検討してください。
パスワード パラメーターの後にパスワードを指定すると、モニターを表示できるすべてのユーザーにパスワードが表示されます。
.ps1 スクリプトでパスワードの後にパスワードをコーディングすると、スクリプト ファイルを読んでいるすべてのユーザーにパスワードが表示されます。
ファイルに適切な NTFS アクセス許可を割り当てて、他のユーザーがファイルを読み取れないようにします。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProgressAction
スクリプト、コマンドレット、またはプロバイダーによって生成された進行状況の更新 (Write-Progress コマンドレットによって生成された進行状況バーなど) に対する PowerShell の応答方法を決定します。 Write-Progress コマンドレットは、コマンドの状態を示す進行状況バーを作成します。
型: | ActionPreference |
Aliases: | proga |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ServerInstance
データベース エンジンのインスタンスの名前を指定する文字列または SQL Server 管理オブジェクト (SMO) オブジェクトを指定します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-TrustServerCertificate
信頼を検証するために証明書チェーンのウォークをバイパスしながらチャネルを暗号化するかどうかを示します。
モジュールの v22 では、既定値は $true
です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "$false" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Username
データベース エンジンのインスタンスに SQL Server 認証接続を確立するためのログイン ID を指定します。
パスワードは、Password パラメーターを使用して指定する必要があります。
ユーザー名とパスワードを指定しない場合、このコマンドレットは、Windows PowerShell セッションを実行している Windows アカウントを使用して Windows 認証接続を試行します。 可能であれば、Windows 認証を使用します。
型: | Object |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
System.Object
System.Management.Automation.PSCredential
出力
System.Object
メモ
具体化されたノートブックを視覚化する良い方法は、Azure Data Studio を使用することです。