COPY aus Amazon DynamoDB - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

COPY aus Amazon DynamoDB

Um Daten aus einer vorhandenen DynamoDB-Tabelle zu laden, verwenden Sie die FROM-Klausel, um den Namen der DynamoDB-Tabelle anzugeben.

Wichtig

Wenn sich die DynamoDB-Tabelle nicht in derselben Region wie Ihr Amazon-Redshift-Cluster befindet, müssen Sie den Parameter REGION verwenden, um die Region anzugeben, in der sich die Daten befinden.

Syntax

FROM 'dynamodb://table-name' authorization READRATIO ratio | REGION [AS] 'aws_region' | optional-parameters

Beispiele

Im folgenden Beispiel werden Daten aus einer DynamoDB-Tabelle geladen.

copy favoritemovies from 'dynamodb://ProductCatalog' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' readratio 50;

Parameter

FROM

Die Quelle der Daten, die geladen werden sollen.

'dynamodb://table-name'

Der Name der DynamoDB-Tabelle, die die Daten enthält, beispielsweise 'dynamodb://ProductCatalog'. Details dazu, wie DynamoDB-Attribute den Amazon-Redshift-Spalten zugewiesen werden, finden Sie unter Laden von Daten aus einer Amazon-DynamoDB-Tabelle.

Ein DynamoDB-Tabellenname ist für ein AWS-Konto eindeutig, das durch die AWS-Zugriffsanmeldeinformationen identifiziert wird.

Autorisierung

Der COPY-Befehl benötigt eine Autorisierung für den Zugriff auf Daten in anderen AWS-Ressourcen, einschließlich Amazon S3, Amazon EMR, DynamoDB und Amazon EC2. Sie können diese Autorisierung bereitstellen, indem Sie eine AWS Identity and Access Management (IAM)-Rolle referenzieren, die Ihrem Cluster angefügt ist (rollenbasierte Zugriffssteuerung), oder indem Sie die Zugriffsanmeldeinformationen für einen Benutzer bereitstellen (schlüsselbasierte Zugriffssteuerung). Um Sicherheit und Flexibilität zu verbessern, wird die Verwendung der IAM-rollenbasierten Zugriffssteuerung empfohlen. Weitere Informationen finden Sie unter Autorisierungsparameter.

READRATIO [AS] ratio

Der Prozentsatz des für die DynamoDB-Tabelle bereitgestellten Durchsatzes, der für das Laden der Daten verwendet werden soll. READRATIO ist für COPY aus DynamoDB erforderlich. Der Parameter kann nicht für COPY aus Amazon S3 verwendet werden. Es wird nachdrücklich empfohlen, das Verhältnis auf einen Wert festzulegen, der kleiner als der durchschnittliche Wert für nicht genutzten bereitgestellten Durchsatz ist. Gültige Werte sind Ganzzahlen von 1 bis 200.

Wichtig

Wenn Sie READRATIO auf 100 oder höher festlegen, kann Amazon Redshift den gesamten Durchsatz nutzen, der für die DynamoDB-Tabelle bereitgestellt wurde. Dies führt zu einer erheblich schlechteren Leistung für Leseoperationen, die für dieselbe Tabelle gleichzeitig mit der COPY-Sitzung ausgeführt werden. Der Schreibdatenverkehr ist nicht betroffen. Werte über 100 sind zulässig, um Fehler im Zusammenhang mit seltenen Szenarien zu beheben, wenn Amazon Redshift den für die Tabelle bereitgestellten Durchsatz nicht erreicht. Wenn Sie kontinuierlich Daten aus DynamoDB in Amazon Redshift laden, sollten Sie Ihre DynamoDB-Tabellen als Zeitreihe organisieren, um den Live-Datenverkehr von der COPY-Operation zu trennen.

Optionale Parameter

Sie können für COPY aus Amazon DynamoDB optional die folgenden Parameter angeben:

Nicht unterstützte Parameter

Die folgenden Parameter können Sie für COPY aus DynamoDB nicht verwenden:

  • Alle Datenformatparameter

  • ESCAPE

  • FILLRECORD

  • IGNOREBLANKLINES

  • IGNOREHEADER

  • NULL

  • REMOVEQUOTES

  • ACCEPTINVCHARS

  • MANIFEST

  • ENCRYPTED