Partilhar via


Tarefa Inserção em Massa

Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory

A tarefa Bulk Insert fornece um meio eficiente de copiar grandes volumes de dados em uma tabela ou exibição do SQL Server. Por exemplo, suponha que a empresa armazena sua lista de produtos em milhões de linhas em um sistema de mainframe, mas o sistema de comércio eletrônico da empresa usa o SQL Server para preencher páginas da Web. Você deve atualizar a tabela de produtos do SQL Server todas as noites com a lista principal de produtos do mainframe. Para atualizar a tabela, você salva a lista de produtos em um formato delimitado por guia e usa a tarefa Bulk Insert para copiar os dados diretamente na tabela do SQL Server.

Para assegurar a cópia de dados em alta velocidade, não podem ser executadas transformações nos dados enquanto estiver transferindo do arquivo de origem à tabela ou exibição.

Considerações de uso

Antes de utilizar a tarefa de inserção em massa, considere o seguinte:

  • A tarefa Bulk Insert só pode transferir dados de um arquivo de texto em uma tabela ou de exibição do SQL Server. Para utilizar a tarefa Bulk Insert para transferir dados de outros sistemas de gerenciamento de bancos de dados (DBMSs), você deve exportar os dados da fonte para um arquivo de texto e então importar os dados do arquivo de texto para uma tabela ou exibição do SQL Server.

  • O destino deve ser uma tabela ou exibição em um banco de dados do SQL Server. Se a tabela ou exibição de destino já contém dados, os novos dados são anexados aos dados existentes quando a tarefa de inserção em massa é executada. Se você quiser substituir os dados, execute uma tarefa Execute SQL que executa uma instrução de DELETE ou TRUNCATE antes de você executar a tarefa de Inserção em massa . Para obter mais informações, consulte Execute SQL Task.

  • Você pode usar um arquivo de formato no objeto de tarefa da inserção em massa . Se você tiver um arquivo de formato que foi criado pelo utilitário do bcp , você poderá especificar seu caminho na tarefa de inserção em massa . A tarefa de inserção em massa fornece suporte tanto para arquivos em formato XML quanto não XML. Para obter mais informações sobre os arquivos de formato, confira Arquivos de formato para importação ou exportação de dados (SQL Server).

  • Somente membros da função de servidor fixa sysadmin podem executar um pacote que contenha uma tarefa Inserção em Massa.

Tarefa Inserção em Massa com Transações

Se um tamanho de lote não for definido, toda a operação de cópia em massa é tratada como uma transação. Um tamanho de lote de 0 indica que os dados são inseridos em um lote. Se um tamanho de lote for definido, cada lote representa uma transação que é confirmada quando o lote terminar de ser executado.

O comportamento da tarefa de inserção em massa , à medida que se relaciona com as transações, leva em conta se a tarefa une a transação de pacotes. Se a tarefa de inserção em massa não unir a transação de pacotes, cada lote sem-erros está confirmado como uma unidade antes que o próximo lote seja tentado. Se a tarefa de inserção em massa unir a transação de pacotes, lotes sem-erros permanecem na transação na conclusão da tarefa. Esses lotes estão sujeitos à confirmação ou operação de reversão do pacote.

Uma falha na tarefa de inserção em massa não reverte automaticamente com êxito os lotes carregados, assim como, se a tarefa tiver êxito, os lotes não serão confirmados automaticamente. As operações de confirmação e reversão ocorrem apenas em resposta ao pacote e às configurações de propriedade de fluxo de trabalho.

Origem e destino

Quando você especificar o local do arquivo de origem de texto, considere o seguinte:

  • O servidor deve ter permissão para acessar tanto o arquivo quanto o banco de dados de destino.

  • O servidor executa a tarefa de inserção em massa . Então, qualquer arquivo de formato que a tarefa utilize deve estar localizado no servidor.

  • O arquivo de origem que a tarefa Bulk Insert carregar pode estar no mesmo servidor que o banco de dados do SQL Server no qual são inseridos os dados, ou em um servidor remoto. Se o arquivo estiver em um servidor remoto, você deve especificar o nome de arquivo usando o nome UNC no caminho.

Otimização do Desempenho

Para aperfeiçoar o desempenho, considere o seguinte:

  • Se o arquivo de texto estiver alocado no mesmo computador que o banco de dados do SQL Server no qual estão inseridos os dados, a operação de cópia ocorre a uma taxa ainda mais rápida, porque os dados não são movidos pela rede.

  • A tarefa de inserção em massa não registra linhas que causam erro. Se você precisa capturar essas informações, use as saídas de erro de componentes de fluxo de dados para capturar linhas que causam erro em um arquivo de exceção.

Entradas de log personalizado disponíveis na tarefa de inserção em massa

A seguinte tabela relaciona as entradas de log personalizadas para a tarefa inserção em massa . Para obter mais informações, consulte Log do SSIS (Integration Services).

Entrada de log Descrição
BulkInsertTaskBegin Indica que a inserção em massa iniciou.
BulkInsertTaskEnd Indica que a inserção em massa foi concluída.
BulkInsertTaskInfos Fornece informações descritivas sobre a tarefa.

Configuração da tarefa Inserção em Massa

Você pode configurar a tarefa de inserção em massa das seguintes maneiras:

  • Especifique o gerenciador de conexões do OLE DB para conectar-se ao banco de dados do SQL Server de destino e à tabela ou exibição nos quais estão inseridos os dados. A tarefa de inserção em massa aceita apenas conexões do OLE DB para o banco de dados de destino.

  • Especifique o gerenciador de conexões do Arquivo ou Arquivo Simples para acessar o arquivo de origem. A tarefa de inserção em massa usa o gerenciador de conexões apenas para o local do arquivo de origem. A tarefa ignora outras opções que você selecionar no editor do gerenciador de conexões.

  • Defina o formato que é usado pela tarefa de inserção em massa que usa um arquivo de formato ou, definindo os delimitadores de coluna e fila dos dados de origem. Se estiver usando um arquivo de formato, especifique o gerenciador de conexões do Arquivo para acessar o arquivo de formato.

  • Especifique as ações para realizar na tabela de destino ou de exibição quando a tarefa inserir os dados. As opções incluem se devemos verificar restrições, habilitar inserções de identidade, manter nulos, acionar gatilhos ou fechar a tabela.

  • Forneça informações sobre o lote de dados a inserir, tais como o tamanho do lote, a primeira e a última linha do arquivo a inserir, o número de erros de inserção que podem acontecer antes que a tarefa pare de inserir linhas e os nomes das colunas que serão ordenadas.

Se a tarefa de inserção em massa usar um gerenciador de conexões do Arquivo Simples para acessar o arquivo de origem, a tarefa não usa o formato especificado no gerenciador de conexões do Arquivo Simples. Em vez disso, a tarefa de Inserção em massa usa o formato especificado em um arquivo de formato ou os valores das propriedades RowDelimiter e ColumnDelimiter da tarefa.

Você pode definir propriedades pelo Designer do SSIS ou programaticamente.

Para obter mais informações sobre as propriedades que podem ser definidas no SSIS Designer, clique no tópico a seguir:

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

Configuração programática da tarefa Inserção em Massa

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

Definir as propriedades de uma tarefa ou contêiner

Editor da Tarefa Inserção em Massa (página Conexão)

Use a página Conexão da caixa de diálogo Editor da Tarefa Inserção em Massa para especificar a origem e o destino da operação de inserção em massa e o formato a ser usado.

Para saber mais sobre como trabalhar com inserções em massa, confira Tarefa Bulk Insert e Arquivos de formato para importação ou exportação de dados (SQL Server).

Opções

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

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

Tabela de Destino
Digite o nome da tabela ou exibição de destino ou selecione uma tabela ou exibição na lista.

Formato
Selecione a fonte do formato para a inserção em massa. As opções dessa propriedade são listadas na tabela a seguir.

Valor Descrição
Usar Arquivo Selecione um arquivo que contém a especificação de formato. Selecionar esta opção faz com que seja exibida a opção dinâmica Arquivo de Formato.
Especificar Especifique o formato. Selecionar esta opção faz com que sejam exibidas as opções dinâmicas RowDelimiter e ColumnDelimiter.

Arquivo
Selecione um gerenciador de conexões de Arquivo Simples na lista ou clique em <Nova conexão…> para criar uma nova conexão.

O local do arquivo está relacionado ao Mecanismo de Banco de Dados do SQL Server especificado no gerenciador de conexões para esta tarefa. O arquivo de texto deve ser acessível pelo Mecanismo de Banco de Dados do SQL Server em um disco rígido local no servidor, por um compartilhamento ou unidade mapeada para o SQL Server. O arquivo não pode ser acessado pelo Runtime do SSIS.

Se você acessa o arquivo de origem usando um gerenciador de conexões de Arquivo Simples, a tarefa de Inserção em Massa não usa o formato especificado no gerenciador de conexões de Arquivos Simples. Em vez disso, a tarefa de Inserção em massa usa o formato especificado em um arquivo de formato ou os valores das propriedades RowDelimiter e ColumnDelimiter da tarefa.

Tópicos relacionados: Gerenciador de Conexões de Arquivo, Gerenciador de Conexões de Arquivo Simples

Atualizar Tabelas
Atualize a lista de tabelas e exibições.

Opções Dinâmicas de Formato

Formato = Usar Arquivo

Arquivo de Formato
Digite o caminho do arquivo de formato ou clique no botão de reticências (…) para localizar o arquivo.

Formato = Especificar

RowDelimiter
Especifique o delimitador de linhas no arquivo de origem. O valor padrão é {CR}{LF} .

ColumnDelimiter
Especifique o delimitador de colunas no arquivo de origem. O padrão é Tab.

Editor da Tarefa Inserção em Massa (página Geral)

Use a página Geral da caixa de diálogo Editor da Tarefa Inserção em Massa para nomear e descrever a tarefa Inserção em Massa.

Opções

Nome
Forneça um nome exclusivo para a tarefa Inserção em Massa. Esse nome é usado como rótulo no ícone de tarefa.

Observação

Os nomes das tarefas devem ser exclusivos em um pacote.

Descrição
Digite uma descrição para a tarefa Inserção em Massa.

Editor da Tarefa Inserção em Massa (página de Opções)

Use a página Opções da caixa de diálogo Editor da Tarefa Inserção em Massa para definir as propriedades da operação de inserção em massa. A tarefa Bulk Insert copia uma grande quantidade de dados em uma exibição ou tabela do Microsoft SQL Server.

Para saber mais sobre como trabalhar com inserções em massa, confira Tarefa Inserção em Massa e BULK INSERT (Transact-SQL).

Opções

CodePage
Especifique a página de código dos dados no arquivo de dados.

DataFileType
Especifique o valor do tipo de dados a ser usado na operação de carregamento.

BatchSize
Especifique o número de linhas em um lote. O padrão é todo o arquivo de dados. Se você definir BatchSize para zero, os dados serão carregados em um único lote.

LastRow
Especifique a última linha a ser copiada.

FirstRow
Especifique a primeira linha da qual começar a copiar.

Opções

Termo Definição
Verificar restrições Selecione para verificar as restrições de tabelas e colunas.
Manter nulos Selecione para reter valores nulos durante a operação de inserção em massa, em vez de inserir qualquer valor padrão para colunas vazias.
Habilitar inserção de identidade Selecione para inserir valores existentes em uma coluna de identidade.
Bloqueio de tabela Selecione para bloquear a tabela durante a inserção em massa.
Acionadores Selecione para acionar qualquer inserção, atualização ou exclusão de gatilhos na tabela.

SortedData
Especifique a cláusula ORDER BY na instrução de inserção em massa. O nome da coluna que você fornece deve ser uma coluna válida na tabela de destino. O padrão é false. Isto significa que os dados não são classificados por uma cláusula ORDER BY.

MaxErrors
Especifique o número máximo de erros que podem ocorrer antes que a operação de inserção em massa seja cancelada. Um valor de 0 indica que um número infinito de erros é permitido.

Observação

Cada linha que não pode ser importada pela operação de carregamento em massa é contada como um erro.