Partilhar via


Tarefa de inserção em massa

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

A tarefa Inserção em massa fornece uma maneira eficiente de copiar grandes quantidades de dados em uma tabela ou exibição do SQL Server. Por exemplo, suponha que sua empresa armazene sua lista de produtos de 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 mestre de produtos do mainframe. Para atualizar a tabela, salve a lista de produtos em um formato delimitado por tabulações e use a tarefa Inserção em massa para copiar os dados diretamente para a tabela do SQL Server.

Para garantir a cópia de dados de alta velocidade, as transformações não podem ser executadas nos dados enquanto eles estão se movendo do arquivo de origem para a tabela ou exibição.

Considerações sobre o uso

Antes de usar a tarefa Inserção Massiva, considere o seguinte:

  • A tarefa Inserção em massa pode transferir dados somente de um arquivo de texto para uma tabela ou exibição do SQL Server. Para usar a tarefa Inserção em massa para transferir dados de outros sistemas de gerenciamento de banco de dados (DBMSs), você deve exportar os dados da origem para um arquivo de texto e, em seguida, 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á contiver dados, os novos dados serão anexados aos dados existentes quando a tarefa Inserção em massa for executada. Se desejar substituir os dados, execute uma tarefa com execução de SQL que execute uma instrução DELETE ou TRUNCATE antes de executar a tarefa de Inserção Bulk. Para obter mais informações, consulte Executar tarefa SQL.

  • Você pode usar um arquivo de formato no objeto de tarefa Inserção em massa. Se você tiver um arquivo de formato que foi criado pelo utilitário bcp , poderá especificar seu caminho na tarefa Inserção em massa. A Tarefa de Inserção em Massa suporta ficheiros em formato XML e não XML. Para obter mais informações sobre arquivos de formato, consulte Formatar arquivos para importar ou exportar dados (SQL Server).

  • Somente membros da função de servidor fixa sysadmin podem executar um pacote que contém uma tarefa de inserção em massa.

Tarefa de inserção em massa com transações

Se um tamanho de lote não estiver definido, a operação de cópia em massa completa será 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 termina de ser executado.

O comportamento da tarefa de inserção em massa, no que se refere às transações, depende de a tarefa integrar a transação do pacote. Se a tarefa Inserção em massa não ingressar na transação do pacote, cada lote livre de erros será confirmado como uma unidade antes que o próximo lote seja processado. Se a tarefa Inserção em massa ingressar na transação do pacote, os lotes livres de erros permanecerão na transação na conclusão da tarefa. Esses lotes estão sujeitos à operação de confirmação ou reversão do pacote.

Uma falha na tarefa de Inserção em massa não reverte automaticamente os batches carregados com sucesso; da mesma forma, se a tarefa for bem-sucedida, os batches não são automaticamente confirmados. As operações de confirmação e reversão ocorrem somente em resposta às configurações de propriedade do pacote e do fluxo de trabalho.

Origem e Destino

Ao especificar o local do arquivo de origem de texto, considere o seguinte:

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

  • O servidor executa a tarefa Inserção em massa. Portanto, qualquer arquivo de formato que a tarefa usa deve estar localizado no servidor.

  • O arquivo de origem que a tarefa Inserção em Massa carrega pode estar no mesmo servidor que o banco de dados do SQL Server no qual os dados são inseridos ou em um servidor remoto. Se o arquivo estiver em um servidor remoto, você deverá especificar o nome do arquivo usando o nome UNC (Convenção de Nomenclatura Universal) no caminho.

Otimização do Desempenho

Para otimizar o desempenho, considere o seguinte:

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

  • A tarefa Inserção em massa não registra linhas causadoras de erros. Se você precisar capturar essas informações, use as saídas de erro dos componentes de fluxo de dados para capturar linhas causadoras de erros em um arquivo de exceção.

Entradas de log personalizadas disponíveis na tarefa Inserção em massa

A tabela a seguir lista as entradas de log personalizadas para a tarefa de Entrada em Massa. Para obter mais informações, consulte o Log de Serviços de Integração (SSIS) .

Entrada de log Descrição
BulkInsertTaskBegin Indica que a inserção em massa começou.
BulkInsertTaskEnd Informação de que a inserção em massa está concluída.
BulkInsertTaskInfos Fornece informações descritivas sobre a tarefa.

Configuração da tarefa de inserção massiva

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

  • Especifique o gerenciador de conexões OLE DB para se conectar ao banco de dados SQL Server de destino e à tabela ou exibição na qual os dados são inseridos. A tarefa Inserção em massa suporta apenas conexões OLE DB para o banco de dados de destino.

  • Especifique o gestor de conexões Arquivo ou Arquivo plano para aceder ao ficheiro de origem. A tarefa Inserção em massa usa o gerenciador de conexões somente para o local do arquivo de origem. A tarefa ignora outras opções selecionadas no editor do gerenciador de conexões.

  • Defina o formato usado pela tarefa Inserção em massa, usando um arquivo de formato ou definindo os delimitadores de coluna e linha dos dados de origem. Se estiver usando um arquivo de formato, especifique o Gerenciador de conexões de arquivo para acessar o arquivo de formato.

  • Especifique as ações a serem executadas na tabela ou vista de destino quando a tarefa inserir os dados. As opções incluem verificar restrições, habilitar inserções de identidade, manter nulos, disparar gatilhos ou bloquear a tabela.

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

Se a tarefa Inserção em massa usar um gerenciador de conexões de arquivo simples para acessar o arquivo de origem, a tarefa não usará o formato especificado no gerenciador de conexões de arquivo simples. Em vez disso, a tarefa de Inserção em Massa utiliza o formato especificado num ficheiro de formato, ou então os valores das propriedades "RowDelimiter" (delimitador de linha) e "ColumnDelimiter" (delimitador de coluna) da tarefa.

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:

Configuração programática da tarefa de 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 de tarefas de inserção em massa (página de conexão)

Use a página Conexão da caixa de diálogo Editor de tarefas de 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, consulte Tarefa de inserção em massa e arquivos de formato para importação ou exportação de dados (SQL Server).

Opções

Conexão
Selecione um gerenciador de conexões 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 origem do formato para a inserção em massa. Esta propriedade tem as opções listadas na tabela a seguir.

Valor Descrição
Usar ficheiro Selecione um arquivo que contenha a especificação de formato. Selecionar esta opção exibe a opção dinâmica, FormatFile.
Especificar Especifique o formato. Selecionar esta opção exibe as opções dinâmicas, RowDelimiter e ColumnDelimiter.

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

O local do arquivo é relativo 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 ou por meio de um compartilhamento ou unidade mapeada para o SQL Server. O arquivo não é acessado pelo SSIS Runtime.

Se você acessar o arquivo de origem usando um gerenciador de conexões de arquivo simples, a tarefa Inserção em massa não usará o formato especificado no gerenciador de conexões de arquivo simples. Em vez disso, a tarefa 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 visualizações.

Formatar opções dinâmicas

Formato = Utilizar arquivo

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

Formato = Especificar

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

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

Editor de tarefas de inserção em massa (página Geral)

Use a página Geral da caixa de diálogo Editor de tarefas de 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 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 Inserção em massa.

Editor de tarefas de inserção em massa (página Opções)

Use a página Opções da caixa de diálogo Editor de tarefas de inserção em massa para definir propriedades para a operação de inserção em massa. A tarefa Inserção em massa copia grandes quantidades de dados em uma tabela ou exibição do Microsoft SQL Server.

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

Opções

Página de código
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.

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

Última linha
Especifique a última linha a ser copiada.

Primeira linha
Especifique a primeira linha a partir da qual começar a copiar.

Opções

Período Definição
Verificar restrições Selecione para verificar as restrições de tabela e coluna.
Manter nulos Selecione esta opção para reter valores nulos durante a operação de inserção em massa, em vez de inserir quaisquer valores padrão para colunas vazias.
Ativar inserção de identidade Selecione esta opção para inserir valores existentes em uma coluna de identidade.
Bloqueio de tabela Selecione esta opção para bloquear a tabela durante a inserção em massa.
Disparadores de incêndio Selecione esta opção para disparar qualquer inserção, atualização ou exclusão de gatilhos na tabela.

DadosOrdenados
Especifique a cláusula ORDER BY na declaração bulk insert. O nome da coluna fornecida deve ser uma coluna válida na tabela de destino. O padrão é false. Isso significa que os dados não são classificados por uma cláusula ORDER BY.

MaxErros
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.