Criando pacotes SSIS programaticamente usando o ManagedDTS

Criando pacotes SSIS programaticamente usando o ManagedDTS

The control flow of the package created using ManagedDTS
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Nos artigos publicados anteriormente nesta série, explicamos como usar o Biml para criar e gerenciar SQL
    Pacotes do SSIS (Server Integration Services). Neste artigo, falaremos sobre a primeira alternativa dessa linguagem de marcação, que é o modelo de objeto gerenciado do Integration Services (ManagedDTS e assemblies relacionados) fornecido pela Microsoft.

Neste artigo, ilustraremos primeiro como criar, salvar e executar pacotes SSIS usando o ManagedDTS em C # e, em seguida,
    faremos uma pequena comparação com o Biml.

Modelo de objeto do Integration Services

Para explicar o modelo de objeto dos serviços de integração, primeiro precisamos dar uma olhada na arquitetura do SSIS. Como mostrado em
    a figura abaixo (Referência: Visão Geral da Programação do Integration Services)

Arquitetura SSIS

Figura 1 – Arquitetura SSIS

Podemos observar que os principais componentes do SSIS são:

  1. Serviço de Serviços de Integração: É um serviço do Windows que monitora a execução de pacotes, mas também gerencia o armazenamento de pacotes no SQL Server
  2. Mecanismo de tempo de execução do Integration Services: Controla o gerenciamento e a execução de pacotes, implementando a infraestrutura que permite a ordem de execução, o log, as variáveis ​​e a manipulação de eventos
  3. O mecanismo de fluxo de dados: Ele gerencia as tarefas de fluxo de dados em um pacote, pois é especializada para mover dados entre diferentes origens e destinos e pode conter componentes adicionais

Conforme mostrado na arquitetura, o tempo de execução e o mecanismo de fluxo de dados têm um modelo de objeto que permite que eles sejam totalmente gerenciados a partir de aplicativos personalizados, designer do SSIS ou assistente de Importação e Exportação do SQL Server. Além disso, ambos são escritos em código nativo e podem ser acessados ​​usando utilitários de linha de comando (DTExec) ou aplicativos personalizados.

O modelo de objeto permite que os desenvolvedores desenvolvam e gerencia pacotes SSIS usando linguagens compatíveis com .NET.

Desenvolvimento de pacotes SSIS usando o modelo de objeto gerenciado

Assembléias de desenvolvimento do SSIS

Os seguintes assemblies são aqueles que você pode precisar para desenvolver, gerenciar e executar pacotes SSIS do .NET
    formulários:

Nome

Nome Qualificado

Descrição

ManagedDTS

Microsoft.SqlServer.ManagedDTS.dll

Mecanismo de tempo de execução gerenciado

PipelineHost

Microsoft.SqlServer.PipelineHost.dll

Mecanismo de fluxo de dados gerenciados

DTSRuntimeWrap

Microsoft.SqlServer.DTSRuntimeWrap.dll

Wrapper para o mecanismo de tempo de execução nativo

DTSPipelineWrap

Microsoft.SqlServer.DTSPipelineWrap.dll

Wrapper para mecanismo de fluxo de dados nativo

Antes do SQL Server 2019, esses assemblies eram localizados em : Arquivos de Programas Microsoft SQL Server SDK AssembliesCaminho No SQL Server 2019, eles estão localizados no global
    cache de montagem com os assemblies da estrutura .NET.

Criando um novo pacote usando o modelo de objeto

Para criar um pacote SSIS a partir do seu código .Net, você deve adicionar o assembly ManagedDTS como uma referência no seu projeto. Então você deve importar o Microsoft.SqlServer.Dts.Runtime montagem da seguinte forma:

O código a seguir cria um pacote vazio e o salva como arquivo .dtsx:

Observe que você pode salvar o pacote no SQL Server (banco de dados Msdb) usando SaveToSqlServer () e SaveToSqlServerAs () métodos, ou você pode salvá-lo em um repositório de pacotes SSIS usando SaveToDtsServer () método. Para obter mais informações, consulte: Salvando um pacote programaticamente.

Carregando pacote de um arquivo existente

Para carregar um pacote existente, você pode usar o método Application.LoadPackage () da seguinte maneira:

Adicionando gerenciadores de conexões

Para adicionar um gerenciador de conexões, você deve usar a classe Application.ConnectionManager e especificar o
    tipo de conexão e as informações necessárias com base nesse tipo. Como exemplo, o código a seguir adiciona um banco de dados OLE
    gerenciador de conexões:

Adicionando tarefas

Usando ManagedDTS, as tarefas são adicionadas à propriedade Executables na classe Package. Existem diferentes abordagens
    para adicionar uma tarefa ao fluxo de controle do pacote:

  1. Adicionando a tarefa explicitamente, fornecendo as informações de montagem manualmente

    Nesta abordagem, você deve inserir o nome do assembly, o nome qualificado, a versão, a cultura e o token da chave pública no método Add (). Por exemplo:

  2. Usando o AssemblyQualifiedName

    Nessa abordagem, você deve adicionar o assembly relacionado à tarefa como referência e importá-lo em seu código; em seguida, você
        deve recuperar o nome qualificado de montagem da classe relacionada à tarefa (localizada em : Arquivos de Programas Microsoft SQL Server DTS Tasks ”) Como exemplo, se você precisar adicionar uma tarefa Executar SQL, deverá
        primeiro adicione Microsoft.SqlServer.SQLTask.dll como referência. Então você deve usar o seguinte código:

  3. Usando o moniker STOCK

    Você pode consultar a documentação a seguir para obter uma lista completa dos identificadores de estoque de tarefas. Então você deve usá-lo da seguinte maneira:

Adicionando uma tarefa de fluxo de dados

Como mencionamos acima, a tarefa de fluxo de dados é uma tarefa especial do SSIS onde podemos adicionar componentes. Por esse motivo, nós
    falará sobre isso em uma seção separada. Como mencionamos na primeira seção, você deve adicionar PipelineHost e
    Assemblies DTSPipelineWrap além do ManagedDTS para trabalhar com o mecanismo de fluxo de dados. O código a seguir é criar
    um pacote, adicione um gerenciador de conexões OLE DB, adicione uma tarefa de fluxo de dados que contenha uma fonte OLE DB e OLE DB
    destino e configure-os para importar dados de [Person].[Person] mesa em
[Person].[Person_temp]:

Adicionando componentes Tarefas de Fluxo de Dados

Você pode adicionar componentes da tarefa de fluxo de dados usando o Nome da Criação ou o nome qualificado da montagem. A segunda abordagem
    requer a importação do conjunto relacionado ao componente (localizado em : Arquivos de Programas Microsoft SQL Server DTS PipelineComponents ”) O exemplo a seguir ilustra como adicionar componentes de origem e destino do OLE DB e criar um mapeamento entre eles:

Após a execução do aplicativo, o pacote é criado com sucesso. As seguintes capturas de tela mostram o pacote
    Tarefa Controle de fluxo e fluxo de dados:

O fluxo de controle do pacote criado usando o ManagedDTS

Figura 2 – Fluxo de controle de pacote criado

A tarefa de fluxo de dados do pacote criado usando o ManagedDTS

Figura 3 – Tarefa de fluxo de dados criada

Executando pacote programaticamente

Após criar um pacote, podemos executá-lo usando o método Execute () da seguinte maneira:

Recursos online

Nas seções anteriores, explicamos brevemente como criar e executar pacotes usando o ManagedDTS, mas há muito mais instruções que você precisa saber, como mapear tarefas, configurar propriedades de tarefas, manipulação de erros …
    por esse motivo, a Microsoft forneceu documentação útil onde a maioria dessas operações é explicada; Documentação do desenvolvedor do Integration Services.

Comparando com Biml

Simplicidade

Após criar o pacote usando o ManagedDTS, nós o converteremos em um script Biml, conforme explicado em Convertendo pacotes SSIS em scripts Biml. Você pode verificar como o Biml substitui um script C # complexo e facilita o processo de leitura e edição
    pois é mais simples e não requer conhecimento de programação.

Contexto

Por outro lado, é mais preferível usar o ManagedDTS ao criar e executar os pacotes dentro de
    um aplicativo e está relacionado a outras tarefas, pois o Biml é gerenciado em uma solução SSIS e não é
    integrado em um aplicativo.

Tratamento de erros no desenvolvimento

A manipulação de erros é um desastre ao usar o ManagedDTS, pois não mostra uma mensagem de erro clara, como mostra a imagem abaixo. Enquanto estiver no Biml, a ferramenta “Verificar erros no Biml” retorna todos os erros encontrados durante a validação do script.

Exceção clara ao criar pacote usando o ManagedDTS

Figura 4 – Lançou uma exceção ao criar o pacote SSIS programaticamente

Recursos

Faltam artigos e guias relacionados para as duas tecnologias. Mas a capacidade de converter pacotes SSIS em scripts Biml facilita a aprendizagem, pois simplifica o processo de aprendizado caso você esteja familiarizado com o SSIS.

Conclusão

Neste artigo, explicamos uma das alternativas para criar pacotes SSIS usando o Biml, que é o modelo de objeto gerenciado do mecanismo de tempo de execução do serviço de integração. Além disso, fizemos uma pequena comparação entre as duas abordagens para ilustrar a principal diferença.

Índice

Hadi Fadlallah
Últimas mensagens de Hadi Fadlallah (ver todos)

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Maus hábitos e práticas recomendadas - SQLBlog