Invoke-SqlNotebook

Führt eine SQL Notebook-Datei (IPYNB) aus und gibt das materialisierte Notebook aus.

Syntax

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>]

Beschreibung

Das Cmdlet Invoke-SqlNotebook führt eine SQL Notebook-Datei (IPYNB) aus und gibt das materialisierte Notebook aus.

Das Notebook wird auf den bereitgestellten ServerInstance und Database ausgeführt.

Wenn das Cmdlet ausgeführt wird, befindet sich die resultierende Notebook-Datei am vom Benutzer definierten Speicherort oder im gleichen Verzeichnis der Eingabenotizbuchdatei.

Die Cmdlet-Outfile kann weggelassen werden: Wenn dies der Fall ist, wird sie mit dem Namen der Eingabedatei und dem an die Datei angefügten _out erstellt.

Beispiele

Beispiel 1: Ausführen eines Notebooks für den lokalen Server (Standard instance)

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

Mit diesem Befehl wird das Notebook mit der Standard-instance SQL Server auf dem Computer ausgeführt, von dem aus das Cmdlet ausgeführt wird. Da kein -OutputFile übergeben wurde, wird das materialisierte Notizbuch standardmäßig auf dem Datenträger mit demselben Namen wie das InputFile mit einem _out als Suffix für den Dateinamen gespeichert (notebook.ipynb –> notebook_out.ipynb).

Beispiel 2: Ausführen von Notebook auf dem lokalen Server (entaut instance) und Speichern des materialisierten Notebooks in einer angegebenen Datei

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

Mit diesem Befehl wird das Notebook mit der Standard-instance SQL Server auf dem Computer ausgeführt, von dem aus das Cmdlet ausgeführt wird. Das ausgeführte Notebook wird dann in der Datei gespeichert, die mit dem Parameter -OutputFile angegeben ist.

Beispiel 3: Ausführen von Notebook mit dem Parameter -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

Dies ist identisch mit Beispiel 1, nur dass die Verbindung mit dem Server über den Parameter -ConnectionString angegeben wird.

Beispiel 4: Ausführen des Notebooks für alle registrierten Server

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";
            }
        }

Verwenden Sie Registrierte Server oder den zentralen Verwaltungsserver, um Invoke-SqlNotebook für mehrere Server auszuführen. In diesem Beispiel wird die NetName Eigenschaft des SQL Server instance im Namen der Ausgabedatei enthalten. Das materialisierte Notizbuch wird mit dem Zeitstempel Jahr-Monat-Tag-Stunde-Minute versehen.

Beispiel 5: Notebook ausführen, Ergebnisse in Azure Data Studio öffnen

Installieren Sie die PowerShell-Erweiterung aus dem Azure Data Studio-Marketplace. Verwenden Sie die integrierte PowerShell-Konsole in Azure Data Studio, um die Ergebnisse des SQL-Notebooks direkt in Azure Data Studio auszuführen Invoke-SqlNotebook und zu öffnen Open-EditorFile .

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

Hinweis: Der Open-EditorFile Befehl ist nur in der integrierten PowerShell-Konsole verfügbar.

Beispiel 6: Ausführen von Notebook, Herstellen einer Verbindung mit Azure SQL Datenbanken (oder verwaltete Instanz) mithilfe eines Dienstprinzipals

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

Parameter

-AccessToken

Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.

Dies kann beispielsweise verwendet werden, um eine Verbindung mit SQL Azure DB und SQL Azure Managed Instance mit einem Service Principal oder einem Managed Identity herzustellen (siehe Verweise unten auf dieser Seite).

In gängigen Szenarien wird dieser Parameter mit etwa (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token abgerufen (erfordert das Az.Account-Modul).

Geben Sie bei Verwendung dieses Parameters keinen Benutzernamen, kein Kennwort oder keine Anmeldeinformationen an.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionString

Gibt einen Verbindungszeichenfolge an, um eine Verbindung mit dem Server herzustellen.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Das PSCredential-Objekt, dessen Felder Benutzername und Kennwort verwendet werden, um eine Verbindung mit dem SQL-instance herzustellen.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Database

Dieses Cmdlet stellt eine Verbindung mit dieser Datenbank in der instance her, die im ServerInstance-Parameter angegeben ist.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.

Dieser Wert wird der Encrypt Eigenschaft SqlConnectionEncryptOption des SqlConnection-Objekts des Microsoft.Data.SqlClient-Treibers zugeordnet.

In v22 des Moduls ist Optional der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Obligatorisch", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.

Dieser Parameter ist neu in v22 des Moduls.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Wenn das Cmdlet das materialisierte Notizbuch in eine Datei schreibt, wird standardmäßig eine Überprüfung durchgeführt, um zu verhindern, dass der Benutzer versehentlich eine vorhandene Datei überschreibt. Verwenden Sie -Force , um diese Überprüfung zu umgehen und zuzulassen, dass das Cmdlet die vorhandene Datei überschreiben kann.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

Der Hostname, der beim Überprüfen des TLS/SSL-Zertifikats von SQL Server verwendet werden soll.

Dieser Parameter ist neu in v22 des Moduls.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

Gibt eine Notebookdatei (IPYNB) an, die über das Cmdlet ausgeführt wird.

Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Gibt das Notebook als JSON-Zeichenfolge an, die als Eingabenotizbuch verwendet wird.

Type:Object
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-OutputFile

Gibt die gewünschte Notebook-Ausgabedatei an, für die das ausgeführte Notebook gespeichert wird.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Password

Gibt das Kennwort für die anmelde-ID der SQL Server-Authentifizierung an, die im Username-Parameter angegeben wurde.

Bei Kennwörtern wird nach Groß- und Kleinschreibung unterschieden. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung, oder erwägen Sie stattdessen die Verwendung des Parameters -Credential .

Wenn Sie den Parameter Password gefolgt von Ihrem Kennwort angeben, ist das Kennwort für jeden sichtbar, der Ihren Monitor sehen kann.

Wenn Sie Kennwort gefolgt von Ihrem Kennwort in einem .ps1-Skript codieren, wird Ihr Kennwort angezeigt, wenn sie die Skriptdatei lesen.

Weisen Sie der Datei die geeigneten NTFS-Berechtigungen zu, um zu verhindern, dass sie von anderen Benutzern gelesen werden kann.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

Gibt eine Zeichenfolge oder SQL Server SMO-Objekt (Management Objects) an, das den Namen eines instance der Datenbank-Engine angibt.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zur Überprüfung der Vertrauensstellung umgangen wird.

In v22 des Moduls ist $true der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.

Dieser Parameter ist neu in v22 des Moduls.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Username

Gibt die Anmelde-ID an, über die eine SQL Server-Authentifizierungsverbindung mit einer Instanz der Datenbank-Engine hergestellt wird.

Das Kennwort muss über den Parameter Password angegeben werden.

Wenn Benutzername und Kennwort nicht angegeben sind, versucht dieses Cmdlet eine Windows-Authentifizierungsverbindung mithilfe des Windows-Kontos, das die Windows PowerShell Sitzung ausführt. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

System.Object

System.Management.Automation.PSCredential

Ausgaben

System.Object

Hinweise

Eine gute Möglichkeit zum Visualisieren eines materialisierten Notebooks ist die Verwendung von Azure Data Studio.