Verwenden des BCP-Dienstprogramms unter Linux zum Importieren und Exportieren von Daten - Amazon Relational Database Service

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 -U username -P password [options]

Wobei gilt:

  • database.schema.table- Der vollqualifizierte Tabellenname

  • output_file- Der Pfad und der Name der Ausgabedatei

  • server_name- Ihr RDS für SQL Server-Endpunkt

  • username- Ihr Datenbank-Benutzername

  • password- 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 \ -P mypassword \ -c \ -t "|" \ -r "\n"

Dieser Befehl:

  • Exportiert Daten aus der customers Tabelle

  • Speichert 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 -S server_name -U username -P password [options]

Wobei gilt:

  • database.schema.table- Der vollqualifizierte Name der Zieltabelle

  • input_file- Der Pfad und der Name der Eingabedatei

  • server_name- Ihr RDS für SQL Server-Endpunkt

  • username- Ihr Datenbank-Benutzername

  • password- 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 \ -P mypassword \ -c \ -t "|" \ -r "\n" \ -b 1000

Dieser Befehl:

  • Importiert Daten in die customers Tabelle

  • Liest 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 oder tmux 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.