Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:✅Armazém de dados no Microsoft Fabric
Importante
Esse recurso está na versão prévia.
Os scripts de pré-implantação e pós-implantação permitem executar comandos de Transact-SQL personalizados como parte da implantação de um warehouse em Fabric. Use scripts de pré-implantação e pós-implantação para limpar dados, dados de referência de semente ou aplicar a segurança do SQL que não é expressa no esquema do warehouse.
Em um Fabric Data Warehouse, um script de pré-implantação ou pós-implantação é uma consulta SQL compartilhada. Você pode criar esses scripts em um projeto de banco de dados SQL e designá-los no portal do Fabric. A designação é armazenada como metadados no nível do armazém e está comprometida com o controle do código-fonte como parte do arquivo do .sqlproj armazém, portanto, ele percorre o Git e os pipelines de implantação sem reaplicação manual.
Este artigo explica o que são scripts de pré-implantação e pós-implantação, como configurá-los no portal Fabric, como eles se comportam com pipelines de controle do código-fonte e implantação e como criar no SSMS (Visual Studio Code e SQL Server Management Studio).
Importante
Sempre examine os scripts e as configurações de implantação antes da publicação. Teste primeiro em ambientes de desenvolvimento e teste para evitar perda de dados não intencional.
O que são scripts de pré-implantação e pós-implantação?
Quando você conecta um workspace ao controle do código-fonte, cada warehouse é representado como um projeto de banco de dados SQL: um script controlado pela origem dos objetos SQL que compõem o esquema do warehouse (tabelas, exibições, procedimentos armazenados e funções). Cada objeto é armazenado como um .sql arquivo que contém sua sintaxe DDL (linguagem de definição de dados), como CREATE TABLE. Os objetos descrevem o estado desejado do esquema e o processo de implantação compara esse estado desejado com o warehouse de destino e gera um script T-SQL diferencial que cria, altera ou descarta objetos para que o destino corresponda ao projeto.
Os scripts de pré-implantação e pós-implantação estendem esse processo com Transact-SQL executados em torno da implantação do esquema:
- Um script de pré-implantação é executado antes que o plano de implantação de esquema seja aplicado.
- Um script pós-implantação é executado após a conclusão do plano de implantação do esquema.
Um script de pré-implantação ou pós-implantação é uma das consultas compartilhadas armazenadas na pasta Consultas do armazém. Um warehouse dá suporte a no máximo um script de pré-implantação e um script pós-implantação. A designação é armazenada como metadados no nível do armazém em vez de duplicar o conteúdo do script, de modo que adiciona uma sobrecarga de armazenamento insignificante.
Como cada script designado é executado sempre que o armazém é implantado, crie o Transact-SQL para ser idempotente (seguro para ser executado repetidamente).
Dica
Quando um script é idempotente, ele pode ser executado várias vezes sem causar problemas e você pode implantar em vários bancos de dados sem a necessidade de predeterminar seu status.
Casos de uso comuns
- Referência e gerenciamento de dados estáticos: inserir, atualizar ou excluir linhas de tabelas de pesquisa, configuração ou referência após a implantação do esquema.
- Limpeza de dados: remova dados obsoletos ou temporários antes ou depois que as alterações de esquema forem aplicadas.
- Configuração do ambiente: aplique configurações ou inicialize o estado que difere entre ambientes de desenvolvimento, teste e produção.
- Inicialização de pipeline orientada por metadados: Prepare o estado do armazém de dados necessário para as etapas posteriores do pipeline.
-
Segurança do SQL: os dados da tabela do warehouse e os recursos de segurança do SQL, como funções, usuários e
GRANT/DENYpermissões, não estão incluídos no projeto do banco de dados SQL. Use um script pós-implantação para recriar esses objetos após a implantação, incluindo diferenças entre ambientes de teste e de produção. Para obter exemplos, consulte Exemplo de script pós-implantação para segurança do SQL.
Estrutura e sintaxe de arquivo do projeto SQL
Um projeto SQL de warehouse faz referência aos scripts de pré-implantação e pós-implantação no arquivo de projeto (.sqlproj) com os tipos de item PreDeploy e PostDeploy. Cada entrada aponta para um único arquivo de consulta compartilhado no projeto.
O exemplo a seguir designa pre-deployment.sql como o script de pré-implantação e post-deployment.sql como o script pós-implantação:
<ItemGroup>
<PreDeploy Include="pre-deployment.sql" />
<PostDeploy Include="post-deployment.sql" />
</ItemGroup>
Importante
Fabric Data Warehouse dá suporte apenas a um único arquivo para o script de pré-implantação e um único arquivo para o script pós-implantação. Não há suporte para a composição de um script de vários arquivos , por exemplo, usando o comando SQLCMD :r para fazer referência a outros arquivos. Se o .sqlproj contiver várias entradas de pré-implantação ou pós-implantação, a atualização do Git falhará.
Exemplo de script pós-implantação para segurança do SQL
Como os recursos de segurança do SQL não são incluídos no projeto de banco de dados SQL, um script de pós-implantação é uma maneira comum de recriá-los após a implantação de um data warehouse. Escreva o script para que ele possa ser executado em cada implantação.
O exemplo a seguir cria uma função de banco de dados personalizada nomeada DataReaders e concede SELECT permissões ao dbo esquema.
-- post-deployment.sql
-- Recreate a role and grant permissions after deployment.
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'DataReaders')
BEGIN
CREATE ROLE DataReaders;
END;
GO
GRANT SELECT ON SCHEMA::dbo TO DataReaders;
GO
Note
Fabric Data Warehouse não dá suporte a todas as instruções deTransact-SQL disponíveis no SQL Server. Verifique se as instruções em seus scripts têm suporte no Fabric Data Warehouse.
Configurar scripts de pré-implantação e pós-implantação no portal do Fabric
No portal do Fabric, defina uma consulta compartilhada existente como script de pré-implantação ou de pós-implantação. Você pode fazer isso de Pesquisador de Objetos ou das Configurações do item de armazém.
Você não pode definir uma consulta compartilhada como o script de pré-implantação e o de pós-implantação ao mesmo tempo.
De Pesquisador de Objetos
- No editor do warehouse, expanda a pasta Consultas em Pesquisador de Objetos.
- Clique com o botão direito do mouse na consulta compartilhada que você deseja usar.
- Selecione Definir scripts de implantação. Essa ação leva você ao painel de configurações do item.
Nas configurações do Item
- Abra as configurações de Item do armazém.
- Vá para a seção CI-CD .
- Use as listas suspensas Script de pré-implantação e Script de pós-implantação para selecionar uma consulta compartilhada em cada uma delas. Cada menu suspenso exibe todas as consultas compartilhadas no armazém, além da opção (nenhuma) para deixar a definição sem configuração.
As seleções que você faz são armazenadas como metadados no nível do armazém e são mantidas em sincronia entre Pesquisador de Objetos e configurações de item.
Como os scripts de pré-implantação e pós-implantação se comportam com a implantação
Com a integração do Git
Quando você conecta um espaço de trabalho a um repositório Git, as designações de pré-implantação e pós-implantação são serializadas no arquivo .sqlproj do warehouse ao fazer commit. Quando você atualiza o warehouse do Git, Fabric aplica as alterações ao live warehouse e executa os scripts na ordem:
- O script de pré-implantação é executado antes que as alterações de esquema sejam aplicadas.
- O plano de implantação do esquema foi aplicado.
- O script pós-implantação é executado após a conclusão das alterações de esquema.
Designações de ida e volta pelo Git: configurar um script no portal e emiti-lo, ou criar no .sqlproj espaço de trabalho e atualizá-lo, produz um resultado consistente. Confirmações e atualizações repetidas não duplicam ou perdem a configuração. Como apenas uma pré-implantação e um script pós-implantação são permitidos, uma configuração criada no Git substitui qualquer designação existente no warehouse na atualização.
Com pipelines de implantação
Os pipelines de implantação recebem as designações de pré-implantação e pós-implantação ao promover um warehouse entre os estágios Desenvolvimento, Teste e Produção. Os scripts designados são executados deterministicamente em cada ambiente de destino, para que você possa usá-los para aplicar a configuração do ambiente ou reaplicar a segurança do SQL à medida que o conteúdo se move entre os estágios.
Em workspaces sem controle do código-fonte
A definição de item do warehouse inclui as designações de pré-implantação e pós-implantação mesmo quando o workspace não está conectado ao controle do código-fonte. Exportar o warehouse inclui a configuração e importá-lo restaura a configuração intacta.
Criar scripts de pré-implantação e pós-implantação em um projeto de banco de dados SQL
Em vez do portal Fabric, você pode criar scripts de pré-implantação e pós-implantação diretamente no projeto do banco de dados SQL do armazém usando a extensão projetos do Banco de Dados SQL em Visual Studio Code ou a experiência integrada de projetos SQL no SQL Server Management Studio. A configuração aparece no portal do Fabric — em ambos, Pesquisador de Objetos e item Configurações — após a próxima atualização do Git.
Visual Studio Code
- Instale a extensão Projetos do Banco de Dados SQL no Visual Studio Code.
- Abra o projeto do banco de dados SQL para seu armazém. Se o seu espaço de trabalho estiver conectado ao Git, clone o repositório e, em seguida, abra a pasta do projeto do data warehouse.
- Na exibição Projetos de Banco de Dados , clique com o botão direito do mouse no nó do projeto e selecione Adicionar Script de Pré-Implantação ou Adicionar Script pós-implantação.
- Forneça um nome de script sem a extensão do arquivo. O arquivo de script é adicionado ao projeto e aberto no editor.
- Adicione sua Transact-SQL ao script e salve o arquivo. Verifique se o arquivo foi salvo na
.sharedqueriespasta para a próxima atualização do Git. - Confirme e envie por push as alterações para o repositório Git e atualize o workspace do controle do código-fonte para aplicar a configuração.
SQL Server Management Studio
- Use SQL Server Management Studio 22 ou posterior, que inclui a experiência de Projetos do Banco de Dados SQL.
- Abra o projeto do banco de dados SQL para seu armazém.
- Em Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar>Script. Selecione o Script de pré-implantação ou Script de pós-implantação.
- O arquivo de script é adicionado ao projeto e aberto no editor de consultas.
- Adicione sua Transact-SQL ao script e salve o arquivo. Salve o arquivo na
.sharedqueriespasta para a próxima atualização do Git. - Faça commit e push das alterações no seu repositório Git e, em seguida, atualize o espaço de trabalho a partir do controle de código-fonte para aplicar a configuração.
Editar o arquivo de projeto diretamente
Em qualquer ferramenta, você pode designar um script editando o arquivo .sqlproj e adicionando um único item PreDeploy ou PostDeploy a um ItemGroup:
<ItemGroup>
<PreDeploy Include="./sharedqueries/pre-deployment.sql" />
<PostDeploy Include="./sharedqueries/post-deployment.sql" />
</ItemGroup>
Migrar de projetos SQL existentes
Se você migrar um .sqlproj do SQL Server Data Tools (SSDT) ou do Visual Studio que já contém itens <PreDeploy> e <PostDeploy>, esses itens são reconhecidos e mapeados para a configuração de pré-implantação e pós-implantação do Fabric quando você importar o projeto via Git. Como Fabric dá suporte apenas a uma pré-implantação e um script pós-implantação, verifique se o projeto contém no máximo uma entrada de cada tipo antes de importar.
Considerações e limitações
- Um warehouse dá suporte apenas a um único script de pré-implantação e um único script pós-implantação. Ele não dá suporte a vários arquivos por script.
- Você não pode definir a mesma consulta compartilhada como script de pré-implantação e de pós-implantação.
- Se você excluir uma consulta compartilhada designada como um script de pré-implantação ou pós-implantação, a atribuição correspondente será removida automaticamente.
- Se você alterar uma consulta compartilhada definida como script de pré-implantação ou pós-implantação para uma consulta de usuário, a designação correspondente será removida automaticamente.
- Os scripts pré e pós-implantação são executados em cada implantação de armazém. Os scripts Transact-SQL devem ser idempotentes, para que as execuções repetidas não falhem ou criem objetos duplicados.
- Os scripts de pré-implantação e pós-implantação não são validados no modelo de banco de dados no momento da compilação. Erros nos scripts surgem durante a implantação, e uma falha em um script interrompe a implantação.
- Você só pode usar Transact-SQL com suporte no Fabric Data Warehouse.
- A identidade que executa a implantação deve ter as permissões necessárias para executar o conteúdo do script.