Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden des BCP-Dienstprogramms von Linux zum Importieren und Exportieren von Daten
Das BCP-Dienstprogramm bietet eine effiziente Möglichkeit, große Datenmengen zwischen Ihrer DB-Instance von RDS für SQL Server und Datendateien zu übertragen. Sie können BCP von Linux-Umgebungen aus verwenden, um Massendatenoperationen durchzuführen. Dies ist für Datenmigrationen, ETL-Prozesse und regelmäßige Datenübertragungen nützlich.
BCP unterstützt sowohl das Importieren von Daten aus Dateien in SQL-Server-Tabellen als auch das Exportieren von Daten aus SQL-Server-Tabellen in Dateien. Dies ist besonders effektiv für die Übertragung strukturierter Daten in verschiedenen Formaten, einschließlich Textdateien mit Trennzeichen.
Voraussetzungen
Bevor Sie BCP mit Ihrer DB-Instance von RDS für SQL Server verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Eine Linux-Umgebung mit Netzwerkverbindung zu Ihrer DB-Instance von RDS für SQL Server
-
Befehlszeilen-Tools von Microsoft SQL Server, die auf Ihrem Linux-System installiert sind, einschließlich:
sqlcmd: Befehlszeilen-Abfrage-Tool von SQL Server
bcp: Dienstprogramm zum Massenkopieren
-
Gültige Anmeldeinformationen für Ihre DB-Instance von RDS für SQL Server
-
Netzwerkzugriff, der über Sicherheitsgruppen konfiguriert wird, um Verbindungen über den SQL-Server-Port zuzulassen (normalerweise 1433)
-
Geeignete Datenbankberechtigungen für die Operationen, die Sie ausführen möchten
Installieren der Befehlszeilen-Tools von SQL Server unter Linux
Um BCP von Linux aus zu verwenden, müssen Sie die Befehlszeilen-Tools von Microsoft SQL Server installieren. Detaillierte Installationsanleitungen für Ihre spezifische Linux-Distribution finden Sie in der folgenden Microsoft-Dokumentation:
-
Install sqlcmd and bcp the SQL Server command-line tools on Linux
-
bcp utility
– Vollständige Referenz für das BCP-Dienstprogramm
Stellen Sie nach der Installation sicher, dass die Tools in Ihrem PATH verfügbar sind, indem Sie folgenden Befehl ausführen:
bcp -v sqlcmd -?
Exportieren von Daten aus RDS für SQL Server
Sie können BCP verwenden, um Daten aus Ihrer DB-Instance von RDS für SQL Server in Dateien auf Ihrem Linux-System zu exportieren. Dies ist nützlich, um Backups zu erstellen, Daten zu analysieren oder Daten für die Migration vorzubereiten.
Grundlegende Syntax für den Export
Die grundlegende Syntax für den Export von Daten mit BCP lautet:
bcpdatabase.schema.tableout output_file -S server_name -Uusername-Ppassword[options]
Wobei gilt:
database.schema.table– Vollständig qualifizierter Tabellennameoutput_file– Pfad und Name der Ausgabedateiserver_name– Ihr Endpunkt von RDS für SQL Serverusername– Ihr Datenbankbenutzernamepassword– Ihr Datenbankpasswort
Exportbeispiel
Das folgende Beispiel exportiert Daten aus einer Tabelle namens customers in der Datenbank sales:
bcp sales.dbo.customers out /home/user/customers.txt \ -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \ -Uadmin\ -Pmypassword\ -c \ -t "|" \ -r "\n"
Dieser Befehl:
exportiert Daten aus der Tabelle
customersspeichert die Ausgabe unter
/home/user/customers.txtverwendet das Zeichenformat (
-c)verwendet Pipe (|) als Feldtrennzeichen (
-t "|")verwendet Newline als Zeilentrennzeichen (
-r "\n")
Importieren von Daten in RDS für SQL Server
Sie können BCP verwenden, um Daten aus Dateien auf Ihrem Linux-System in Ihre DB-Instance von RDS für SQL Server zu importieren. Dies ist nützlich für die Datenmigration, das Laden von Testdaten oder regelmäßige Datenaktualisierungen.
Grundlegende Syntax für den Import
Die grundlegende Syntax für den Import von Daten mit BCP lautet:
bcpdatabase.schema.tablein input_file -Sserver_name-Uusername-Ppassword[options]
Wobei gilt:
database.schema.table– Vollständig qualifizierter Name der Zieltabelleinput_file– Pfad und Name der Eingabedateiserver_name– Ihr Endpunkt von RDS für SQL Serverusername– Ihr Datenbankbenutzernamepassword– Ihr Datenbankpasswort
Importbeispiel
Das folgende Beispiel importiert Daten aus einer Datei in eine Tabelle namens customers:
bcp sales.dbo.customers in /home/user/customers.txt \ -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \ -Uadmin\ -Pmypassword\ -c \ -t "|" \ -r "\n" \ -b 1000
Dieser Befehl:
importiert Daten in die
customers-Tabelleliest Daten aus
/home/user/customers.txtverwendet das Zeichenformat (
-c)verwendet Pipe (|) als Feldtrennzeichen (
-t "|")verwendet Newline als Zeilentrennzeichen (
-r "\n")verarbeitet Daten in Stapeln von 1 000 Zeilen (
-b 1000)
Allgemeine BCP-Optionen
BCP bietet zahlreiche Optionen zur Steuerung der Datenformatierung und des Übertragungsverhaltens. Die folgende Tabelle beschreibt häufig verwendete Optionen:
| Option | Beschreibung |
|---|---|
-c |
Verwendet den Zeichendatentyp für alle Spalten |
-n |
Verwendet native Datenbank-Datentypen |
-t |
Gibt das Feldtrennzeichen an (Standard ist Tab) |
-r |
Gibt das Zeilentrennzeichen an (Standard ist Newline) |
-b |
Gibt die Stapelgröße für Massenoperationen an |
-F |
Gibt die erste Zeile an, die exportiert oder importiert werden soll |
-L |
Gibt die letzte Zeile an, die exportiert oder importiert werden soll |
-e |
Gibt eine Fehlerdatei zum Erfassen abgelehnter Zeilen an |
-f |
Gibt eine Formatdatei für die Datenformatierung an |
-q |
Verwendet Bezeichner in Anführungszeichen für Objektnamen |
Bewährte Methoden und Überlegungen
Wenn Sie BCP mit RDS für SQL Server von Linux aus verwenden, sollten Sie die folgenden bewährte Methoden beachten:
-
Stapelverarbeitung verwenden – Verwenden Sie bei großen Datensätzen die Option
-b, um Daten stapelweise zu verarbeiten. Dies verbessert die Leistung und ermöglicht eine bessere Wiederherstellung nach Fehlern. -
Fehler ordnungsgemäß behandeln – Verwenden Sie die Option
-e, um Fehlerinformationen und abgelehnte Zeilen zur Analyse in einer separaten Datei zu erfassen. -
Geeignete Datenformate wählen – Verwenden Sie das Zeichenformat (
-c) für plattformübergreifende Kompatibilität oder das native Format (-n) für eine bessere Leistung, wenn sowohl Quelle als auch Ziel SQL Server sind. -
Anmeldeinformationen schützen – Vermeiden Sie es, Passwörter direkt in Befehlszeilen einzugeben. Erwägen Sie die Verwendung von Umgebungsvariablen oder Konfigurationsdateien mit entsprechenden Berechtigungen.
-
Mit kleinen Datensätzen testen – Bevor Sie große Datenmengen verarbeiten, testen Sie Ihre BCP-Befehle mit kleineren Datensätzen, um die Formatierung und Konnektivität zu überprüfen.
-
Netzwerkkonnektivität überwachen – Sorgen Sie für stabile Netzwerkverbindungen, insbesondere bei großen Datenübertragungen. Erwägen Sie die Verwendung von Tools wie
screenodertmuxfür lang andauernde Operationen. -
Datenintegrität validieren – Überprüfen Sie nach der Datenübertragung die Zeilenanzahl und Daten stichprobenartig, um sicherzustellen, dass der Vorgang erfolgreich abgeschlossen wurde.
Behebung häufiger Probleme
In der folgenden Tabelle werden häufig auftretende Probleme beschrieben, die bei der Verwendung von BCP unter Linux auftreten können, sowie deren Lösungen:
| Problem | Lösung |
|---|---|
| Verbindungs-Timeout oder Netzwerkfehler | Überprüfen Sie Ihren Amazon-RDS-Endpunkt, Ihre Sicherheitsgruppeneinstellungen und Ihre Netzwerkkonnektivität. Stellen Sie sicher, dass der SQL-Server-Port (normalerweise 1433) von Ihrem Linux-System aus zugänglich ist. |
| Authentication failures (Authentifizierungsfehler) | Überprüfen Sie Ihren Benutzernamen und Ihr Passwort. Stellen Sie sicher, dass der Datenbankbenutzer über die entsprechenden Berechtigungen für die von Ihnen ausgeführten Operationen verfügt. |
| Datenformatfehler | Überprüfen Sie Ihre Feld- und Zeilentrennzeichen. Stellen Sie sicher, dass das Datenformat den Erwartungen von BCP entspricht. Verwenden Sie Formatdateien für komplexe Datenstrukturen. |
| Fehler bei abgelehnter Berechtigung | Stellen Sie sicher, dass Ihr Datenbankbenutzer über INSERT-Berechtigungen für Importe oder SELECT-Berechtigungen für Exporte in den Zieltabellen verfügt. |
| Probleme mit der Handhabung großer Dateien | Verwenden Sie die Stapelverarbeitung mit der Option -b. Erwägen Sie, große Dateien in kleinere Teile aufzuteilen, um die Leistung zu verbessern und Fehler zu beheben. |
| Probleme mit der Zeichenkodierung | Stellen Sie sicher, dass Ihre Datendateien eine kompatible Zeichenkodierung verwenden. Verwenden Sie die Option -c für das Zeichenformat oder geben Sie die entsprechenden Codepages an. |