Daten aus einer beliebigen Quelle in eine Amazon RDS for MariaDB-DB-Instance importieren - 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.

Daten aus einer beliebigen Quelle in eine Amazon RDS for MariaDB-DB-Instance importieren

Die folgenden Schritte führen Sie durch den Import von Daten in eine Amazon RDS-DB-Instance:

Schritt 1: Erstellen Sie flache Dateien, die die zu ladenden Daten enthalten

Verwenden Sie ein gängiges Format, z. B. kommagetrennte Werte (CSV), um die zu ladenden Daten zu speichern. Jede Tabelle muss eine eigene Datei haben — Sie können keine Daten für mehrere Tabellen in derselben Datei kombinieren. Geben Sie jeder Datei denselben Namen wie der zugehörigen Tabelle. Die Dateierweiterung können Sie benennen, wie Sie möchten. Wenn der Tabellenname beispielsweise lautetsales, könnte der Dateiname oder lautensales.csv. sales.txt

Wenn möglich, ordnen Sie die Daten nach dem Primärschlüssel der Tabelle, die geladen wird. Dadurch werden die Ladezeiten drastisch verbessert und die Anforderungen an den Festplattenspeicher minimiert.

Die optimale Geschwindigkeit und Effizienz dieser Prozedur ist auf kleine Dateigrößen ausgelegt. Wenn die Größe einer einzelnen unkomprimierten Datei mehr als 1 GiB beträgt, teilen Sie diese in mehrere Dateien auf, die danach separat geladen werden können.

Verwenden Sie auf Unix-ähnlichen Systemen (einschließlich Linux) den split-Befehl. Der folgende Befehl teilt beispielsweise die Datei sales.csv in mehrere Dateien auf, die kleiner als 1 GiB sind. Die Teilung findet nur an Zeilenumbrüchen statt (-C 1024m). Die Namen der neuen Dateien enthalten aufsteigende numerische Suffixe. Der folgende Befehl erzeugt Dateien mit Namen wie und. sales.part_00 sales.part_01

split -C 1024m -d sales.csv sales.part_

Ähnliche Hilfsprogramme sind auch für andere Betriebssysteme verfügbar.

Sie können die Flatfiles überall speichern. Wenn Sie die Daten in Schritt 5 laden, müssen Sie die mysql Shell jedoch von demselben Speicherort aufrufen, an dem sich die Dateien befinden, oder Sie müssen bei der Ausführung LOAD DATA LOCAL INFILE den absoluten Pfad für die Dateien verwenden.

Schritt 2: Verhindern Sie, dass alle Anwendungen auf die Ziel-DB-Instance zugreifen

Bevor Sie einen großen Ladevorgang starten, beenden Sie den Zugriff aller Anwendungsaktivitäten auf die Ziel-DB-Instance, in die Sie laden möchten. Wir empfehlen dies insbesondere, wenn andere Sitzungen die zu ladenden Tabellen oder die in diesen Tabellen referenzierten Tabellen verändern. Dadurch wird die Gefahr von Verstößen gegen Einschränkungen während des Ladens reduziert und zugleich die Ausführungsgeschwindigkeit des Ladevorgangs erhöht. Zudem wird es möglich, die DB-Instance im Zustand unmittelbar vor dem Ladevorgang wiederherzustellen, ohne die Änderungen durch Prozesse zu verlieren, die nicht am Ladevorgang beteiligt sind.

Unter Umständen ist dies jedoch nicht möglich oder nicht praktikabel. Wenn Sie vor dem Ladevorgang den Zugriff von Anwendungen auf die DB-Instance nicht stoppen können, führen Sie die erforderlichen Schritte aus, um die Verfügbarkeit und Integrität der Daten sicherzustellen. Die jeweiligen erforderlichen Schritte können sich stark unterscheiden, je nachdem welche besonderen Verwendungsfälle der Standortanforderungen vorliegen.

Schritt 3: Erstellen Sie einen DB-Snapshot

Wenn Sie Daten in eine neue DB-Instance laden wollen, die keine Daten enthält, können Sie diesen Schritt überspringen. Andernfalls empfehlen wir, vor und nach dem Laden der Daten DB-Snapshots der Amazon RDS-DB-Zielinstanz zu erstellen. Amazon RDS-DB-Snapshots sind vollständige Backups Ihrer DB-Instance, mit denen Sie Ihre DB-Instance in einen bekannten Zustand zurückversetzen können. Wenn Sie ein DB-Snapshot-I/O initiieren, werden alle Operationen in Ihrer DB-Instance augenblicklich unterbrochen, während Ihre Datenbank gesichert wird.

Wenn Sie einen DB-Snapshot unmittelbar vor dem Laden erstellen, können Sie die Datenbank bei Bedarf in ihrem Zustand vor dem Laden wiederherstellen. Ein DB-Snapshot, der sofort nach einem Ladevorgang erstellt wird, bewahrt Sie davor, die Daten bei einem Fehler erneut laden zu müssen. Sie können DB-Snapshots auch nach dem Laden verwenden, um Daten in neue Datenbank-Instances zu importieren.

Im folgenden Beispiel wird der AWS CLI create-db-snapshotBefehl ausgeführt, um einen DB-Snapshot der AcmeRDS Instance zu erstellen und dem DB-Snapshot die ID "preload" zu geben.

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

aws rds create-db-snapshot \ --db-instance-identifier AcmeRDS \ --db-snapshot-identifier preload

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

aws rds create-db-snapshot ^ --db-instance-identifier AcmeRDS ^ --db-snapshot-identifier preload

Sie können auch die Wiederherstellung aus der DB-Snapshot-Funktionalität verwenden, um Test-DB-Instances für Testversuche zu erstellen, oder, um die Änderungen während eines Ladevorgangs rückgängig zu machen.

Bedenken Sie, dass die Wiederherstellung einer Datenbank aus einem DB-Snapshot eine neue DB-Instance erstellt, die wie alle DB-Instances über eine eindeutige Kennung und einen Endpunkt verfügt. Um die DB-Instance wiederherzustellen, ohne den Endpunkt zu ändern, löschen Sie zuerst die DB-Instance, damit Sie den Endpunkt wiederverwenden können.

Um beispielsweise eine DB-Instance für einen Testlauf oder andere Testzwecke zu erstellen, weisen Sie der DB-Instance eine eigene Kennung zu. Im Beispiel ist AcmeRDS-2" die Kennung. Das Beispiel stellt über den Endpunkt, der AcmeRDS-2 zugeordnet ist, eine Verbindung mit der DB-Instance her. Weitere Informationen finden Sie unter restore-db-instance-from-db-snapshot.

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier AcmeRDS-2 \ --db-snapshot-identifier preload

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier AcmeRDS-2 ^ --db-snapshot-identifier preload

Um einen bestehenden Endpunkt erneut zu verwenden, löschen Sie zuerst die DB-Instance und weisen Sie dann der wiederhergestellten Datenbank dieselbe Kennung zu. Weitere Informationen finden Sie unter delete-db-instance.

Im folgenden Beispiel wird auch ein letzter DB-Snapshot der DB-Instance erstellt, bevor sie gelöscht wird. Dies ist zwar optional, wird aber empfohlen.

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

aws rds delete-db-instance \ --db-instance-identifier AcmeRDS \ --final-db-snapshot-identifier AcmeRDS-Final aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier AcmeRDS \ --db-snapshot-identifier preload

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

aws rds delete-db-instance ^ --db-instance-identifier AcmeRDS ^ --final-db-snapshot-identifier AcmeRDS-Final aws rds restore-db-instance-from-db-snapshot ^ --db-instance-identifier AcmeRDS ^ --db-snapshot-identifier preload

Schritt 4 (optional): Automatische Amazon RDS-Backups ausschalten

Warnung

Schalten Sie automatische Backups nicht aus, wenn Sie eine point-in-time Wiederherstellung durchführen müssen.

Das Ausschalten automatisierter Backups dient der Leistungsoptimierung und ist für das Laden von Daten nicht erforderlich. Durch das Deaktivieren automatisierter Backups werden alle vorhandenen Backups gelöscht. Daher ist eine point-in-time Wiederherstellung nicht möglich, nachdem Sie automatische Backups deaktiviert haben. Beachten Sie, dass manuelle DB-Snapshots nicht von der Deaktivierung automatischer Backups betroffen sind. Alle bestehenden manuellen DB-Snapshots bleiben für eine Wiederherstellung verfügbar.

Das Deaktivieren von automatischen Backups reduziert die Ladezeit um 25 % und verringert zugleich den während des Ladevorgangs erforderlichen Speicherplatz. Wenn Sie Daten in eine neue DB-Instance laden wollen, die keine Daten enthält, ist das Deaktivieren von Backups eine einfache Möglichkeit, die Übertragungsgeschwindigkeit zu erhöhen und zusätzlichen Speicherverbrauch zu vermeiden. In einigen Fällen können Sie jedoch in eine DB-Instance laden, die bereits Daten enthält. Wenn ja, sollten Sie die Vorteile der Deaktivierung von Backups gegen die Auswirkungen eines Verlusts der Leistungsfähigkeit abwägen point-in-time-recovery.

In DB-Instances ist die Funktion für automatische Backups standardmäßig aktiviert (mit einem Aufbewahrungszeitraum von 1 Tag). Setzen Sie den Wert des Aufbewahrungszeitraums für Backups auf 0, um automatische Backups zu deaktivieren. Nach dem Ladevorgang können Sie Backups erneut aktivieren, indem Sie den Aufbewahrungszeitraum für Backups auf einen Nicht-Null-Wert setzen. Um Backups ein- oder auszuschalten, fährt Amazon RDS die DB-Instance herunter und startet sie dann neu, um die MariaDB- oder MySQL-Protokollierung ein- oder auszuschalten.

Führen Sie den AWS CLI modify-db-instance Befehl aus, um die Backup-Aufbewahrung auf Null zu setzen und die Änderung sofort zu übernehmen. Das Setzen des Aufbewahrungszeitraums für Backups auf Null erfordert den Neustart einer DB-Instance. Warten Sie daher bitte, bis der Neustart abgeschlossen wurde, bevor Sie fortfahren. Weitere Informationen finden Sie unter modify-db-instance.

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

aws rds modify-db-instance \ --db-instance-identifier AcmeRDS \ --apply-immediately \ --backup-retention-period 0

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

aws rds modify-db-instance ^ --db-instance-identifier AcmeRDS ^ --apply-immediately ^ --backup-retention-period 0

Sie können den Status Ihrer DB-Instance mit dem AWS CLI describe-db-instancesBefehl überprüfen. Im folgenden Beispiel wird der DB-Instance-Status der AcmeRDS DB-Instance angezeigt:

aws rds describe-db-instances --db-instance-identifier AcmeRDS --query "*[].{DBInstanceStatus:DBInstanceStatus}"

Wenn der DB-Instance-Status lautetavailable, können Sie mit dem nächsten Schritt fortfahren.

Schritt 5: Laden Sie die Daten

Verwenden Sie die LOAD DATA LOCAL INFILE MySQL-Anweisung, um Zeilen aus Ihren Flatfiles in die Datenbanktabellen zu lesen.

Anmerkung

Sie müssen die mysql Shell von demselben Ort aufrufen, an dem sich Ihre Flatfiles befinden, oder bei der Ausführung LOAD DATA LOCAL INFILE den absoluten Pfad für die Dateien verwenden.

Das folgende Beispiel zeigt, wie Daten aus einer Datei mit dem Namen sales.txt in eine Sales in der Datenbank benannte Tabelle geladen werden:

mysql> LOAD DATA LOCAL INFILE 'sales.txt' INTO TABLE Sales FIELDS TERMINATED BY ' ' ENCLOSED BY '' ESCAPED BY '\\'; Query OK, 1 row affected (0.01 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0

Weitere Informationen zu der LOAD DATA Anweisung finden Sie unter LOAD DATA Statement in der MySQL-Dokumentation.

Schritt 6: Automatisierte Amazon RDS-Backups wieder aktivieren

Wenn Sie in Schritt 4 automatische Amazon RDS-Backups deaktiviert haben, schalten Sie nach Abschluss des Ladevorgangs automatische Backups ein, indem Sie die Aufbewahrungsfrist für Backups auf den Wert vor dem Laden zurücksetzen. Wie in Schritt 4 erwähnt, startet Amazon RDS die DB-Instance neu. Seien Sie also auf einen kurzen Ausfall vorbereitet.

Im folgenden Beispiel wird der AWS CLI modify-db-instanceBefehl ausgeführt, um automatische Backups für die AcmeRDS DB-Instance zu aktivieren und die Aufbewahrungsfrist auf einen Tag festzulegen:

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

aws rds modify-db-instance \ --db-instance-identifier AcmeRDS \ --backup-retention-period 1 \ --apply-immediately

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

aws rds modify-db-instance ^ --db-instance-identifier AcmeRDS ^ --backup-retention-period 1 ^ --apply-immediately