Partager via


Invoke-SqlNotebook

Exécute un fichier de notebook SQL (.ipynb) et génère le notebook matérialisé.

Syntaxe

ByConnectionParameters (Par défaut)

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

Description

L’applet de commande Invoke-SqlNotebook exécute un fichier SQL Notebook (.ipynb) et génère le notebook matérialisé.

Le notebook est exécuté sur ServerInstance et la base de données fournie.

Lorsque l’applet de commande est exécutée, le fichier Notebook résultant se trouve à l’emplacement défini par l’utilisateur ou dans le même répertoire du fichier de notebook d’entrée.

Le fichier outfile de l’applet de commande peut être omis : si c’est le cas, il est créé avec le nom du fichier d’entrée et l '_out ajouté au fichier.

Exemples

Exemple 1 : Exécuter un notebook sur le serveur local (instance par défaut)

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

Cette commande exécute le notebook sur l’instance par défaut de SQL Server exécutée sur l’ordinateur à partir duquel l’applet de commande est exécutée. Par défaut, étant donné qu’aucun -OutputFile n’a été transmis, le notebook matérialisé est enregistré sur le disque avec le même nom que InputFile avec un _out en tant que suffixe au nom de fichier (notebook.ipynb -> notebook_out.ipynb)

Exemple 2 : Exécuter notebook sur le serveur local (instance defaut) et enregistre le notebook matérialisé dans un fichier spécifié

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

Cette commande exécute le notebook sur l’instance par défaut de SQL Server exécutée sur l’ordinateur à partir duquel l’applet de commande est exécutée. Le notebook exécuté est ensuite enregistré dans le fichier spécifié avec le paramètre -OutputFile .

Exemple 3 : Exécuter un notebook à l’aide du paramètre -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

Il s’agit de l’exemple 1, uniquement que la connexion au serveur est spécifiée via le paramètre -ConnectionString .

Exemple 4 : Exécuter un notebook sur tous les serveurs inscrits

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

Utilisez des serveurs inscrits ou un serveur d’administration centrale pour exécuter Invoke-SqlNotebook sur plusieurs serveurs. Dans cet exemple, la NetName propriété de l’instance SQL Server sera incluse dans le nom du fichier de sortie . Le bloc-notes matérialisé sera horodaté avec l’horodatage de l’année-mois-jour-heure-minute.

Exemple 5 : Exécuter un notebook, ouvrir des résultats dans Azure Data Studio

Installez l’extension PowerShell à partir de la Place de marché Azure Data Studio. Utilisez la console intégrée PowerShell dans Azure Data Studio pour exécuter Invoke-SqlNotebook et utiliser Open-EditorFile pour ouvrir les résultats du notebook SQL directement dans Azure Data Studio.

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

Remarque : La Open-EditorFile commande est disponible uniquement dans la console intégrée PowerShell.

Exemple 6 : Exécuter un notebook, se connecter à des bases de données Azure SQL (ou Managed Instance) à l’aide d’un principal de service

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

Paramètres

-AccessToken

Jeton d’accès utilisé pour s’authentifier auprès de SQL Server, comme alternative à l’authentification utilisateur/mot de passe ou Windows.

Cela peut être utilisé, par exemple, pour se connecter à SQL Azure DBSQL Azure Managed Instance une ou à une Service PrincipalManaged Identity (voir les références en bas de cette page)

Dans les scénarios courants, ce paramètre est obtenu avec quelque chose comme (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token (nécessite le module Az.Account)

Ne spécifiez pas UserName, Password ou Credential lors de l’utilisation de ce paramètre.

Propriétés du paramètre

Type:PSObject
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-ConnectionString

Spécifie une chaîne de connexion à connecter au serveur.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionString
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Credential

Objet PSCredential dont les champs Nom d’utilisateur et Mot de passe seront utilisés pour se connecter à l’instance SQL.

Propriétés du paramètre

Type:PSCredential
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Database

Cette applet de commande se connecte à cette base de données dans l’instance spécifiée dans le paramètre ServerInstance.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Encrypt

Type de chiffrement à utiliser lors de la connexion à SQL Server.

Cette valeur est mappée à la Encrypt propriété SqlConnectionEncryptOption sur l’objet SqlConnection du pilote Microsoft.Data.SqlClient.

Dans la version 22 du module, la valeur par défaut est Optional (pour la compatibilité avec v21). Dans la version 23+ du module, la valeur par défaut est « Obligatoire », ce qui peut créer une modification cassant pour les scripts existants.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Valeurs acceptées:Mandatory, Optional, Strict
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Force

Par défaut, lorsque l’applet de commande écrit le notebook matérialisé dans un fichier, une vérification est effectuée pour empêcher l’utilisateur de remplacer accidentellement un fichier existant. Permet -Force de contourner cette vérification et d’autoriser l’applet de commande à remplacer le fichier existant.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-HostNameInCertificate

Nom d’hôte à utiliser pour valider le certificat SQL Server TLS/SSL.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-InputFile

Spécifie un fichier notebook (.ipynb) qui sera exécuté via l’applet de commande.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
ByConnectionString
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-InputObject

Spécifie le notebook en tant que chaîne Json qui sera utilisée comme bloc-notes d’entrée.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
ByConnectionString
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-OutputFile

Spécifie le fichier notebook de sortie souhaité pour lequel le notebook exécuté sera enregistré.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Password

Spécifie le mot de passe de l’ID de connexion d’authentification SQL Server spécifié dans le paramètre Username.

Les mots de passe respectent la casse. Si possible, utilisez l’authentification Windows ou envisagez d’utiliser le paramètre -Credential à la place.

Si vous spécifiez le paramètre Mot de passe suivi de votre mot de passe, le mot de passe est visible par toute personne qui peut voir votre moniteur.

Si vous codez le mot de passe suivi de votre mot de passe dans un script .ps1, toute personne qui lit le fichier de script voit votre mot de passe.

Attribuez les autorisations NTFS appropriées au fichier pour empêcher d’autres utilisateurs de pouvoir lire le fichier.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-ServerInstance

Spécifie une chaîne de caractères ou un objet SMO (SQL Server Management Objects) qui spécifie le nom d’une instance du moteur de base de données.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-TrustServerCertificate

Indique si le canal sera chiffré lors du contournement de la marche à pied de la chaîne de certificats pour valider l’approbation.

Dans la version 22 du module, la valeur par défaut est $true (pour la compatibilité avec v21). Dans v23+ du module, la valeur par défaut est « $false », ce qui peut créer une modification cassant pour les scripts existants.

Ce paramètre est nouveau dans v22 du module.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Username

Spécifie l’ID de connexion pour établir une connexion d’authentification SQL Server à une instance du moteur de base de données.

Le mot de passe doit être spécifié via le paramètre Password.

Si le nom d’utilisateur et le mot de passe ne sont pas spécifiés, cette applet de commande tente une connexion d’authentification Windows à l’aide du compte Windows exécutant la session Windows PowerShell. Lorsque c'est possible, utilisez l'authentification Windows.

Propriétés du paramètre

Type:Object
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

ByConnectionParameters
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

System.Object

System.Management.Automation.PSCredential

Sorties

System.Object

Notes

Une bonne façon de visualiser un notebook matérialisé consiste à utiliser Azure Data Studio.