Invoke-SqlNotebook
Ejecuta un archivo de SQL Notebook (.ipynb) y genera el cuaderno materializado.
Sintaxis
ByConnectionParameters (Es el valor predeterminado).
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
El cmdlet Invoke-SqlNotebook ejecuta un archivo de SQL Notebook (.ipynb) y genera el cuaderno materializado.
El cuaderno se ejecutará en serverinstance y la base de datos proporcionadas.
Cuando se ejecuta el cmdlet, el archivo notebook resultante estará en la ubicación en la que el usuario define o en el mismo directorio del archivo de cuaderno de entrada.
Se puede omitir el archivo outfile del cmdlet: si es así, se creará con el nombre del archivo de entrada y el _out anexado al archivo.
Ejemplos
Ejemplo 1: Ejecutar un cuaderno en el servidor local (instancia predeterminada)
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
Este comando ejecuta el cuaderno en la instancia predeterminada de SQL Server que se ejecuta en la máquina desde la que se ejecuta el cmdlet. De forma predeterminada, dado que no se pasó -OutputFile , el cuaderno materializado se guarda en el disco con el mismo nombre que InputFile con un _out como sufijo al nombre de archivo (notebook.ipynb -> notebook_out.ipynb)
Ejemplo 2: Ejecutar cuaderno en el servidor local (instancia de defaut) y guardar el cuaderno materializado en un archivo especificado
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
Este comando ejecuta el cuaderno en la instancia predeterminada de SQL Server que se ejecuta en la máquina desde la que se ejecuta el cmdlet. A continuación, el cuaderno ejecutado se guarda en el archivo especificado con el parámetro -OutputFile .
Ejemplo 3: Ejecutar cuaderno mediante -ConnectionString parámetro
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
Esto es lo mismo que el ejemplo 1, solo que la conexión al servidor se especifica a través del parámetro -ConnectionString .
Ejemplo 4: Ejecutar cuaderno en todos los servidores registrados
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";
}
}
Use servidores registrados o servidor de administración central para ejecutar Invoke-SqlNotebook en varios servidores.
En este ejemplo, la NetName propiedad de la instancia de SQL Server se incluirá en el nombre del archivo de salida; el cuaderno materializado se marcará con un minuto de hora de mes de año.
Ejemplo 5: Ejecutar cuaderno, Abrir resultados en Azure Data Studio
Instale la extensión de PowerShell desde Marketplace de Azure Data Studio.
Use la consola integrada de PowerShell en Azure Data Studio para ejecutar Invoke-SqlNotebook y usar Open-EditorFile para abrir los resultados de SQL Notebook directamente en Azure Data Studio.
Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile
Nota: El Open-EditorFile comando solo está disponible en la consola integrada de PowerShell.
Ejemplo 6: Ejecución de cuadernos, Conexión a bases de datos de Azure SQL (o Instancia administrada) mediante una entidad de servicio
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
Parámetros
-AccessToken
El token de acceso que se usa para autenticarse en SQL Server, como alternativa a la autenticación de usuario o contraseña de Windows.
Esto se puede usar, por ejemplo, para conectarse a SQL Azure DB y SQL Azure Managed Instance usar o Service PrincipalManaged Identity (vea referencias en la parte inferior de esta página).
En escenarios comunes, este parámetro se obtiene con algo parecido (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token (requiere el módulo Az.Account)
No especifique UserName, Password ni Credential al usar este parámetro.
Propiedades del parámetro
| Tipo: | PSObject |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-ConnectionString
Especifica una cadena de conexión para conectarse al servidor.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionString
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Credential
Objeto PSCredential cuyos campos Nombre de usuario y Contraseña se usarán para conectarse a la instancia de SQL.
Propiedades del parámetro
| Tipo: | PSCredential |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Database
Este cmdlet se conecta a esta base de datos en la instancia especificada en el parámetro ServerInstance.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Encrypt
Tipo de cifrado que se va a usar al conectarse a SQL Server.
Este valor se asigna a la Encrypt propiedad SqlConnectionEncryptOption del objeto SqlConnection del controlador Microsoft.Data.SqlClient.
En la versión 22 del módulo, el valor predeterminado es Optional (por compatibilidad con v21). En la versión 23+ del módulo, el valor predeterminado será "Obligatorio", que puede crear un cambio importante para los scripts existentes.
Este parámetro es nuevo en la versión 22 del módulo.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Valores aceptados: | Mandatory, Optional, Strict |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Force
De forma predeterminada, cuando el cmdlet escribe el cuaderno materializado en un archivo, se realiza una comprobación para evitar que el usuario sobrescriba accidentalmente un archivo existente. Use -Force para omitir esta comprobación y permitir que el cmdlet sobrescriba el archivo existente.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-HostNameInCertificate
Nombre de host que se va a usar al validar el certificado TLS/SSL de SQL Server.
Este parámetro es nuevo en la versión 22 del módulo.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputFile
Especifica un archivo de cuaderno (.ipynb) que se ejecutará a través del cmdlet .
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ByConnectionString
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-InputObject
Especifica el cuaderno como una cadena Json que se usará como cuaderno de entrada.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
ByConnectionString
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-OutputFile
Especifica el archivo de cuaderno de salida deseado para el que se guardará el cuaderno ejecutado.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Password
Especifica la contraseña del identificador de inicio de sesión de autenticación de SQL Server que se especificó en el parámetro Username.
En las contraseñas se distingue entre mayúsculas y minúsculas. Cuando sea posible, use la autenticación de Windows o considere la posibilidad de usar el parámetro -Credential en su lugar.
Si especifica el parámetro Password seguido de la contraseña, la contraseña es visible para cualquier persona que pueda ver el monitor.
Si codifica la contraseña seguida de la contraseña en un script de .ps1, cualquier persona que lea el archivo de script verá su contraseña.
Asigne los permisos NTFS adecuados al archivo para evitar que otros usuarios puedan leer el archivo.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-ServerInstance
Especifica una cadena de caracteres o un objeto Objetos de administración de SQL Server (SMO) que especifica el nombre de una instancia del motor de base de datos.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-TrustServerCertificate
Indica si el canal se cifrará mientras se pasa la cadena de certificados para validar la confianza.
En la versión 22 del módulo, el valor predeterminado es $true (por compatibilidad con v21). En la versión 23+ del módulo, el valor predeterminado será "$false", que puede crear un cambio importante para los scripts existentes.
Este parámetro es nuevo en la versión 22 del módulo.
Propiedades del parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Username
Especifica el identificador de inicio de sesión para realizar una conexión de autenticación de SQL Server a una instancia del motor de base de datos.
La contraseña debe especificarse a través del parámetro Password.
Si no se especifica el nombre de usuario y la contraseña, este cmdlet intenta una conexión de autenticación de Windows mediante la cuenta de Windows que ejecuta la sesión de Windows PowerShell. Siempre que sea posible, utilice la autenticación de Windows.
Propiedades del parámetro
| Tipo: | Object |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
ByConnectionParameters
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
System.Object
System.Management.Automation.PSCredential
Salidas
System.Object
Notas
Una buena manera de visualizar un cuaderno materializado es usar Azure Data Studio.