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.