Attività Inserimento bulk

Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory

L'attività Inserimento bulk rappresenta un modo efficiente per copiare grandi quantità di dati in una tabella o in una vista di SQL Server. Si supponga, ad esempio, che nella propria società venga usato un mainframe per archiviare l'elenco prodotti, che include un milione di righe, ma che il sistema e-commerce dell'azienda usi SQL Server per popolare le pagine Web. È necessario aggiornare la tabella di SQL Server dei prodotti durante la notte usando l'elenco master dei prodotti del mainframe. A tale scopo è possibile salvare l'elenco prodotti in un file delimitato da tabulazione e usare l'attività Inserimento bulk per copiare i dati direttamente nella tabella di SQL Server.

Per garantire la massima velocità di copia, non è consentito eseguire trasformazioni durante lo spostamento dei dati dal file di origine alla tabella o alla vista.

Considerazioni sull'utilizzo

Prima di utilizzare l'attività Inserimento bulk, considerare gli aspetti seguenti:

  • Con l'attività Inserimento bulk i dati possono essere trasferiti solo da un file di testo a una tabella o a una vista di SQL Server. Per usare l'attività Inserimento bulk per trasferire dati da altri sistemi di gestione di database (DBMS, Database Management System), è necessario esportare i dati dall'origine a un file di testo e quindi importarli dal file di testo a una tabella o vista di SQL Server.

  • La destinazione deve essere una tabella o vista di database di SQL Server. Se nella tabella o vista di destinazione sono già presenti dati, durante l'esecuzione dell'attività Inserimento bulk i nuovi dati verranno aggiunti a quelli esistenti. Se si desidera sostituire i dati, prima dell'attività Inserimento bulk avviare un'attività Esegui SQL che esegue un'istruzione DELETE o TRUNCATE. Per altre informazioni, vedere Attività Esegui SQL.

  • Nell'oggetto attività Inserimento bulk è possibile utilizzare un file di formato. Se il file di formato è stato creato dall'utilità bcp , è possibile specificarne il percorso nell'attività Inserimento bulk. L'attività Inserimento bulk supporta file di formato sia XML che non XML. Per altre informazioni sui file di formato, vedere File di formato per l'importazione o l'esportazione di dati (SQL Server).

  • I pacchetti che contengono attività Inserimento bulk possono essere eseguiti solo dai membri del ruolo predefinito del server sysadmin.

Attività Inserimento bulk con le transazioni

Se le dimensioni del batch non sono impostate, l'intera operazione di copia bulk verrà considerata come un'unica transazione. Se il valore delle dimensioni del batch è 0 , i dati verranno inseriti in un solo batch. Se le dimensioni del batch sono impostate, ogni batch rappresenterà una transazione di cui verrà eseguito il commit alla fine dell'esecuzione.

Il comportamento dell'attività Inserimento bulk in relazione alle transazioni varia a seconda che l'attività partecipi o meno alla transazione del pacchetto. Se l'attività Inserimento bulk non partecipa alla transazione del pacchetto, per ogni batch privo di errori verrà eseguito il commit prima di procedere con il batch successivo. Se l'attività Inserimento bulk partecipa alla transazione, al termine dell'attività i batch privi di errori rimarranno nella transazione e saranno soggetti alle operazioni di commit o di rollback del pacchetto.

In caso di errore nell'attività Inserimento bulk, i batch già caricati non verranno sottoposti automaticamente a rollback. Analogamente l'esito positivo dell'attività non comporta automaticamente l'esecuzione del commit per tali batch. Le operazioni di commit e di rollback vengono eseguite solo se le proprietà del flusso di lavoro o del pacchetto sono state impostate in questo senso.

Origine e destinazione

Quando si specifica il percorso del file di testo di origine, prendere in considerazione i fattori seguenti:

  • Il server deve disporre delle autorizzazioni necessarie per accedere sia al file che al database di destinazione.

  • Poiché l'attività Inserimento bulk viene eseguita dal server, tutti i file di formato utilizzati dall'attività devono trovarsi sul server.

  • Il file di origine caricato dall'attività Inserimento bulk può trovarsi sullo stesso server del database di SQL Server in cui vengono inseriti i dati oppure su un server remoto. Se il file si trova in un server remoto, è necessario specificarne il percorso in formato UNC (Universal Naming Convention).

Ottimizzazione delle prestazioni

Per ottimizzare le prestazioni, prendere in considerazione i fattori seguenti:

  • Se il file di testo si trova nello stesso computer del database di SQL Server in cui vengono inseriti i dati, l'operazione di copia avviene a una velocità superiore, in quanto i dati non devono essere trasferiti in rete.

  • L'attività Inserimento bulk non registra le righe che determinano errori. Se è necessario acquisire tali informazioni, utilizzare gli output degli errori dei componenti flusso di dati per registrare in un file di eccezioni le righe che provocano errori.

Voci di log personalizzate disponibili nell'attività Inserimento bulk

Nella tabella seguente sono elencate le voci di log personalizzate disponibili per l'attività Inserimento bulk. Per altre informazioni, vedere Registrazione di Integration Services (SSIS).

Voce di log Descrizione
BulkInsertTaskBegin Indica che l'inserimento bulk è iniziato.
BulkInsertTaskEnd Indica che l'inserimento bulk è terminato.
BulkInsertTaskInfos Offre informazioni descrittive sull'attività.

Configurazione dell'attività Inserimento bulk

Per configurare l'attività Inserimento bulk, procedere nel modo seguente:

  • Specificare la gestione connessione OLE DB da usare per la connessione al database SQL Server di destinazione e la tabella o la vista in cui inserire i dati. L'attività Inserimento bulk supporta solo le connessioni OLE DB per il database di destinazione.

  • Specificare la gestione connessione file o file flat da utilizzare per accedere al file di origine. L'attività Inserimento bulk utilizza la gestione connessione solo per il percorso del file di origine. L'attività ignora le altre opzioni selezionate nell'editor gestione connessione.

  • Definire il formato utilizzato dall'attività Inserimento bulk, utilizzando un file di formato o definendo i delimitatori di colonna e di riga dei dati di origine. Se si utilizza un file di formato, specificare la gestione connessione file da utilizzare per accedere a tale file.

  • Specificare le azioni da eseguire nella tabella o nella vista di destinazione quando i dati vengono inseriti dall'attività. È possibile specificare se verificare i vincoli, abilitare IDENTITY_INSERT, mantenere i valori Null, attivare trigger o bloccare la tabella.

  • Fornire informazioni sul batch di dati da inserire, ad esempio le dimensioni del batch, la prima e l'ultima riga del file da inserire, il numero massimo di errori oltre il quale arrestare l'inserimento delle righe e i nomi delle colonne che verranno ordinate.

Se l'attività Inserimento bulk utilizza una gestione connessione file flat per accedere al file di origine, invece del formato specificato nella gestione connessione file flat usa il formato specificato in un file di formato o i valori delle proprietà RowDelimiter e ColumnDelimiter dell'attività.

È possibile impostare le proprietà tramite Progettazione SSIS o a livello di codice.

Per altre informazioni sulle proprietà che è possibile impostare in Progettazione SSIS, fare clic sull'argomento seguente:

Per altre informazioni sull'impostazione di queste proprietà in Progettazione SSIS, fare clic sull'argomento seguente:

Configurazione a livello di codice dell'attività Inserimento bulk

Per ulteriori informazioni sull'impostazione di queste proprietà a livello di codice, fare clic sull'argomento seguente:

Impostazione delle proprietà di un'attività o di un contenitore

Editor attività Inserimento bulk (pagina Connessione)

Usare la pagina Connessione della finestra di dialogo Editor attività Inserimento bulk per specificare l'origine e la destinazione dell'operazione di inserimento bulk e il formato da usare.

Per altre informazioni sulle operazioni di inserimento bulk, vedere Attività Inserimento bulk e File di formato per l'importazione o l'esportazione di dati (SQL Server).

Opzioni

Connessione
Selezionare una gestione connessione OLE DB nell'elenco o fare clic su <Nuova connessione...> per creare una nuova connessione.

Argomenti correlati: Gestione connessione OLE DB

DestinationTable
Consente di digitare il nome della tabella o della vista di destinazione o di selezionare una tabella o una vista nell'elenco.

Formato
Consente di selezionare l'origine del formato per l'inserimento bulk. Per questa proprietà sono disponibili le opzioni elencate nella tabella seguente.

Valore Descrizione
Usa file Consente di selezionare un file contenente la specifica di formato. Selezionando questa opzione viene visualizzata l'opzione dinamica FormatFile.
Specifica Consente di specificare il formato. Selezionando questa opzione vengono visualizzate le opzioni dinamiche RowDelimiter e ColumnDelimiter.

file
Selezionare una gestione connessione file o file flat nell'elenco oppure fare clic su <Nuova connessione...> per creare una nuova connessione.

Il percorso del file è relativo al Motore di database di SQL Server specificato nella gestione connessione per questa attività. Il file di testo deve essere accessibile dal Motore di database di SQL Server in un disco rigido locale sul server oppure tramite un'unità condivisa o di cui è stato eseguito il mapping a SQL Server. Non è possibile accedere al file tramite SSIS Runtime.

Se si accede al file di origine utilizzando una gestione connessione file flat, l'attività Inserimento bulk non utilizzerà il formato specificato nella gestione connessione file flat, ma userà il formato specificato in un file di formato o i valori delle proprietà RowDelimiter e ColumnDelimiter dell'attività.

Argomenti correlati: Gestione connessione file, Gestione connessione file flat

Aggiorna tabelle
Consente di aggiornare l'elenco di tabelle e di viste.

Opzioni dinamiche di Format

Format = Usa file

FormatFile
Digitare il percorso del file di formato oppure fare clic sui puntini di sospensione (...) per trovare il file di formato.

Format = Specifica

RowDelimiter
Consente di specificare il delimitatore di riga nel file di origine. Il valore predefinito è {CR}{LF}.

ColumnDelimiter
Consente di specificare il delimitatore di colonna nel file di origine. Il valore predefinito è Tabulazione.

Editor attività Inserimento bulk (pagina Generale)

Utilizzare la pagina Generale della finestra di dialogo Editor attività Inserimento bulk per assegnare un nome e una descrizione all'attività Inserimento bulk.

Opzioni

Nome
Consente di specificare un nome univoco per l'attività Inserimento bulk. Tale nome viene utilizzato come etichetta nell'icona dell'attività.

Nota

I nomi delle attività devono essere univoci all'interno di un pacchetto.

Descrizione
Consente di digitare una descrizione dell'attività Inserimento bulk.

Editor attività Inserimento bulk (pagina Opzioni)

Utilizzare la pagina Opzioni della finestra di dialogo Editor attività Inserimento bulk per impostare le proprietà relative all'operazione di inserimento bulk. L'attività Inserimento bulk consente di copiare grandi quantità di dati all'interno di una vista o tabella di Microsoft SQL Server.

Per altre informazioni sull'uso degli inserimenti di massa, vedere Attività Inserimento bulk e BULK INSERT (Transact-SQL).

Opzioni

CodePage
Consente di specificare la tabella codici dei dati contenuti nel file.

DataFileType
Consente di specificare il valore di tipo di dati da utilizzare nell'operazione di caricamento.

BatchSize
Consente di specificare il numero di righe di un batch. Il valore predefinito è l'intero file di dati. Se si imposta BatchSize su zero, i dati vengono caricati in un singolo batch.

LastRow
Consente di specificare l'ultima riga da copiare.

FirstRow
Consente di specificare la riga dalla quale iniziare la copia.

Opzioni

Termine Definizione
Controlla vincoli Selezionare questa opzione per verificare i vincoli di colonna e tabella.
Mantieni valori Null Selezionare questa opzione per mantenere i valori Null durante l'operazione di inserimento bulk anziché inserire tutti i valori predefiniti per le colonne vuote.
Consenti IDENTITY_INSERT Selezionare questa opzione per inserire valori esistenti in una colonna Identity.
Blocco a livello di tabella Selezionare questa opzione per bloccare la tabella durante l'inserimento bulk.
Attiva trigger Selezionare questa opzione per attivare tutti i trigger di eliminazione, aggiornamento o inserimento nella tabella.

SortedData
Consente di specificare la clausola ORDER BY nell'istruzione di inserimento bulk. Il nome della colonna deve corrispondere a una colonna valida della tabella di destinazione. L'impostazione predefinita è false. Questo valore implica che i dati non vengono ordinati da una clausola ORDER BY.

MaxErrors
Consente di specificare il numero massimo di errori che possono verificarsi prima dell'annullamento dell'operazione di inserimento bulk. Un valore pari a 0 indica che è consentito un numero infinito di errori.

Nota

Ogni riga che non è possibile importare tramite l'operazione di caricamento bulk viene considerata un errore.