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 unter Linux zum Importieren und Exportieren von Daten
Das BCP-Hilfsprogramm (Bulk Copy Program) bietet eine effiziente Möglichkeit, große Datenmengen zwischen Ihrer RDS for SQL Server-DB-Instance und Datendateien zu übertragen. Sie können BCP von Linux-Umgebungen aus verwenden, um Massendatenoperationen durchzuführen, was es für Datenmigrationen, ETL-Prozesse und regelmäßige Datenübertragungen nützlich macht.
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 RDS for SQL Server-DB-Instance von Linux aus verwenden, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Eine Linux-Umgebung mit Netzwerkkonnektivität zu Ihrer RDS for SQL Server-DB-Instance
-
Auf Ihrem Linux-System installierte Microsoft SQL Server-Befehlszeilentools, darunter:
sqlcmd — SQL Server-Befehlszeilen-Abfragetool
bcp — Programm zum Massenkopieren
-
Gültige Anmeldeinformationen für Ihre RDS for SQL Server-DB-Instance
-
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
Installation der SQL Server-Befehlszeilentools unter Linux
Um BCP von Linux aus zu verwenden, müssen Sie die Microsoft SQL Server-Befehlszeilentools installieren. Detaillierte Installationsanweisungen für Ihre spezifische Linux-Distribution finden Sie in der folgenden Microsoft-Dokumentation:
Stellen Sie nach der Installation sicher, dass die Tools in Ihrem PATH verfügbar sind, indem Sie Folgendes ausführen:
bcp -v sqlcmd -?
Exportieren von Daten aus RDS for SQL Server
Sie können BCP verwenden, um Daten aus Ihrer RDS for SQL Server-DB-Instance 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 Exportsyntax
Die grundlegende Syntax für den Export von Daten mit BCP lautet:
bcp
database.schema.table
out output_file -S server_name -Uusername
-Ppassword
[options]
Wobei gilt:
database.schema.table
- Der vollqualifizierte Tabellennameoutput_file
- Der Pfad und der Name der Ausgabedateiserver_name
- Ihr RDS für SQL Server-Endpunktusername
- Ihr Datenbank-Benutzernamepassword
- Ihr Datenbank-Passwort
Beispiel exportieren
Das folgende Beispiel exportiert Daten aus einer Tabelle, die customers
in der sales
Datenbank benannt ist:
bcp sales.dbo.customers out /home/user/customers.txt \ -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \ -U
admin
\ -Pmypassword
\ -c \ -t "|" \ -r "\n"
Dieser Befehl:
Exportiert Daten aus der
customers
TabelleSpeichert die Ausgabe in
/home/user/customers.txt
Verwendet das Zeichenformat (
-c
)Verwendet Pipe (|) als Feldtrennzeichen ()
-t "|"
Verwendet Newline als Zeilentrennzeichen ()
-r "\n"
Daten nach RDS für SQL Server importieren
Sie können BCP verwenden, um Daten aus Dateien auf Ihrem Linux-System in Ihre RDS for SQL Server-DB-Instance zu importieren. Dies ist nützlich für die Datenmigration, das Laden von Testdaten oder regelmäßige Datenaktualisierungen.
Grundlegende Importsyntax
Die grundlegende Syntax für den Import von Daten mit BCP lautet:
bcp
database.schema.table
in input_file -Sserver_name
-Uusername
-Ppassword
[options]
Wobei gilt:
database.schema.table
- Der vollqualifizierte Name der Zieltabelleinput_file
- Der Pfad und der Name der Eingabedateiserver_name
- Ihr RDS für SQL Server-Endpunktusername
- Ihr Datenbank-Benutzernamepassword
- Ihr Datenbank-Passwort
Beispiel importieren
Im folgenden Beispiel werden Daten aus einer Datei in eine Tabelle mit dem Namen importiertcustomers
:
bcp sales.dbo.customers in /home/user/customers.txt \ -S mydb.cluster-abc123.us-east-1.rds.amazonaws.com \ -U
admin
\ -Pmypassword
\ -c \ -t "|" \ -r "\n" \ -b 1000
Dieser Befehl:
Importiert Daten in die
customers
TabelleLiest Daten aus
/home/user/customers.txt
Verwendet das Zeichenformat (
-c
)Verwendet Pipe (|) als Feldtrennzeichen ()
-t "|"
Verwendet Newline als Zeilentrennzeichen ()
-r "\n"
Verarbeitet Daten in Stapeln von 1000 Zeilen ()
-b 1000
Allgemeine BCP-Optionen
BCP bietet zahlreiche Optionen zur Steuerung der Datenformatierung und des Übertragungsverhaltens. In der folgenden Tabelle werden häufig verwendete Optionen beschrieben:
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 Batchgröß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
Beachten Sie bei der Verwendung von BCP mit RDS für SQL Server unter Linux die folgenden bewährten Methoden:
-
Stapelverarbeitung verwenden — Verwenden Sie bei großen Datensätzen die
-b
Option, Daten stapelweise zu verarbeiten. Dies verbessert die Leistung und ermöglicht eine bessere Fehlerbehebung. -
Fehler ordnungsgemäß behandeln — Verwenden Sie
-e
diese Option, um Fehlerinformationen und abgelehnte Zeilen zur Analyse in einer separaten Datei zu erfassen. -
Wählen Sie geeignete Datenformate — Verwenden Sie das Zeichenformat (
-c
) für plattformübergreifende Kompatibilität oder das systemeigene Format (-n
) für eine bessere Leistung, wenn sowohl Quelle als auch Ziel SQL Server sind. -
Schützen Sie Ihre Anmeldeinformationen — Vermeiden Sie es, Passwörter direkt in Befehlszeilen einzugeben. Erwägen Sie die Verwendung von Umgebungsvariablen oder Konfigurationsdateien mit entsprechenden Berechtigungen.
-
Testen Sie mit kleinen Datensätzen — Bevor Sie große Datenmengen verarbeiten, testen Sie Ihre BCP-Befehle mit kleineren Datensätzen, um die Formatierung und Konnektivität zu überprüfen.
-
Überwachen Sie die Netzwerkkonnektivität — Sorgen Sie für stabile Netzwerkverbindungen, insbesondere bei großen Datenübertragungen. Erwägen Sie die Verwendung von Tools wie
screen
odertmux
für lang andauernde Operationen. -
Überprüfen Sie die Datenintegrität — Überprüfen Sie nach der Datenübertragung die Zeilenanzahl und die Stichprobendaten, um sicherzustellen, dass der Vorgang erfolgreich abgeschlossen wurde.
Behebung häufig auftretender 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. |
Fehler im Datenformat | Ü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 bei der Handhabung großer Dateien | Verwenden Sie die Stapelverarbeitung mit der -b Option. 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 -c Option für das Zeichenformat oder geben Sie die entsprechenden Codepages an. |