Invoke-SqlNotebook
Esegue un file di SQL Notebook (con estensione ipynb) e restituisce il notebook materializzato.
Sintassi
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>]
Descrizione
Il cmdlet Invoke-SqlNotebook esegue un file sql Notebook (con estensione ipynb) e restituisce il notebook materializzato.
Il notebook verrà eseguito nel serverInstance e nel database fornito.
Quando viene eseguito il cmdlet, il file Notebook risultante si trova nel percorso definito dall'utente o nella stessa directory del file del notebook di input.
Il cmdlet outfile può essere omesso: se è il caso, verrà creato con il nome del file di input e il _out accodato al file.
Esempio
Esempio 1: Eseguire un notebook sul server locale (istanza predefinita)
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
Questo comando esegue il notebook sull'istanza predefinita di SQL Server in esecuzione nel computer da cui viene eseguito il cmdlet. Per impostazione predefinita, poiché non è stato passato -OutputFile , il notebook materializzato viene salvato su disco con lo stesso nome del File di input con un _out come suffisso al nome file (notebook.ipynb -> notebook_out.ipynb)
Esempio 2: Eseguire notebook nel server locale (istanza defaut) e salvare il notebook materializzato in un file specificato
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
Questo comando esegue il notebook sull'istanza predefinita di SQL Server in esecuzione nel computer da cui viene eseguito il cmdlet. Il notebook eseguito viene quindi salvato nel file specificato con il parametro -OutputFile .
Esempio 3: Eseguire notebook usando il parametro -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
Si tratta dello stesso esempio 1, solo che la connessione al server viene specificata tramite il parametro -ConnectionString .
Esempio 4: Eseguire notebook su tutti i server registrati
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";
}
}
Usare server registrati o server di gestione centrale per eseguire Invoke-SqlNotebook su più server.
In questo esempio, la NetName
proprietà dell'istanza di SQL Server verrà inclusa nel nome del file di output. Il notebook materializzato verrà contrassegnato con il timestamp annuale-mese-ora-minuto.
Esempio 5: Eseguire notebook, aprire risultati in Azure Data Studio
Installare l'estensione di PowerShell dal marketplace di Azure Data Studio.
Usare la console integrata di PowerShell in Azure Data Studio per eseguire Invoke-SqlNotebook
e usare Open-EditorFile
per aprire i risultati del notebook SQL direttamente in Azure Data Studio.
Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile
Nota: il Open-EditorFile
comando è disponibile solo nella console integrata di PowerShell.
Esempio 6: Eseguire notebook, connettersi a database Azure SQL (o Istanza gestita) usando un'entità servizio
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
Parametri
-AccessToken
Token di accesso usato per eseguire l'autenticazione per SQL Server, come alternativa all'autenticazione utente/password o a Windows.
Questa operazione può essere usata, ad esempio, per connettersi a SQL Azure DB
e SQL Azure Managed Instance
usando un Managed Identity
Service Principal
oggetto o (vedere i riferimenti nella parte inferiore di questa pagina)
Negli scenari comuni, questo parametro viene ottenuto con un valore simile (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
a (richiede il modulo Az.Account)
Non specificare UserName, Password o Credential quando si usa questo parametro.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionString
Specifica un stringa di connessione per connettersi al server.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
L'oggetto PSCredential i cui campi Nome utente e password verranno usati per connettersi all'istanza di SQL.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Database
Questo cmdlet si connette a questo database nell'istanza specificata nel parametro ServerInstance.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encrypt
Tipo di crittografia da usare durante la connessione a SQL Server.
Questo valore esegue il Encrypt
mapping alla proprietà SqlConnectionEncryptOption
nell'oggetto SqlConnection del driver Microsoft.Data.SqlClient.
Nella versione 22 del modulo il valore predefinito è Optional
(per la compatibilità con v21). Nella versione 23+ del modulo il valore predefinito sarà "Obbligatorio", che può creare una modifica di rilievo per gli script esistenti.
Questo parametro è nuovo nella versione 22 del modulo.
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Per impostazione predefinita, quando il cmdlet scrive il notebook materializzato in un file, viene eseguito un controllo per impedire all'utente di sovrascrivere accidentalmente un file esistente. Usare -Force
per ignorare questo controllo e consentire al cmdlet di sovrascrivere il file esistente.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostNameInCertificate
Nome host da usare per la convalida del certificato TLS/SSL di SQL Server.
Questo parametro è nuovo nella versione 22 del modulo.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputFile
Specifica un file notebook (con estensione ipynb) che verrà eseguito tramite il cmdlet.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifica il notebook come stringa Json che verrà usata come notebook di input.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputFile
Specifica il file del notebook di output desiderato per il quale verrà salvato il notebook eseguito.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Password
Specifica la password per l'ID di accesso di autenticazione SQL Server specificato nel parametro Nome utente.
Per le password viene fatta distinzione tra maiuscole e minuscole. Quando possibile, usare l'autenticazione di Windows o prendere in considerazione l'uso del parametro -Credential .
Se si specifica il parametro Password seguito dalla password, la password è visibile a chiunque possa visualizzare il monitoraggio.
Se si esegue il codice Password seguita dalla password in uno script .ps1, chiunque legge il file di script visualizzerà la password.
Assegnare le autorizzazioni NTFS appropriate al file per impedire ad altri utenti di leggere il file.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ServerInstance
Specifica una stringa di caratteri o un oggetto SMO (Management Objects) SQL Server che specifica il nome di un'istanza del motore di database.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.
Nella versione 22 del modulo il valore predefinito è $true
(per la compatibilità con v21). Nella versione 23+ del modulo il valore predefinito sarà "$false", che può creare una modifica di rilievo per gli script esistenti.
Questo parametro è nuovo nella versione 22 del modulo.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Username
Specifica l'ID di accesso per stabilire una connessione mediante l'autenticazione di SQL Server a un'istanza del motore di database.
La password deve essere specificata tramite il parametro Password.
Se nome utente e password non vengono specificati, questo cmdlet tenta una connessione di autenticazione di Windows usando l'account Windows che esegue la sessione di Windows PowerShell. Se possibile, usare l'autenticazione di Windows.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
System.Object
System.Management.Automation.PSCredential
Output
System.Object
Note
Un buon modo per visualizzare un notebook materializzato consiste nell'usare Azure Data Studio.