Invoke-SqlNotebook
Executa um arquivo do SqL Notebook (.ipynb) e gera o notebook materializado.
Sintaxe
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]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-SqlNotebook
[-ConnectionString <Object>]
[-InputFile <Object>]
[-InputObject <Object>]
[-OutputFile <Object>]
[-Force]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-SqlNotebook
-InputFile <Object>
[-OutputFile <Object>]
[-Force]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-SqlNotebook
-InputObject <Object>
[-OutputFile <Object>]
[-Force]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Description
O cmdlet Invoke-SqlNotebook executa um arquivo 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 do 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 que o 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 do 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 -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
Isso é o mesmo que o Exemplo 1, apenas 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 propriedade NetName
da instância do SQL Server será incluída no nome do arquivo de saída; o bloco de anotações materializado será carimbado com o ano-mês-dia-hora-minuto.
Exemplo 5: Executar Notebook, Abrir Resultados no Azure Data Studio
Instale o de extensão do PowerShell Invoke-SqlNotebook
e usar Open-EditorFile
para abrir os resultados do SQL Notebook 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 comando Open-EditorFile
só está disponível no Console Integrado do PowerShell.
Exemplo 6: Executar Notebook, Conectar-se aos 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 no SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.
Isso pode ser usado, por exemplo, para se conectar a SQL Azure DB
e SQL Azure Managed Instance
usando 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
Tipo: | PSObject |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ConnectionString
Especifica uma cadeia de conexão para se conectar ao servidor.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Credential
O objeto PSCredential cujos campos Nome de usuário e senha serão usados para se conectar à instância do SQL.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Database
Esse cmdlet se conecta a esse banco de dados na instância especificada no parâmetro ServerInstance.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Encrypt
O tipo de criptografia a ser usado ao se conectar ao SQL Server.
Esse valor é mapeado para a propriedade Encrypt
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 significativa para scripts existentes.
Esse parâmetro é novo na v22 do módulo.
Tipo: | String |
Valores aceitos: | Mandatory, Optional, Strict |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Force
Por padrão, quando o cmdlet grava o notebook materializado em um arquivo, uma verificação é executada para impedir que o usuário substitua acidentalmente um arquivo existente. Use -Force
para ignorar essa verificação e permitir que o cmdlet substitua o arquivo existente.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputFile
Especifica um Arquivo de Notebook (.ipynb) que será executado por meio do cmdlet.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InputObject
Especifica o Bloco de Anotações como uma cadeia de caracteres Json que será usada como o bloco de anotações de entrada.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-OutputFile
Especifica o arquivo de notebook de saída desejado para o qual o Notebook executado será salvo.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Password
Especifica a senha da ID de logon da Autenticação do SQL Server 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 Senha seguido de sua senha, a senha ficará visível para qualquer pessoa que possa ver o monitor.
Se você codificar senha seguida de sua senha em um script de .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 possam ler o arquivo.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-ProgressAction
Determina como o PowerShell responde às atualizações de progresso geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que mostram o status de um comando.
Tipo: | ActionPreference |
Aliases: | proga |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 significativa para scripts existentes.
Esse parâmetro é novo na v22 do módulo.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Username
Especifica a ID de logon para fazer uma conexão de Autenticação do SQL Server com uma instância do Mecanismo de Banco de Dados.
A senha deve ser especificada por meio do parâmetro Password.
Se o nome de usuário e a 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 do Windows PowerShell. Quando possível, use a Autenticação do Windows.
Tipo: | Object |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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.