Condividi tramite


Invoke-SqlNotebook

Esegue un file del notebook SQL (con estensione ipynb) e restituisce il notebook materializzato.

Sintassi

ByConnectionParameters (impostazione predefinita).

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

ByConnectionString

Invoke-SqlNotebook
    [-ConnectionString <Object>]
    [-InputFile <Object>]
    [-InputObject <Object>]
    [-OutputFile <Object>]
    [-Force]
    [<CommonParameters>]

ByInputFile

Invoke-SqlNotebook
    -InputFile <Object>
    [-OutputFile <Object>]
    [-Force]
    [<CommonParameters>]

ByInputObject

Invoke-SqlNotebook
    -InputObject <Object>
    [-OutputFile <Object>]
    [-Force]
    [<CommonParameters>]

Descrizione

Il cmdlet Invoke-SqlNotebook esegue un file di notebook SQL (con estensione ipynb) e restituisce il notebook materializzato.

Il notebook verrà eseguito in ServerInstance e Database fornito.

Quando viene eseguito il cmdlet, il file notebook risultante si troverà nel percorso definito dall'utente o nella stessa directory del file del notebook di input.

Il cmdlet outfile può essere omesso: se questo è 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 di InputFile 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 -ConnectionString parametro

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 timestamp con anno-mese-ora-ora.

Esempio 5: Eseguire notebook, aprire i risultati in Azure Data Studio

Installare l'estensione 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 SQL di Azure (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 a SQL Server, come alternativa all'autenticazione utente/password o windows.

Questa operazione può essere usata, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando o Service Principal ( Managed Identity vedere i riferimenti nella parte inferiore di questa pagina)

Negli scenari comuni, questo parametro viene ottenuto con qualcosa di simile (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token (richiede il modulo Az.Account)

Non specificare UserName, Password o Credential quando si usa questo parametro.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ConnectionString

Specifica una stringa di connessione da connettere al server.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionString
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Credential

Oggetto PSCredential i cui campi Nome utente e Password verranno usati per connettersi all'istanza di SQL.

Proprietà dei parametri

Tipo:PSCredential
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Database

Questo cmdlet si connette a questo database nell'istanza specificata nel parametro ServerInstance.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Encrypt

Tipo di crittografia da usare per 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, l'impostazione predefinita è Optional (per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "Obbligatorio", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Valori accettati:Mandatory, Optional, Strict
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-HostNameInCertificate

Nome host da usare per la convalida del certificato TLS/SSL di SQL Server.

Questo parametro è nuovo nella versione 22 del modulo.

Proprietà dei parametri

Tipo:String
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputFile

Specifica un file di notebook (con estensione ipynb) che verrà eseguito tramite il cmdlet .

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
ByConnectionString
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-InputObject

Specifica il notebook come stringa Json che verrà usato come notebook di input.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False
ByConnectionString
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-OutputFile

Specifica il file del notebook di output desiderato per il quale verrà salvato il notebook eseguito.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Password

Specifica la password per l'ID di accesso di autenticazione di SQL Server specificato nel parametro Username .

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 monitor.

Se si codifica la 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.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-ServerInstance

Specifica una stringa di caratteri o un oggetto SMO (SQL Server Management Objects) che specifica il nome di un'istanza del motore di database.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-TrustServerCertificate

Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.

Nella versione 22 del modulo, l'impostazione predefinita è $true (per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "$false", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Username

Specifica l'ID di accesso per stabilire una connessione di 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 sono specificati, questo cmdlet tenta una connessione di autenticazione di Windows usando l'account di Windows che esegue la sessione di Windows PowerShell. Se possibile, usare l'autenticazione di Windows.

Proprietà dei parametri

Tipo:Object
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

ByConnectionParameters
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

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.