Laden von Daten aus einer Amazon-DynamoDB-Tabelle - Amazon Redshift

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.

Laden von Daten aus einer Amazon-DynamoDB-Tabelle

Sie können den COPY Befehl verwenden, um eine Tabelle mit Daten aus einer einzelnen Amazon DynamoDB-Tabelle zu laden.

Wichtig

Die Amazon DynamoDB-Tabelle, die die Daten bereitstellt, muss in derselben AWS Region wie Ihr Cluster erstellt werden, es sei denn, Sie verwenden die REGION Option, um die AWS Region anzugeben, in der sich die Amazon DynamoDB-Tabelle befindet.

Der COPY Befehl verwendet die Massively Parallel Processing (MPP) -Architektur von Amazon Redshift, um Daten parallel aus einer Amazon DynamoDB-Tabelle zu lesen und zu laden. Sie können die Parallelverarbeitung maximal nutzen, indem Sie für Ihre Amazon-Redshift-Tabellen Verteilungsstile festlegen. Weitere Informationen finden Sie unter Datenverteilung zur Abfrageoptimierung.

Wichtig

Wenn der COPY Befehl Daten aus der Amazon DynamoDB-Tabelle liest, ist die resultierende Datenübertragung Teil des bereitgestellten Durchsatzes dieser Tabelle.

Um die übermäßige Nutzung des bereitgestellten Lesedurchsatzes zu vermeiden, wird empfohlen, keine Daten aus Amazon-DynamoDB-Tabellen zu laden, die sich in Produktionsumgebungen befinden. Wenn Sie Daten aus Produktionstabellen laden, empfehlen wir Ihnen, die READRATIO Option deutlich unter dem durchschnittlichen Prozentsatz des ungenutzten bereitgestellten Durchsatzes festzulegen. Eine niedrige READRATIO Einstellung trägt dazu bei, Probleme mit der Drosselung zu minimieren. Um den gesamten bereitgestellten Durchsatz einer Amazon DynamoDB-Tabelle zu verwenden, legen Sie diesen Wert auf 100 festREADRATIO.

Der COPY Befehl ordnet Attributnamen in den aus der DynamoDB-Tabelle abgerufenen Elementen den Spaltennamen in einer vorhandenen Amazon Redshift Redshift-Tabelle zu. Dabei werden die folgenden Regeln verwendet:

  • Amazon-Redshift-Tabellenspalten werden ohne Berücksichtigung von Groß- und Kleinschreibung mit Amazon-DynamoDB-Elementattributen abgeglichen. Wenn ein Element in der DynamoDB-Tabelle mehrere Attribute enthält, die sich nur in der Groß- und Kleinschreibung unterscheiden, z. B. Preis undPRICE, schlägt der COPY Befehl fehl.

  • Amazon Redshift Redshift-Tabellenspalten, die keinem Attribut in der Amazon DynamoDB-Tabelle entsprechen, werden entweder als NULL oder leer geladen, je nachdem, welcher Wert mit der EMPTYASNULL Option im Befehl angegeben wurde. COPY

  • Amazon-DynamoDB-Attribute, die mit keiner Spalte in der Amazon-Redshift-Tabelle übereinstimmen, werden verworfen. Attribute werden gelesen, bevor sie abgeglichen werden. Daher verbrauchen auch verworfene Attribute einen Teil des bereitgestellten Durchsatzes dieser Tabelle.

  • Nur Amazon DynamoDB-Attribute mit Skalar STRING - und NUMBER Datentypen werden unterstützt. Die Amazon DynamoDB BINARY - und SET Datentypen werden nicht unterstützt. Wenn ein COPY Befehl versucht, ein Attribut mit einem nicht unterstützten Datentyp zu laden, schlägt der Befehl fehl. Wenn das Attribut nicht mit einer Amazon Redshift Redshift-Tabellenspalte COPY übereinstimmt, versucht es nicht zu laden, und es wird kein Fehler ausgelöst.

Der COPY Befehl verwendet die folgende Syntax, um Daten aus einer Amazon DynamoDB-Tabelle zu laden:

COPY <redshift_tablename> FROM 'dynamodb://<dynamodb_table_name>' authorization readratio '<integer>';

Die Werte für die Autorisierung sind die AWS Anmeldeinformationen, die für den Zugriff auf die Amazon DynamoDB-Tabelle benötigt werden. Wenn diese Anmeldeinformationen einem Benutzer entsprechen, muss dieser Benutzer über Berechtigungen für DESCRIBE die Amazon DynamoDB-Tabelle verfügen, die geladen wird. SCAN

Die Werte für die Autorisierung geben die AWS Autorisierung an, die Ihr Cluster für den Zugriff auf die Amazon DynamoDB-Tabelle benötigt. Die Berechtigung muss SCAN und DESCRIBE für die Amazon DynamoDB-Tabelle enthalten, die geladen wird. Weitere Informationen zu erforderlichen Berechtigungen finden Sie unter IAMBerechtigungen für COPYUNLOAD, und CREATE LIBRARY. Die bevorzugte Methode für die Authentifizierung besteht darin, den ROLE Parameter IAM _ anzugeben und den Amazon-Ressourcennamen (ARN) für eine IAM Rolle mit den erforderlichen Berechtigungen bereitzustellen. Weitere Informationen finden Sie unter Rollenbasierte Zugriffskontrolle.

Um sich mit dem ROLE Parameter IAM _ zu authentifizieren, <aws-account-id> and <role-name> wie in der folgenden Syntax gezeigt.

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

Das folgende Beispiel zeigt die Authentifizierung mithilfe einer IAM Rolle.

COPY favoritemovies FROM 'dynamodb://ProductCatalog' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Weitere Informationen zu anderen Autorisierungsoptionen finden Sie unter . Autorisierungsparameter

Wenn Sie Ihre Daten überprüfen möchten, ohne die Tabelle tatsächlich zu laden, verwenden Sie die NOLOAD Option mit dem COPY Befehl.

Im folgenden Beispiel wird die FAVORITEMOVIES Tabelle mit Daten aus der DynamoDB-Tabelle geladen. my-favorite-movies-table Die Leseaktivität kann bis zu 50 % des bereitgestellten Durchsatzes verbrauchen.

COPY favoritemovies FROM 'dynamodb://my-favorite-movies-table' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' READRATIO 50;

Um den Durchsatz zu maximieren, lädt der COPY Befehl Daten aus einer Amazon DynamoDB-Tabelle parallel über die Rechenknoten im Cluster.

Bereitgestellter Durchsatz mit automatischer Kompression

Standardmäßig wendet der COPY Befehl automatische Komprimierung an, wenn Sie eine leere Zieltabelle ohne Komprimierungskodierung angeben. Die automatische Komprimierungsanalyse untersucht zunächst stichprobenartig eine große Zahl von Zeilen aus der Amazon-DynamoDB-Tabelle. Die Stichprobengröße basiert auf dem Wert des COMPROWS Parameters. Der Standardwert ist 100.000 Zeilen pro Slice.

Nach der Untersuchung der Stichprobe werden die Stichprobenzeilen verworfen und die gesamte Tabelle wird geladen. Daher werden zahlreiche Zeilen zweimal gelesen. Weitere Informationen zur Funktionsweise der automatischen Kompression finden Sie unter Laden von Tabellen mit automatischer Kompression.

Wichtig

Wenn der COPY Befehl Daten aus der Amazon DynamoDB-Tabelle liest, einschließlich der Zeilen, die für das Sampling verwendet werden, ist die resultierende Datenübertragung Teil des bereitgestellten Durchsatzes dieser Tabelle.

Laden von Multibyte-Daten aus Amazon DynamoDB

Wenn Ihre Daten Zeichen enthalten, die keine ASCII Multibyte-Zeichen sind (z. B. chinesische oder kyrillische Zeichen), müssen Sie die Daten in Spalten laden. VARCHAR Der VARCHAR Datentyp unterstützt UTF Vier-Byte-Zeichen bis 8, der CHAR Datentyp akzeptiert jedoch nur Einzelbyte-Zeichen. ASCII Sie können keine Zeichen mit fünf Bytes oder mehr in Amazon-Redshift-Tabellen laden. Weitere Hinweise zu CHAR und VARCHAR finden Sie unter. Datentypen