Anfordern eines Tabellenexports in DynamoDB
Der DynamoDB-Import ermöglicht Ihnen, Daten aus einem Amazon-S3-Bucket in eine neue DynamoDB-Tabelle zu importieren. Sie können einen Tabellenimport anfordern, indem Sie die DynamoDB-Konsole
Wenn Sie die AWS CLI verwenden möchten, müssen Sie sie zunächst konfigurieren. Weitere Informationen finden Sie unter Zugreifen auf DynamoDB.
Anmerkung
Die Funktion „Tabelle importieren“ interagiert mit mehreren verschiedenen AWS-Services wie Amazon S3 und CloudWatch. Bevor Sie mit einem Import beginnen, stellen Sie sicher, dass der Benutzer oder die Rolle, die die Import-APIs aufruft, über Berechtigungen für alle Services und Ressourcen verfügt, von denen die Funktion abhängig ist.
Während des Imports dürfen die Amazon-S3-Objekte nicht geändert werden, da dies zum Fehlschlagen oder Abbruch des Vorgangs führen kann.
Weitere Informationen zu Fehlern und zur Fehlerbehebung finden Sie unter Importformatkontingente und Validierung
Themen
Einrichten von IAM-Berechtigungen
Sie können Daten aus jedem Amazon S3-Bucket importieren, für den Sie über Leseberechtigung verfügen. Der Quell-Bucket muss sich nicht in derselben Region befinden oder denselben Besitzer wie die Quelltabelle haben. Ihre AWS Identity and Access Management (IAM) muss die relevanten Aktionen im Quell-Bucket aus Amazon S3 und die erforderlichen CloudWatch-Berechtigungen für die Bereitstellung von Debugging-Informationen enthalten. Nachfolgend eine Beispielrichtlinie.
Amazon-S3-Berechtigungen
Wenn Sie einen Import auf einer Bucket-Quelle aus Amazon S3 starten, die einem anderen Konto gehört, stellen Sie sicher, dass die Rolle oder der Benutzer Zugriff auf die Amazon-S3-Objekte hat. Sie können dies überprüfen, indem Sie einen Amazon-S3–Befehl GetObject ausführen und die Anmeldeinformationen verwenden. Bei Verwendung der API wird für den Bucket-Besitzer-Parameter von Amazon S3 standardmäßig die Konto-ID des aktuellen Benutzers verwendet. Stellen Sie bei kontoübergreifenden Importen sicher, dass dieser Parameter korrekt mit der Konto-ID des Bucket-Besitzers ausgefüllt ist. Der folgende Code ist ein Beispiel für eine S3-Bucket-Richtlinie im Quellkonto.
AWS Key Management Service
Wenn Sie beim Erstellen der neuen Tabelle für den Import einen Schlüssel zur Verschlüsselung im Ruhezustand auswählen, der nicht im Besitz von DynamoDB ist, müssen Sie die AWS KMS-Berechtigungen, angeben, die für den Betrieb einer DynamoDB-Tabelle erforderlich sind, die mit kundenverwalteten Schlüsseln verschlüsselt ist. Weitere Informationen finden Sie unter Autorisieren der Nutzung Ihres AWS KMS-Schlüssels. Wenn die Amazon-S3-Objekte mit serverseitigen Verschlüsselungs-KMS (SSE-KMS) verschlüsselt sind, stellen Sie sicher, dass die Rolle oder der Benutzer, die/der den Import initiiert, Zugriff zum Entschlüsseln mithilfe des AWS KMS-Schlüssels hat. Diese Funktion unterstützt keine Amazon-S3-Objekte, die mit vom Kunden bereitgestellten Verschlüsselungsschlüsseln (SSE-C) verschlüsselt sind.
CloudWatch-Berechtigungen
Die Rolle oder der Benutzer, die/der den Import initiiert, benötigt Erstellungs- und Verwaltungsberechtigungen für die Protokollgruppe und die Protokollstreams, die mit dem Import verknüpft sind.
Anfordern eines Imports mit der AWS Management Console
Das folgende Beispiel zeigt, wie Sie mit der DynamoDB-Konsole vorhandene Daten in eine neue Tabelle mit der Bezeichnung MusicCollection importieren.
So fordern Sie einen Tabellenimport an:
Melden Sie sich bei der AWS Management Console an und öffnen Sie die DynamoDB-Konsole unter https://console.aws.amazon.com/dynamodb/
. -
Klicken Sie im Navigationsbereich links in der Konsole auf Import from S3 (Import aus S3).
-
Wählen Sie auf der angezeigten Seite Import from S3 (Import aus S3).
-
Wählen Sie Import aus S3 aus.
-
Geben Sie im Quell-S3-URL die Quell-URL aus Amazon S3 ein.
Wenn Sie Eigentümer des Quell-Buckets sind, wählen Sie Browse S3 aus, um danach zu suchen. Geben Sie alternativ die URL des Buckets im folgenden Format ein –
s3://bucket/prefix. Dasprefixist ein Amazon-S3-Schlüsselpräfix. Es ist entweder der Amazon-S3-Objektname, den Sie importieren möchten, oder das gemeinsame Schlüsselpräfix aller Amazon-S3-Objekte, die Sie importieren möchten.Anmerkung
Sie können nicht dasselbe Präfix wie Ihre DynamoDB-Exportanforderung verwenden. Die Exportfunktion erstellt eine Ordnerstruktur und Manifestdateien für alle Exporte. Wenn Sie denselben Amazon-S3-Pfad verwenden, führt dies zu einem Fehler.
Richten Sie den Import stattdessen auf den Ordner, der bereits Daten aus diesem Export enthält. Das Format des richtigen Pfads lautet in diesem Fall
s3://bucket/prefix/AWSDynamoDB/<XXXXXXXX-XXXXXX>/Data/, wobeiXXXXXXXX-XXXXXXdie Export-ID ist. Sie finden die Export-ID im Export-ARN, das das folgende Format hat –arn:aws:dynamodb:<Region>:<AccountID>:table/<TableName>/export/<XXXXXXXX-XXXXXX>. Beispiel,arn:aws:dynamodb:.us-east-1:123456789012:table/ProductCatalog/export/01234567890123-a1b2c3d4 -
Geben Sie an, ob Sie der S3-Bucket-Besitzer sind. Wenn der Quell-Bucket einem anderen Konto gehört, wählen Sie Ein anderes AWS-Konto aus. Geben Sie dann die Konto-ID-des Bucket-Besitzers ein.
Wählen Sie unter Import file compression (Importdatei-Komprimierung) entweder No compression (Keine Komprimierung), GZIP oder ZSTD.
Wählen Sie das entsprechende Importdateiformat aus. Die Optionen sind DynamoDB JSON, Amazon Ion oder CSV. Wenn Sie die Option CSV wählen, haben Sie zwei zusätzliche Optionen: CSV header (CSV-Kopfzeile) und CSV delimiter character (CSV-Trennzeichen).
Wählen Sie für CSV header (CSV-Kopfzeile), ob die Kopfzeile entweder aus der ersten Zeile der Datei stammt oder angepasst werden soll. Wenn Sie die Option Customize your headers (Kopfzeilen anpassen) wählen, können Sie die Kopfzeilenwerte angeben, mit denen Sie importieren möchten. Durch diese Methode angegebene CSV-Kopfzeilen unterscheiden zwischen Groß- und Kleinschreibung und es wird erwartet, dass sie die Schlüssel der Zieltabelle enthalten.
Bei CSV delimiter character (CSV-Trennzeichen) legen Sie das Zeichen fest, das die Elemente trennen soll. „Komma“ ist standardmäßig aktiviert. Wenn Sie Custom delimiter character (Benutzerdefiniertes Trennzeichen) auswählen, muss das Trennzeichen mit dem Regex-Muster übereinstimmen:
[,;:|\t ].Wählen Sie die Schaltfläche Next (Weiter) und dann die Optionen für die neue Tabelle, die zum Speichern Ihrer Daten erstellt wird.
Anmerkung
Primärschlüssel und Sortierschlüssel müssen mit den Attributen in der Datei übereinstimmen, sonst schlägt der Import fehl. Bei Attributen wird zwischen Groß- und Kleinschreibung unterschieden.
Wählen Sie erneut Next (Weiter), um Ihre Importoptionen zu überprüfen, und klicken Sie dann auf Import (Importieren), um die Importaufgabe zu starten. Sie sehen zunächst Ihre neue Tabelle unter „Tables (Tabellen)“ mit dem Status „Creating (Erstellen)“. Zu diesem Zeitpunkt ist die Tabelle nicht zugänglich.
Sobald der Import abgeschlossen ist, wird der Status als „Active (Aktiv)“ angezeigt und Sie können die Tabelle verwenden.
Abrufen von Details zu früheren Importen in der AWS Management Console
Informationen zu Importaufgaben, die Sie in der Vergangenheit ausgeführt haben, finden Sie, indem Sie auf Import from S3 (Import aus S3) in der Navigationsseitenleiste klicken und dann die Registerkarte Exports (Exporte) wählen. Das Importfenster enthält eine Liste aller Importe, die Sie in den letzten 90 Tagen erstellt haben. Wenn Sie den ARN einer Aufgabe auswählen, die auf der Registerkarte „Exports (Exporte)“ aufgeführt ist, werden Informationen über diesen Export abgerufen, einschließlich aller von Ihnen gewählten erweiterten Konfigurationseinstellungen.
Anfordern eines Imports mit der AWS CLI
Im folgenden Beispiel werden CSV-formatierte Daten aus einem S3-Bucket mit der Bezeichnung „Bucket“ mit einem Präfix in eine neue Tabelle mit der Bezeichnung „target-Table“ importiert.
aws dynamodb import-table --s3-bucket-source S3Bucket=bucket,S3KeyPrefix=prefix \ --input-format CSV --table-creation-parameters '{"TableName":"target-table","KeySchema": \ [{"AttributeName":"hk","KeyType":"HASH"}],"AttributeDefinitions":[{"AttributeName":"hk","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST"}' \ --input-format-options '{"Csv": {"HeaderList": ["hk", "title", "artist", "year_of_release"], "Delimiter": ";"}}'
Anmerkung
Wenn Sie Ihren Import mit einem durch AWS Key Management Service (AWS KMS) geschützten Schlüssel verschlüsseln möchten, muss sich der Schlüssel in derselben Region wie der Ziel-Bucket in Amazon S3 befinden.
Abrufen von Details zu früheren Importen in der AWS CLI
Informationen zu Importaufgaben, die Sie in der Vergangenheit ausgeführt haben, finden Sie mithilfe des list-imports-Befehls. Dieser Befehl gibt eine Liste aller Importe zurück, die Sie in den letzten 90 Tagen erstellt haben. Beachten Sie, dass die Metadaten für die Importaufgabe nach 90 Tagen ablaufen und Aufträge, die älter sind als diese, in dieser Liste nicht mehr gefunden werden können; DynamoDB löscht keine Objekte in Ihrem Amazon S3-Bucket oder in der Tabelle, die beim Importieren erstellt wurden.
aws dynamodb list-imports
Um detaillierte Informationen zu einer bestimmten Importaufgabe, einschließlich erweiterter Konfigurationseinstellungen, abzurufen, verwenden Sie den describe-import-Befehl.
aws dynamodb describe-import \ --import-arn arn:aws:dynamodb:us-east-1:123456789012:table/ProductCatalog/exp