Partilhar via


Executar tarefa de pacote

Aplica-se a:Servidor SQL Tempo de execução da integração do SSIS no Azure Data Factory

A tarefa Executar Pacote amplia os recursos corporativos do Integration Services permitindo que os pacotes executem outros pacotes como parte de um fluxo de trabalho.

Você pode usar a tarefa Executar Pacote para as seguintes finalidades:

  • Detalhando o fluxo de trabalho de pacotes complexos. Essa tarefa permite dividir o fluxo de trabalho em vários pacotes, que são mais fáceis de ler, testar e manter. Por exemplo, se você estiver carregando dados em um esquema em estrela, poderá criar um pacote separado para preencher cada dimensão e a tabela de fatos.

  • Reutilização de partes de embalagens. Outros pacotes podem reutilizar partes de um fluxo de trabalho de pacote. Por exemplo, você pode criar um módulo de extração de dados que pode ser chamado de diferentes pacotes. Cada pacote que chama o módulo de extração pode executar diferentes operações de depuração, filtragem ou agregação de dados.

  • Agrupamento de unidades de trabalho. As unidades de trabalho podem ser encapsuladas em pacotes separados e unidas como componentes transacionais ao fluxo de trabalho de um pacote pai. Por exemplo, o pacote pai executa os pacotes acessórios e, com base no sucesso ou falha dos pacotes acessórios, o pacote pai confirma ou reverte a transação.

  • Controlando a segurança do pacote. Os autores de pacotes exigem acesso a apenas uma parte de uma solução multipacote. Ao separar um pacote em vários pacotes, você pode fornecer um nível maior de segurança, porque pode conceder a um autor acesso apenas aos pacotes relevantes.

Um pacote que executa outros pacotes é geralmente referido como o pacote pai, e os pacotes que um fluxo de trabalho pai executa são chamados pacotes filho.

O Integration Services inclui tarefas que executam operações de fluxo de trabalho, como a execução de executáveis e arquivos em lote. Para obter mais informações, consulte Executar tarefa de processo.

Executando pacotes

A tarefa Executar Pacote pode executar pacotes filho contidos no mesmo projeto que contém o pacote pai. Você seleciona um pacote filho do projeto definindo a propriedade ReferenceType como Project Reference e, em seguida, definindo a propriedade PackageNameFromProjectReference .

Observação

A opção ReferenceType é somente pronta e definida como Referência Externa se o projeto que contém o pacote não tiver sido convertido para o modelo de implantação do projeto. Implante projetos e pacotes do Integration Services (SSIS).

A tarefa Executar Pacote também pode executar pacotes armazenados no banco de dados msdb do SQL Server e pacotes armazenados no sistema de arquivos. A tarefa usa um gerenciador de conexões OLE DB para se conectar ao SQL Server ou um gerenciador de conexões de arquivo para acessar o sistema de arquivos. Para obter mais informações, consulte Gerenciador de conexões OLE DB e Gerenciador de conexões de arquivo simples.

A tarefa Executar Pacote também pode executar um plano de manutenção de banco de dados, que permite gerenciar pacotes SSIS e planos de manutenção de banco de dados na mesma solução Integration Services. Um plano de manutenção de banco de dados é semelhante a um pacote SSIS, mas um plano pode incluir apenas tarefas de manutenção de banco de dados e é sempre armazenado no banco de dados msdb.

Se você escolher um pacote armazenado no sistema de arquivos, deverá fornecer o nome e o local do pacote. O pacote pode residir em qualquer lugar no sistema de arquivos; ele não precisa estar na mesma pasta que o pacote pai.

O pacote filho pode ser executado no processo do pacote pai ou pode ser executado em seu próprio processo. Executar o pacote filho em seu próprio processo requer mais memória, mas fornece mais flexibilidade. Por exemplo, se o processo filho falhar, o processo pai poderá continuar a ser executado.

Como alternativa, às vezes você deseja que os pacotes pai e filho falhem juntos como uma unidade, ou talvez não queira incorrer na sobrecarga adicional de outro processo. Por exemplo, se um processo filho falhar e o processamento subsequente no processo pai do pacote depender do sucesso do processo filho, o pacote filho deverá ser executado no processo do pacote pai.

Por padrão, a propriedade ExecuteOutOfProcess da tarefa Executar Pacote é definida como False e o pacote filho é executado no mesmo processo que o pacote pai. Se você definir essa propriedade como True, o pacote filho será executado em um processo separado. Isso pode retardar o lançamento do pacote filho. Além disso, se você definir a propriedade como True, não poderá depurar o pacote em uma instalação somente de ferramentas. Você deve instalar o Integration Services. Para obter mais informações, consulte Instalar o Integration Services

Extensão de transações

A transação que o pacote pai usa pode se estender ao pacote filho; portanto, o trabalho que ambos os pacotes executam pode ser confirmado ou revertido. Por exemplo, as inserções de banco de dados que o pacote pai executa podem ser confirmadas ou revertidas, dependendo das inserções de banco de dados que o pacote filho executa e vice-versa. Para obter mais informações, consulte Transações herdadas.

Propagando detalhes de log

O pacote filho que a tarefa Executar Pacote executa pode ou não estar configurado para usar o log, mas o pacote filho sempre encaminhará os detalhes do log para o pacote pai. Se a tarefa Executar Pacote estiver configurada para usar o log, a tarefa registrará os detalhes do log do pacote filho. Para obter mais informações, consulte Log do Integration Services (SSIS).

Passando valores para pacotes filho

Freqüentemente um pacote filho usa valores passados a ele por outro pacote que o chama, normalmente seu pacote pai. O uso de valores de um pacote pai é útil em cenários como os seguintes:

  • Partes de um fluxo de trabalho maior são atribuídas a pacotes diferentes. Por exemplo, um pacote baixa dados todas as noites, resume os dados, atribui valores de dados resumidos a variáveis e, em seguida, passa os valores para outro pacote para processamento adicional dos dados.

  • O pacote pai coordena dinamicamente as tarefas em um pacote filho. Por exemplo, o pacote pai determina o número de dias em um mês atual e atribui o número a uma variável, e o pacote filho executa uma tarefa esse número de vezes.

  • Um pacote filho requer acesso a dados derivados dinamicamente pelo pacote pai. Por exemplo, o pacote pai extrai dados de uma tabela e carrega o conjunto de linhas em uma variável, e o pacote filho executa operações adicionais nos dados.

Você pode usar os seguintes métodos para passar valores para um pacote filho:

  • Configurações do pacote

    O Integration Services fornece um tipo de configuração, a configuração Parent Package Variable, para passar valores de pacotes pai para filho. A configuração é construída no pacote filho e usa uma variável no pacote pai. A configuração é mapeada para uma variável no pacote filho ou para a propriedade de um objeto no pacote filho. A variável também pode ser usada nos scripts usados pela tarefa Script ou pelo componente Script.

  • Parâmetros

    Você pode configurar a Tarefa Executar Pacote para mapear variáveis ou parâmetros do pacote pai, ou parâmetros do projeto, para parâmetros do pacote filho. O projeto deve usar o modelo de implantação de projeto e o pacote filho deve estar contido no mesmo projeto que contém o pacote pai.

    Observação

    Se o parâmetro do pacote filho não for sensível e for mapeado para um parâmetro pai que seja sensível, o pacote filho não será executado.

    As seguintes condições de mapeamento são suportadas:

    O parâmetro sensível do pacote filho é mapeado para um parâmetro sensível pai

    O parâmetro sensível do pacote filho é mapeado para um parâmetro pai não sensível

    O parâmetro de pacote filho não sensível é mapeado para um parâmetro pai não sensível

A variável de pacote pai pode ser definida no escopo da tarefa Executar Pacote ou em um contêiner pai, como o pacote. Se várias variáveis com o mesmo nome estiverem disponíveis, a variável definida no escopo da tarefa Executar Pacote será usada ou a variável mais próxima em escopo da tarefa.

Para obter mais informações, consulte Usar os valores de variáveis e parâmetros em um pacote filho.

Acessando variáveis de pacote pai

Os pacotes filho podem acessar variáveis de pacote pai usando a tarefa Script. Quando você inserir o nome da variável de pacote pai na página Script no Editor de Tarefa de Script, não inclua User: no nome da variável. Caso contrário, o pacote filho não localizará a variável quando você executar o pacote pai.

Configurando a tarefa Executar pacote

Você pode definir propriedades por meio do SSIS Designer ou programaticamente.

Para obter mais informações sobre as propriedades que você pode definir no Designer SSIS, clique no seguinte tópico:

Para obter mais informações sobre como definir essas propriedades no Designer SSIS, clique no seguinte tópico:

Configurando a tarefa Executar pacote programaticamente

Para obter mais informações sobre como definir essas propriedades programaticamente, clique no tópico a seguir:

Executar Editor de Tarefas de Pacote

Use o Editor de Tarefa Executar Pacote para configurar a Tarefa Executar Pacote. A tarefa Executar Pacote amplia os recursos corporativos do Integration Services permitindo que os pacotes executem outros pacotes como parte de um fluxo de trabalho.

O que queres fazer?

Abra o Editor de Tarefas Executar Pacote

  1. Abra um projeto do Integration Services no Visual Studio que contém uma tarefa Executar Pacote.

  2. Clique com o botão direito do mouse na tarefa no Designer SSIS e clique em Editar.

Definir as opções na página Geral

Nome
Forneça um nome exclusivo para a tarefa Executar Pacote. Esse nome é usado como o rótulo no ícone da tarefa.

Observação

Os nomes das tarefas devem ser exclusivos dentro de um pacote.

Descrição
Digite uma descrição da tarefa Executar Pacote.

Definir as opções na página do pacote

Tipo de Referência
Selecione Referência do projeto para pacotes filho que estão no projeto. Selecione Referência externa para pacotes filho localizados fora do pacote

Observação

A opção ReferenceType é somente pronta e definida como Referência Externa se o projeto que contém o pacote não tiver sido convertido para o modelo de implantação do projeto. Implante projetos e pacotes do Integration Services (SSIS).

Palavra-passe
Se o pacote filho estiver protegido por senha, forneça a senha para o pacote filho ou clique no botão de reticências (...) e crie uma nova senha para o pacote filho.

ExecuteOutOfProcess
Especifique se o pacote filho é executado no processo do pacote pai ou em um processo separado. Por padrão, a propriedade ExecuteOutOfProcess da tarefa Executar Pacote é definida como False e o pacote filho é executado no mesmo processo que o pacote pai. Se você definir essa propriedade como true, o pacote filho será executado em um processo separado. Isso pode retardar o lançamento do pacote filho. Além disso, se definir a propriedade como true, você não poderá depurar o pacote em uma instalação somente de ferramentas; você deve instalar o produto Integration Services. Para obter mais informações, consulte Instalar o Integration Services.

Opções dinâmicas ReferenceType

ReferenceType = Referência externa

Localização
Selecione o local do pacote filho. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Description
Servidor SQL Defina o local como uma instância do SQL Server.
Sistema de ficheiros Defina o local para o sistema de arquivos.

Conexão
Selecione o tipo de local de armazenamento para o pacote filho.

PackageNameReadOnly
Exibe o nome do pacote.

ReferenceType = Referência do projeto

PackageNameFromProjectReference
Selecione um pacote contido no projeto, para ser o pacote filho.

Opções dinâmicas de localização

Localização = SQL Server

Conexão
Selecione um gerenciador de conexões OLE DB na lista ou clique em <Nova conexão...> para criar um novo gerenciador de conexões.

Tópicos relacionados:Gerenciador de conexões OLE DB

PackageName
Digite o nome do pacote filho ou clique nas reticências (...) e localize o pacote.

Localização = Sistema de ficheiros

Conexão
Selecione um gerenciador de conexões de arquivo na lista ou clique em <Nova conexão...> para criar um novo gerenciador de conexões.

Tópicos relacionados:File Connection Manager

PackageNameReadOnly
Exibe o nome do pacote.

Definir as opções na página Ligações de parâmetros

Você pode passar valores do pacote pai ou do projeto para o pacote filho. O projeto deve usar o modelo de implantação de projeto e o pacote filho deve estar contido no mesmo projeto que contém o pacote pai.

Para obter informações sobre como converter projetos para o modelo de implantação de projeto, consulte Implantar projetos e pacotes do Integration Services (SSIS).

Parâmetro do pacote filho
Insira ou selecione um nome para o parâmetro do pacote filho.

Parâmetro ou variável de ligação
Selecione o parâmetro ou variável que contém o valor que você deseja passar para o pacote filho.

Add
Clique para mapear um parâmetro ou variável para um parâmetro de pacote filho.

Remove
Clique para remover um mapeamento entre um parâmetro ou variável e um parâmetro de pacote filho.