Invoke-SqlNotebook
Executa um arquivo do SqL Notebook (.ipynb) e gera o notebook materializado.
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>]
Description
O cmdlet Invoke-SqlNotebook executa um arquivo do SqL Notebook (.ipynb) e gera o notebook materializado.
O Notebook será executado no ServerInstance e no Banco de Dados fornecidos.
Quando o cmdlet for executado, o arquivo do Notebook resultante estará no local definido pelo usuário ou no mesmo diretório do arquivo de notebook de entrada.
O arquivo de saída do cmdlet pode ser omitido: se esse for o caso, ele será criado com o nome do arquivo de entrada e o _out acrescentado ao arquivo.
Exemplos
Exemplo 1: executar um notebook no servidor local (instância padrão)
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
Esse comando executa o notebook na instância padrão de SQL Server em execução no computador do qual o cmdlet é executado. Por padrão, como nenhum -OutputFile foi passado, o notebook materializado é salvo em disco com o mesmo nome do InputFile com um _out como um sufixo para o nome do arquivo (notebook.ipynb -> notebook_out.ipynb)
Exemplo 2: Executar Notebook no servidor local (instância desfator) e salva o Notebook materializado em um arquivo 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
Esse comando executa o notebook na instância padrão de SQL Server em execução no computador do qual o cmdlet é executado. O notebook executado é salvo no arquivo especificado com o parâmetro -OutputFile .
Exemplo 3: Executar Notebook usando o parâmetro -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
Isso é o mesmo que o Exemplo 1, somente que a conexão com o servidor é especificada por meio do parâmetro -ConnectionString .
Exemplo 4: Executar Notebook em todos os 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 ou Servidor de Gerenciamento Central para executar Invoke-SqlNotebook em vários servidores.
Neste exemplo, a NetName
propriedade da instância de SQL Server será incluída no nome do arquivo de saída; o bloco de anotações materializado será carimbado com um ano-mês-dia-hora-minuto.
Exemplo 5: Executar Notebook, Abrir Resultados no Azure Data Studio
Instale a extensão do PowerShell do marketplace do Azure Data Studio.
Use o Console Integrado do PowerShell no Azure Data Studio para executar Invoke-SqlNotebook
e usar Open-EditorFile
para abrir os resultados do Bloco de Anotações SQL diretamente no Azure Data Studio.
Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile
Observação: o Open-EditorFile
comando só está disponível no Console Integrado do PowerShell.
Exemplo 6: Executar Notebook, Conectar-se a bancos de dados SQL do Azure (ou Instância Gerenciada) usando uma entidade de serviço
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
O token de acesso usado para autenticar para SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.
Isso pode ser usado, por exemplo, para se conectar SQL Azure DB
e SQL Azure Managed Instance
usar um Service Principal
ou um Managed Identity
(consulte referências na parte inferior desta página)
Em cenários comuns, esse parâmetro é obtido com algo como (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
(requer o módulo Az.Account)
Não especifique UserName, Password ou Credential ao usar esse parâmetro.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionString
Especifica um cadeia de conexão para se conectar ao servidor.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
O objeto PSCredential cujos campos Nome de usuário e senha serão usados para se conectar à instância do SQL.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Database
Esse cmdlet se conecta a esse banco de dados na instância especificada no parâmetro ServerInstance.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encrypt
O tipo de criptografia a ser usado ao se conectar a SQL Server.
Esse valor é mapeado para a Encrypt
propriedade SqlConnectionEncryptOption
no objeto SqlConnection do driver Microsoft.Data.SqlClient.
Na v22 do módulo, o padrão é Optional
(para compatibilidade com v21). Na v23+ do módulo, o valor padrão será 'Obrigatório', o que pode criar uma alteração interruptiva para scripts existentes.
Esse parâmetro é novo na v22 do módulo.
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Por padrão, quando o cmdlet grava o notebook materializado em um arquivo, um marcar é executado para impedir que o usuário substitua acidentalmente um arquivo existente. Use -Force
para ignorar esse marcar e permitir que o cmdlet substitua o arquivo existente.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostNameInCertificate
O nome do host a ser usado na validação do certificado TLS/SSL do SQL Server.
Esse parâmetro é novo na v22 do módulo.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputFile
Especifica um arquivo de notebook (.ipynb) que será executado por meio do cmdlet .
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifica o Notebook como uma cadeia de caracteres Json que será usada como o notebook de entrada.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputFile
Especifica o arquivo de notebook de saída desejado para o qual o Notebook executado será salvo.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Password
Especifica a senha do SQL Server ID de logon de autenticação especificada no parâmetro Username.
As senhas diferenciam maiúsculas de minúsculas. Quando possível, use a Autenticação do Windows ou considere usar o parâmetro -Credential .
Se você especificar o parâmetro Password seguido de sua senha, a senha ficará visível para qualquer pessoa que possa ver o monitor.
Se você codificar Senha seguido de sua senha em um script .ps1, qualquer pessoa que ler o arquivo de script verá sua senha.
Atribua as permissões NTFS apropriadas ao arquivo para impedir que outros usuários sejam capazes de ler o arquivo.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ServerInstance
Especifica uma cadeia de caracteres ou um objeto SMO (SQL Server Management Objects) que especifica o nome de uma instância do Mecanismo de Banco de Dados.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
Indica se o canal será criptografado ao ignorar a cadeia de certificados para validar a confiança.
Na v22 do módulo, o padrão é $true
(para compatibilidade com v21). Na v23+ do módulo, o valor padrão será '$false', o que pode criar uma alteração interruptiva para scripts existentes.
Esse parâmetro é novo na v22 do módulo.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Username
Especifica a ID de logon para fazer uma conexão de Autenticação do SQL Server para uma instância do Mecanismo de Banco de Dados.
A senha deve ser especificada por meio do parâmetro Password.
Se Nome de usuário e senha não forem especificados, esse cmdlet tentará uma conexão de Autenticação do Windows usando a conta do Windows que executa a sessão Windows PowerShell. Quando possível, use a Autenticação do Windows.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
System.Object
System.Management.Automation.PSCredential
Saídas
System.Object
Observações
Uma boa maneira de visualizar um Notebook materializado é usar o Azure Data Studio.