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:
-
Folgende Datenkonvertierungsparameter werden unterstützt:
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