Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
SSIS Integration Runtime in Azure Data Factory
Der Task für Masseneinfügung bietet eine effiziente Möglichkeit, große Datenmengen in eine SQL Server-Tabelle oder -Ansicht zu kopieren. Angenommen, Ihr Unternehmen verwaltet eine Produktliste mit einer Million Zeilen auf einem Großrechner. Das E-Commerce-System des Unternehmens verwendet jedoch SQL Server zum Auffüllen von Webseiten. Sie müssen die SQL Server -Produkttabelle jede Nacht mit der Hauptproduktliste vom Großrechner aktualisieren. Um die Tabelle zu aktualisieren, speichern Sie die Produktliste in einem tabulatorgetrennten Format und verwenden den Task „Bulk Insert“, um die Daten direkt in die SQL-Server-Tabelle zu kopieren.
Um ein Kopieren mit hoher Geschwindigkeit zu gewährleisten, können an den Daten keine Transformationen vorgenommen werden, während sie von der Quelldatei in die Tabelle oder Ansicht übertragen werden.
Überlegungen zur Verwendung
Bevor Sie die Masseneinfügeaufgabe verwenden, beachten Sie Folgendes:
Der Task für Masseneinfügung kann Daten nur aus einer Textdatei in eine SQL Server-Tabelle oder -Sicht übertragen. Um den Task „Masseneinfügung“ zum Übertragen von Daten aus anderen Datenbankverwaltungssystemen (DBMS) zu verwenden, müssen Sie die Daten aus der Quelle in eine Textdatei exportieren und anschließend die Daten aus der Textdatei in eine SQL Server-Tabelle oder -Ansicht importieren.
Das Ziel muss eine Tabelle oder View in einer SQL Server-Datenbank sein. Wenn die Zieltabelle oder -ansicht bereits Daten enthält, werden die neuen Daten an die vorhandenen Daten angehängt, wenn der Bulk Insert-Task ausgeführt wird. Wenn Sie die Daten ersetzen möchten, führen Sie eine Execute SQL-Aufgabe aus, die eine DELETE oder TRUNCATE-Anweisung ausführt, bevor Sie die Aufgabe "Masseneinfügung" ausführen. Weitere Informationen finden Sie unter Execute SQL Task.
Sie können im Aufgabenobjekt „Bulk Insert“ eine Formatdatei verwenden. Wenn Sie über eine Formatdatei verfügen, die mit dem Hilfsprogramm bcp erstellt wurde, können Sie den Pfad dazu im Task für den Masseneinfügevorgang angeben. Der Masseneinfügungstask unterstützt XML- und Nicht-XML-Formatdateien. Weitere Informationen zu Formatdateien finden Sie unter Formatdateien zum Importieren oder Exportieren von Daten (SQL Server).
Nur Mitglieder der festen Serverrolle sysadmin können ein Paket ausführen, das einen Massenimporttask enthält.
Masseneinfügungsaufgabe mit Transaktionen
Wenn keine Batchgröße festgelegt ist, wird der gesamte Massenkopiervorgang als eine einzige Transaktion behandelt. Die Batchgröße 0 gibt an, dass die Daten in einem einzigen Batch eingefügt werden. Wenn eine Batchgröße festgelegt ist, stellt jeder Batch eine Transaktion dar, für die nach Beendigung des Batches ein Commit ausgeführt wird.
Das Verhalten des Masseneinfügungstasks in Verbindung mit Transaktionen hängt davon ab, ob der Task an der Pakettransaktion teilnimmt. Wenn sich der Bulk-Insert-Task nicht an der Pakettransaktion beteiligt, wird jedes fehlerfreie Batch als Einheit committet, bevor das nächste Batch verarbeitet wird. Wenn der Masseneinfügungstask an der Pakettransaktion teilnimmt, verbleiben fehlerfreie Batches nach Abschluss des Tasks in der Transaktion. Diese Batches unterliegen dem Commit- oder Rollbackvorgang des Pakets.
Ein Fehler im Bulk-Insert-Task führt nicht automatisch dazu, dass erfolgreich geladene Batches zurückgesetzt werden; ebenso werden Batches bei erfolgreicher Ausführung des Tasks nicht automatisch committet. Commit- und Rollbackvorgänge erfolgen nur als Reaktion auf Paket- und Workflow-Eigenschaftseinstellungen.
Quelle und Ziel
Beachten Sie Folgendes, wenn Sie den Speicherort der Quelltextdatei angeben:
Der Server muss die Berechtigung für den Zugriff auf die Datei und die Zieldatenbank besitzen.
Der Server führt die Aufgabe „Bulk Insert“ aus. Deshalb muss jede Formatdatei, die vom Task verwendet wird, auf dem Server gespeichert sein.
Die Quelldatei, die vom Masseneinfügungstask geladen wird, kann auf demselben Server wie die SQL Server -Datenbank, in die Daten eingefügt werden, oder auf einem Remoteserver gespeichert sein. Falls sich die Datei auf einem Remoteserver befindet, müssen Sie den Dateinamen mithilfe des UNC-Namens (Universal Naming Convention) im Pfad angeben.
Leistungsoptimierung
Beachten Sie bei der Optimierung der Leistung Folgendes:
Wenn sich die Textdatei auf demselben Computer wie die SQL Server -Datenbank befindet, in die Daten eingefügt werden, erfolgt der Kopiervorgang sogar noch schneller, weil die Daten nicht im Netzwerk verschoben werden.
Der Task „Masseneinfügung“ protokolliert fehlerverursachende Zeilen nicht. Um diese Informationen aufzuzeichnen, können Sie mit den Fehlerausgaben von Datenflusskomponenten Zeilen, die Fehler verursachen, in einer Ausnahmedatei aufzeichnen.
Benutzerdefinierte Protokolleinträge für die Bulk-Insert-Aufgabe verfügbar
In der folgenden Tabelle sind die benutzerdefinierten Protokolleinträge für den Task für Masseneinfügung aufgeführt. Weitere Informationen finden Sie unter Protokollierung in Integration Services (SSIS).
| Protokolleintrag | BESCHREIBUNG |
|---|---|
| BulkInsertTaskBegin | Gibt an, dass der Masseneinfügungsvorgang begann. |
| BulkInsertTaskEnd | Gibt an, dass der Masseneinfügungsvorgang abgeschlossen wurde. |
| BulkInsertTaskInfos | Enthält beschreibende Informationen zum Task. |
Konfiguration der Masseneinfügeaufgabe
Sie können die Aufgabe für das Masseneinfügen wie folgt konfigurieren:
Geben Sie den OLE DB-Verbindungs-Manager zum Herstellen der Verbindung mit der SQL Server -Zieldatenbank und der Tabelle oder Sicht an, in die Daten eingefügt werden. Der Massenimport-Task unterstützt nur OLE DB-Verbindungen für die Zieldatenbank.
Geben Sie den Datei- oder Flatfile-Verbindungs-Manager an, um auf die Quelldatei zuzugreifen. Der Masseneinfüge-Task verwendet den Verbindungs-Manager nur für den Speicherort der Quelldatei. Der Task ignoriert andere Optionen, die Sie im Verbindungs-Manager-Editor auswählen.
Definieren Sie das vom Masseneinfügungstask verwendete Format, indem Sie eine Formatdatei verwenden oder die Spalten- und Zeilentrennzeichen der Quelldaten definieren. Falls Sie eine Formatdatei verwenden, geben Sie den Dateiverbindungs-Manager für den Zugriff auf die Formatdatei an.
Geben Sie an, welche Aktionen für die Zieltabelle oder -View ausgeführt werden sollen, wenn der Task die Daten einfügt. Die Optionen umfassen, ob Einschränkungen überprüft, Identitätseinfügungen aktiviert, NULL-Werte beibehalten, Trigger ausgelöst oder die Tabelle gesperrt werden sollen.
Stellen Sie Informationen zum einzufügenden Datenbatch bereit, wie z. B. die Batchgröße, die erste und letzte Zeile aus der einzufügenden Datei, die Anzahl von INSERT-Fehlern, nach der der Task das Einfügen von Zeilen beendet, sowie die Namen der zu sortierenden Spalten.
Wenn der Masseneinfügungstask für den Zugriff auf die Quelldatei einen Verbindungs-Manager für Flatfiles verwendet, verwendet der Task nicht das im Verbindungs-Manager für Flatfiles angegebene Format. Stattdessen verwendet der Bulk Insert-Task entweder das in einer Formatdatei angegebene Format oder die Werte der Eigenschaften RowDelimiter und ColumnDelimiter des Tasks.
Sie können Eigenschaften mit dem SSIS -Designer oder programmgesteuert festlegen.
Klicken Sie auf das folgende Thema, um weitere Informationen zu den Eigenschaften zu erhalten, die Sie im SSIS -Designer festlegen können:
Weitere Informationen zum Festlegen dieser Eigenschaften im SSIS-Designer finden Sie im folgenden Thema:
Programmgesteuerte Konfiguration der Massenimportaufgabe
Klicken Sie auf das folgende Thema, um weitere Informationen zum programmgesteuerten Festlegen dieser Eigenschaften anzuzeigen:
Verwandte Aufgaben
Festlegen der Eigenschaften eines Tasks oder Containers
Verwandte Inhalte
Technischer Artikel Möglicherweise wird bei UAC-fähigen Systemen der Fehler "Die SSIS-Masseneinfügung kann zum Einfügen von Daten nicht vorbereitet werden" angezeigtauf support.microsoft.com.
Technischer Artikel The Data Loading Performance Guide (Leistungsleitfaden für das Laden von Daten)auf msdn.microsoft.com
Technischer Artikel Using SQL Server Integration Services to Bulk Load Data(Verwenden von SQL Server Integration Services für das Massenladen von Daten) auf simple-talk.com.
Editor für Masseneinfügeaufgaben (Verbindungsseite)
Mithilfe der Seite Verbindung im Dialogfeld Masseneinfügungstask-Editor können Sie die Quelle und das Ziel des Masseneinfügevorgangs und das zu verwendende Format angeben.
Informationen zum Arbeiten mit Masseneinfügevorgängen finden Sie unter Task für Masseneinfügevorgänge und Formatdateien zum Importieren oder Exportieren von Daten (SQL Server).
Optionen
Verbindung
Wählen Sie einen OLE DB-Verbindungs-Manager in der Liste aus, oder klicken Sie auf <Neue Verbindung>, um eine neue Verbindung zu erstellen.
Verwandte Themen:OLE DB-Verbindungs-Manager
DestinationTable
Geben Sie den Namen der Zieltabelle oder Zielsicht ein, oder wählen Sie aus der Liste eine Tabelle oder Sicht aus.
Format
Wählen Sie die Quelle des Formats für die Masseneinfügung aus. Diese Eigenschaft besitzt die in der folgenden Tabelle aufgeführten Optionen.
| Wert | BESCHREIBUNG |
|---|---|
| Datei nutzen | Wählen Sie eine Datei mit Formatspezifikationen aus. Nach Auswahl dieser Option wird die dynamische Option FormatFileangezeigt. |
| Spezifizieren | Geben Sie das Format an. Nach Auswahl dieser Option werden die dynamischen Optionen RowDelimiter und ColumnDelimiterangezeigt. |
Datei
Wählen Sie einen Datei- oder Flatfileverbindungs-Manager in der Liste aus, oder klicken Sie auf <Neue Verbindung>, um eine neue Verbindung zu erstellen.
Der Dateispeicherort bezieht sich auf die SQL Server-Datenbank-Engine, die im Verbindungs-Manager für diesen Task angegeben ist. Die SQL Server-Datenbank-Engine muss auf die Textdatei zugreifen können, und zwar entweder auf einer lokalen Festplatte des Servers oder über eine Freigabe oder einem SQL Server zugeordneten Laufwerk. Auf die Datei wird nicht von der SSIS-Laufzeit zugegriffen.
Wenn Sie auf die Quelldatei mithilfe eines Flatfileverbindungs-Managers zugreifen, verwendet der Masseneinfügungstask nicht das im Flatfileverbindungs-Manager angegebene Format. Stattdessen verwendet der Task für Masseneinfügung entweder das in einer Formatdatei angegebene Format oder die Werte der Eigenschaften RowDelimiter und ColumnDelimiter.
Verwandte Themen:Dateiverbindungs-Manager, Verbindungs-Manager für Flatfiles
Tabellen aktualisieren
Aktualisieren Sie die Liste der Tabellen und Ansichten.
Format (dynamische Optionen)
Format = Datei verwenden
FormatFile
Geben Sie den Pfad der Formatdatei ein, oder klicken Sie auf die Schaltfläche mit den Auslassungspunkten ( … ), um nach der Formatdatei zu suchen.
Format = Angeben
RowDelimiter-
Geben Sie das Zeilentrennzeichen in der Quelldatei an. Der Standardwert ist {CR}{LF} .
ColumnDelimiter
Geben Sie das Spaltentrennzeichen in der Quelldatei an. Der Standardwert ist Tab.
Editor für Masseneinfügeaufgaben (Allgemein)
Auf der Seite Allgemein des Dialogfelds Masseneinfügungstask-Editor können Sie einen Namen und eine Beschreibung für den Masseneinfügungstask angeben.
Optionen
Name
Geben Sie der Aufgabe „Masseneinfügung“ einen eindeutigen Namen. Dieser Name wird im Tasksymbol als Bezeichnung verwendet.
Hinweis
Tasknamen müssen innerhalb eines Pakets eindeutig sein.
Beschreibung
Geben Sie eine Beschreibung der Bulk-Insert-Aufgabe ein.
Editor für Masseneinfügeaufgaben (Optionsseite)
Verwenden Sie die Seite Optionen des Dialogfelds Masseneinfüge-Task-Editor, um Eigenschaften für den Masseneinfügevorgang festzulegen. Der Task für Masseneinfügung kopiert große Mengen an Daten in eine Tabelle oder Sicht von Microsoft SQL Server.
Weitere Informationen zum Arbeiten mit Masseneinfügungen finden Sie unter "Masseneinfügevorgang " und BULK INSERT (Transact-SQL).
Optionen
CodePage
Geben Sie die Codepage für die in der Datendatei enthaltenen Daten an.
DataFileType
Geben Sie den Wert für den Datentyp an, der beim Ladevorgang verwendet werden soll.
Batchgröße
Geben Sie die Anzahl der Zeilen in einem Batch an. Der Standardwert ist die gesamte Datendatei. Wenn Sie BatchSize auf null festlegen, werden die Daten in einem Batch geladen.
LastRow
Geben Sie die letzte zu kopierende Zeile an.
FirstRow
Geben Sie die erste zu kopierende Zeile an.
Optionen
| Begriff | Definition |
|---|---|
| Check-Einschränkungen | Wählen Sie diese Option aus, um die Einschränkungen für Tabelle und Spalte zu überprüfen. |
| NULL-Werte beibehalten | Wählen Sie diese Option aus, um NULL-Werte während des Masseneinfügungsvorgangs beizubehalten, statt für leere Spalten Standardwerte einzufügen. |
| IDENTITY_INSERT aktivieren | Wählen Sie diese Option aus, um vorhandene Werte in eine Identitätsspalte einzufügen. |
| Tabellensperre | Wählen Sie diese Option aus, um die Tabelle beim Masseneinfügen zu sperren. |
| Trigger auslösen | Wählen Sie diese Option aus, um alle Trigger für Einfüge-, Aktualisierungs- oder Löschvorgänge der Tabelle auszulösen. |
Sortierte Daten
Geben Sie die ORDER BY-Klausel in der BULK INSERT-Anweisung an. Der Name der angegebenen Spalte muss eine gültige Spalte in der Zieltabelle sein. Die Standardeinstellung ist false. Das bedeutet, dass die Daten nicht durch eine ORDER BY-Klausel sortiert werden.
MaxErrors
Geben Sie an, wie viele Fehler maximal auftreten müssen, bevor der Masseneinfügungsvorgang abgebrochen wird. Durch den Wert 0 wird gekennzeichnet, dass eine unendliche Anzahl von Fehlern zulässig ist.
Hinweis
Jede Zeile, die beim Massenladevorgang nicht importiert werden kann, zählt als ein Fehler.