次の方法で共有


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 DBSQL Azure Managed Instance に接続するために使用できます (このページの下部にあるリファレンスを参照してください)。

一般的なシナリオでは、このパラメーターは (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token (Az.Account モジュールが必要) などを使用して取得されます。

このパラメーター 使用する場合は、UserNamePassword、または 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 を使用することです。