Taak bulksgewijs invoegen
van toepassing op:SQL Server
SSIS Integration Runtime in Azure Data Factory
De taak Bulksgewijs invoegen biedt een efficiënte manier om grote hoeveelheden gegevens te kopiëren naar een SQL Server-tabel of -weergave. Stel dat uw bedrijf de productlijst met miljoen rijen opslaat op een mainframesysteem, maar het e-commercesysteem van het bedrijf sql Server gebruikt om webpagina's te vullen. U moet de SQL Server-producttabel 's nachts bijwerken met de hoofdproductlijst van het mainframe. Als u de tabel wilt bijwerken, slaat u de productlijst op in een door tabs gescheiden indeling en gebruikt u de taak Bulksgewijs invoegen om de gegevens rechtstreeks naar de SQL Server-tabel te kopiëren.
Om ervoor te zorgen dat gegevens snel worden gekopieerd, kunnen transformaties niet worden uitgevoerd op de gegevens terwijl deze van het bronbestand naar de tabel of weergave worden verplaatst.
Overwegingen voor gebruik
Voordat u de taak Bulksgewijs invoegen gebruikt, moet u rekening houden met het volgende:
De taak Bulksgewijs invoegen kan alleen gegevens uit een tekstbestand overdragen naar een SQL Server-tabel of -weergave. Als u de taak Bulksgewijs invoegen wilt gebruiken om gegevens over te dragen van andere databasebeheersystemen (DBMSs), moet u de gegevens uit de bron exporteren naar een tekstbestand en vervolgens de gegevens uit het tekstbestand importeren in een SQL Server-tabel of -weergave.
Het doel moet een tabel of weergave in een SQL Server-database zijn. Als de doeltabel of -weergave al gegevens bevat, worden de nieuwe gegevens toegevoegd aan de bestaande gegevens wanneer de taak Bulksgewijs invoegen wordt uitgevoerd. Als u de gegevens wilt vervangen, voert u een SQL-taak uitvoeren uit die een DELETE- of TRUNCATE-instructie uitvoert voordat u de taak Bulksgewijs invoegen uitvoert. Zie SQL-taakuitvoeren voor meer informatie.
U kunt een indelingsbestand gebruiken in het taakobject Bulksgewijs invoegen. Als u een indelingsbestand hebt dat is gemaakt door het hulpprogramma bcp, kunt u het pad opgeven in de taak Bulksgewijs invoegen. De Bulk Insert-taak ondersteunt zowel XML- als niet-XML-formaatbestanden. Zie Bestandsindelingen voor het importeren of exporteren van gegevens (SQL Server)voor meer informatie over bestandsindelingen.
Alleen leden van de vaste serverrol 'sysadmin' kunnen een pakket uitvoeren dat een Bulkinsertie-taak bevat.
Taak bulksgewijs invoegen met transacties
Als een batchgrootte niet is ingesteld, wordt de volledige bulkkopiebewerking behandeld als één transactie. Een batchgrootte van 0 geeft aan dat de gegevens in één batch worden ingevoegd. Als een batchgrootte is ingesteld, vertegenwoordigt elke batch een transactie die wordt doorgevoerd wanneer de batch is uitgevoerd.
Het gedrag van de taak Bulksgewijs invoegen, zoals deze betrekking heeft op transacties, is afhankelijk van of de taak deelneemt aan de pakkettransactie. Als de taak Bulk Insert niet deelneemt aan de pakkettransactie, wordt elke foutvrije batch als een eenheid doorgevoerd voordat de volgende batch wordt geprobeerd. Als de taak Bulksgewijs invoegen deelneemt aan de pakkettransactie, blijven foutloze batches in de transactie aan het einde van de taak. Deze batches zijn onderhevig aan de doorvoer- of terugdraaibewerking van het pakket.
Een fout in de Bulk Insert-taak draait succesvol geladen batches niet automatisch terug; als de taak slaagt, worden batches niet automatisch gecommit. Doorvoer- en terugdraaibewerkingen worden alleen uitgevoerd als reactie op de instellingen voor pakket- en werkstroomeigenschappen.
Bron en doel
Houd rekening met het volgende wanneer u de locatie van het tekstbestand opgeeft:
De server moet gemachtigd zijn om toegang te krijgen tot zowel het bestand als de doeldatabase.
De server voert de taak Bulksgewijs invoegen uit. Daarom moet elk indelingsbestand dat door de taak wordt gebruikt zich op de server bevinden.
Het bronbestand dat de taak bulksgewijs invoegen laadt, kan zich op dezelfde server bevinden als de SQL Server-database waarin gegevens worden ingevoegd of op een externe server. Als het bestand zich op een externe server bevindt, moet u de bestandsnaam opgeven met behulp van de UNC-naam (Universal Naming Convention) in het pad.
Prestatieoptimalisatie
Houd rekening met het volgende om de prestaties te optimaliseren:
Als het tekstbestand zich op dezelfde computer bevindt als de SQL Server-database waarin gegevens worden ingevoegd, vindt de kopieerbewerking nog sneller plaats omdat de gegevens niet via het netwerk worden verplaatst.
Met de taak Bulksgewijs invoegen worden geen rijen vastgelegd die fouten veroorzaken. Als u deze informatie moet vastleggen, gebruikt u de foutuitvoer van gegevensstroomonderdelen om fouten veroorzakende rijen in een uitzonderingsbestand vast te leggen.
Aangepaste logboekvermeldingen die beschikbaar zijn voor de taak bulksgewijs invoegen
De volgende tabel bevat de aangepaste logboekvermeldingen voor de taak Bulksgewijs invoegen. Zie Integration Services (SSIS) Loggingvoor meer informatie.
Logboekvermelding | Beschrijving |
---|---|
BulkinvoegTaakBegin | Geeft aan dat de bulkinvoeging is gestart. |
BulkInsertTaskEnd | Geeft aan dat de bulkinvoer is voltooid. |
BulkInsertTaskInfos | Bevat beschrijvende informatie over de taak. |
Taakconfiguratie bulksgewijs invoegen
U kunt de taak Bulksgewijs invoegen op de volgende manieren configureren:
Geef het OLE DB-verbindingsbeheer op om verbinding te maken met de doel-SQL Server-database en de tabel of weergave waarin gegevens worden ingevoegd. De taak Bulksgewijs invoegen ondersteunt alleen OLE DB-verbindingen voor de doeldatabase.
Geef het verbindingsbeheer voor bestand of plat bestand op om toegang te krijgen tot het bronbestand. De taak Bulksgewijs invoegen maakt alleen gebruik van verbindingsbeheer voor de locatie van het bronbestand. De taak negeert andere opties die u selecteert in de editor voor verbindingsbeheer.
Definieer de indeling die wordt gebruikt door de taak Bulksgewijs invoegen, hetzij met behulp van een indelingsbestand of door de kolom- en rijscheidingstekens van de brongegevens te definiëren. Als u een indelingsbestand gebruikt, geeft u het bestandsverbindingsbeheer op voor toegang tot het indelingsbestand.
Geef acties op die moeten worden uitgevoerd in de doeltabel of weergave wanneer de taak de gegevens invoegt. De opties zijn onder andere of u beperkingen wilt controleren, identiteitsinvoegingen wilt inschakelen, null-waarden wilt behouden, triggers wilt activeren of de tabel wilt vergrendelen.
Geef informatie op over de batch met gegevens die u wilt invoegen, zoals de batchgrootte, de eerste en laatste rij van het bestand dat moet worden ingevoegd, het aantal invoegfouten dat kan optreden voordat de taak stopt met het invoegen van rijen en de namen van de kolommen die worden gesorteerd.
Als de taak Bulksgewijs invoegen een verbindingsbeheer voor plat bestand gebruikt voor toegang tot het bronbestand, gebruikt de taak niet de indeling die is opgegeven in het verbindingsbeheer voor platte bestanden. In plaats daarvan gebruikt de Bulk Insert-taak de indeling die is opgegeven in een indelingsbestand, of de waarden van de RowDelimiter- en ColumnDelimiter-eigenschappen van de taak.
U kunt eigenschappen instellen via SSIS Designer of programmatisch.
Klik op het volgende onderwerp voor meer informatie over de eigenschappen die u in SSIS Designer kunt instellen:
Klik op het volgende onderwerp voor meer informatie over het instellen van deze eigenschappen in SSIS Designer:
Programmatische configuratie van de taak bulksgewijs invoegen
Klik op het volgende onderwerp voor meer informatie over het programmatisch instellen van deze eigenschappen:
Gerelateerde taken
de eigenschappen van een taak of container instellen
Verwante inhoud
Technisch artikel, U krijgt mogelijk de foutmelding 'Kan de SSIS-bulkinvoeging niet voorbereiden voor gegevensinvoeging' op UAC-systemen, op support.microsoft.com.
Technisch artikel, The Data Loading Performance Guide, op msdn.microsoft.com.
Technisch artikel, Sql Server Integration Services gebruiken om gegevens bulksgewijs te laden, op simple-talk.com.
Taakeditor bulksgewijs invoegen (verbindingspagina)
Gebruik de pagina Verbinding van het dialoogvenster Taakeditor bulksgewijs invoegen om de bron en het doel van de bulksgewijze invoegbewerking en de te gebruiken indeling op te geven.
Zie Taak bulksgewijs invoegen en Bestanden opmaken voor het importeren of exporteren van gegevens (SQL Server)voor meer informatie over het werken met bulksgewijs invoegen.
Opties
verbinding
Selecteer een OLE DB-verbindingsbeheer in de lijst of klik op <Nieuwe verbinding...> om een nieuwe verbinding te maken.
Verwante onderwerpen:OLE DB-verbindingsbeheer
DestinationTable
Typ de naam van de doeltabel of -weergave of selecteer een tabel of weergave in de lijst.
Formaat
Selecteer de bron van het formaat voor de bulk-insertie. Deze eigenschap bevat de opties in de volgende tabel.
Waarde | Beschrijving |
---|---|
Bestand gebruiken | Selecteer een bestand met de indelingsspecificatie. Als u deze optie selecteert, wordt de dynamische optie FormatFileweergegeven. |
specificeren | Geef het formaat op. Als u deze optie selecteert, worden de dynamische opties weergegeven, RowDelimiter en ColumnDelimiter. |
bestand
Selecteer een bestands- of plat bestandsverbindingsbeheer in de lijst of klik op <nieuwe verbinding...> om een nieuwe verbinding te maken.
De bestandslocatie is relatief ten opzichte van de SQL Server-database-engine die is opgegeven in het verbindingsbeheer voor deze taak. Het tekstbestand moet toegankelijk zijn voor de SQL Server Database Engine op een lokale harde schijf op de server, of via een gedeelde map of netwerkschijf naar de SQL Server. Het bestand wordt niet geopend door de SSIS Runtime.
Als u het bronbestand opent met behulp van een verbindingsbeheer voor platte bestanden, gebruikt de Bulk-invoegtaak niet de indeling die is opgegeven in het verbindingsbeheer voor platte bestanden. In plaats daarvan gebruikt de Bulk Insert-taak het formaat dat is opgegeven in een indelingsbestand of de waarden van de eigenschappen RowDelimiter en ColumnDelimiter van de taak.
Verwante Onderwerpen:Bestandsverbindingsbeheer, Flat File-verbindingsbeheerder
tabellen vernieuwen
Vernieuw de lijst met tabellen en weergaven.
Dynamische opties opmaken
Formaat = Gebruik bestand
FormatFile-
Typ het pad van het indelingsbestand of klik op de knop met het beletselteken (...) om het indelingsbestand te zoeken.
Formaat = Specificeer
RowDelimiter
Geef het rijscheidingsteken op in het bronbestand. De standaardwaarde is {CR}{LF}.
ColumnDelimiter
Geef het kolomscheidingsteken op in het bronbestand. De standaardwaarde is Tab-.
Taakeditor bulksgewijs invoegen (algemene pagina)
Gebruik de pagina Algemeen van het dialoogvenster Bulk-invoegtaak-editor om de Bulk-invoegtaak een naam te geven en te beschrijven.
Opties
Naam
Geef een unieke naam op voor de taak Bulksgewijs invoegen. Deze naam wordt gebruikt als het label in het taakpictogram.
Notitie
Taaknamen moeten uniek zijn binnen een pakket.
Beschrijving
Typ een beschrijving van de taak Bulksgewijs invoegen.
Taakeditor bulksgewijs invoegen (pagina Opties)
Gebruik de opties pagina van het dialoogvenster Taakeditor bulksgewijs invoegen om eigenschappen in te stellen voor de bewerking bulksgewijs invoegen. Met de taak Bulksgewijs invoegen worden grote hoeveelheden gegevens gekopieerd naar een Microsoft SQL Server-tabel of -weergave.
Zie Taak bulksgewijs invoegen en BULK INSERT (Transact-SQL)voor meer informatie over het werken met bulksgewijs invoegen.
Opties
CodePage
Geef de codepagina van de gegevens in het gegevensbestand op.
DataFileType -
Geef de gegevenstypewaarde op die moet worden gebruikt in de belastingsbewerking.
BatchSize
Geef het aantal rijen in een batch op. De standaardwaarde is het hele gegevensbestand. Als u BatchSize- instelt op nul, worden de gegevens in één batch geladen.
LastRow
Geef de laatste rij op die u wilt kopiëren.
FirstRow
Geef de eerste rij op waaruit u wilt beginnen met kopiëren.
opties
Termijn | Definitie |
---|---|
Beperkingen controleren | Selecteer deze optie om de tabel- en kolombeperkingen te controleren. |
Null-waarden behouden | Selecteer deze optie om null-waarden te behouden tijdens de bulkinvoegbewerking, in plaats van standaardwaarden voor lege kolommen in te voegen. |
Identiteitsinvoeging inschakelen | Selecteer deze optie om bestaande waarden in een identiteitskolom in te voegen. |
Tabelvergrendeling | Selecteer deze optie om de tabel tijdens het bulksgewijs invoegen te vergrendelen. |
Fire triggers | Selecteer deze optie om eventuele triggers voor invoegen, bijwerken of verwijderen in de tabel te activeren. |
SortedData
Geef de ORDER BY-clausule op in de bulk insert-instructie. De kolomnaam die u opgeeft, moet een geldige kolom in de doeltabel zijn. De standaardwaarde is vals. Dit betekent dat de gegevens niet worden gesorteerd op een ORDER BY-component.
MaxErrors
Geef het maximum aantal fouten op dat kan optreden voordat de bulksgewijze invoegbewerking wordt geannuleerd. Een waarde van 0 geeft aan dat een oneindig aantal fouten is toegestaan.
Notitie
Elke rij die niet kan worden geïmporteerd door de bulk laadoperatie, wordt geteld als één fout.