DynamoDB Zero-ETL-Integration mit Amazon Redshift - Amazon-DynamoDB

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.

DynamoDB Zero-ETL-Integration mit Amazon Redshift

Die Amazon DynamoDB Zero-ETL-Integration mit Amazon Redshift ermöglicht eine nahtlose Analyse von DynamoDB-Daten ohne jegliche Codierung. Diese vollständig verwaltete Funktion repliziert DynamoDB-Tabellen automatisch in eine Amazon Redshift Redshift-Datenbank, sodass Benutzer SQL-Abfragen und Analysen für ihre DynamoDB-Daten ausführen können, ohne komplexe ETL-Prozesse einrichten zu müssen. Die Integration funktioniert, indem Daten aus der DynamoDB-Tabelle in die Amazon Redshift Redshift-Datenbank repliziert werden.

Um die Integration einzurichten, geben Sie einfach eine DynamoDB-Tabelle als Quelle und eine Amazon Redshift Redshift-Datenbank als Ziel an. Bei der Aktivierung exportiert die Integration die vollständige DynamoDB-Tabelle, um die Amazon Redshift Redshift-Datenbank zu füllen. Wie lange es dauert, bis dieser erste Vorgang abgeschlossen ist, hängt von der Größe der DynamoDB-Tabelle ab. Die Zero-ETL-Integration repliziert dann mithilfe inkrementeller DynamoDB-Exporte inkrementell alle 15 bis 30 Minuten Updates von DynamoDB auf Amazon Redshift. Das bedeutet, dass die replizierten DynamoDB-Daten in Amazon Redshift automatisch aufbewahrt werden. up-to-date

Nach der Konfiguration können Benutzer die DynamoDB-Daten in Amazon Redshift mithilfe von Standard-SQL-Clients und Tools analysieren, ohne die Leistung der DynamoDB-Tabellen zu beeinträchtigen. Durch den Wegfall von umständigem ETL bietet diese Zero-ETL-Integration eine schnelle und einfache Möglichkeit, mithilfe von Amazon Redshift Redshift-Analysen und Funktionen für maschinelles Lernen Erkenntnisse aus DynamoDB zu gewinnen.

Voraussetzungen vor der Erstellung einer DynamoDB-Zero-ETL-Integration mit Amazon Redshift

  1. Sie müssen Ihre DynamoDB-Quelltabelle und Ihr Amazon Redshift Redshift-Zielcluster erstellt haben, bevor Sie eine Integration erstellen können. Diese Informationen werden in und behandelt. Schritt 1: Konfiguration einer DynamoDB-Quelltabelle Schritt 2: Erstellen eines Amazon Redshift Data Warehouse

  2. Für eine Zero-ETL-Integration zwischen Amazon DynamoDB und Amazon Redshift muss in Ihrer DynamoDB-Quelltabelle Recovery (PITR) aktiviert sein. Point-in-time

  3. Wenn Sie bei ressourcenbasierten Richtlinien die Integration erstellen, bei der sich Ihre DynamoDB-Tabelle und Ihr Amazon Redshift Data Warehouse in demselben Konto befinden, können Sie im Integrationsschritt „Integration erstellen“ die Option Fix it for me verwenden, um die erforderlichen Ressourcenrichtlinien automatisch sowohl auf DynamoDB als auch auf Amazon Redshift anzuwenden.

    Wenn Sie eine Integration erstellen, bei der sich Ihre DynamoDB-Tabelle und Ihr Amazon Redshift Data Warehouse in unterschiedlichen AWS Konten befinden, müssen Sie die folgende Ressourcenrichtlinie auf Ihre DynamoDB-Tabelle anwenden.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement that allows Amazon Redshift service to DescribeTable and ExportTable", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "dynamodb:ExportTableToPointInTime", "dynamodb:DescribeTable" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnEquals": { "aws:SourceArn": "arn:aws:redshift:<region>:<account>:integration:*" } } }, { "Sid": "Statement that allows Amazon Redshift service to see all exports performed on the table", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "dynamodb:DescribeExport", "Resource": "arn:aws:dynamodb:<region>:<account>:table/<table-name>/export/*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnEquals": { "aws:SourceArn": "arn:aws:redshift:<region>:<account>:integration:*" } } } ] }

    Möglicherweise müssen Sie auch die Ressourcenrichtlinie in Ihrem Amazon Redshift Data Warehouse konfigurieren. Weitere Informationen finden Sie unter Autorisierung mithilfe der Amazon Redshift Redshift-API konfigurieren.

  4. Für identitätsbasierte Richtlinien:
    1. Der Benutzer, der die Integration erstellt, benötigt eine identitätsbasierte Richtlinie, die die folgenden Aktionen autorisiert:, und. GetResourcePolicy PutResourcePolicy UpdateContinuousBackups

      Anmerkung

      In den folgenden Richtlinienbeispielen wird die Ressource als angezeigt. arn:aws:redshift{-serverless} Dies ist ein Beispiel, das zeigt, dass der ARN entweder arn:aws:redshift oder arn:aws:redshift-serverless abhängig davon sein kann, ob Ihr Namespace ein Amazon Redshift-Cluster oder ein Amazon Redshift Serverless-Namespace ist.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:ListTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups" ], "Resource": [ "arn:aws:dynamodb:<region>:<account>:table/<table-name>" ] }, { "Sid": "AllowRedshiftDescribeIntegration", "Effect": "Allow", "Action": [ "redshift:DescribeIntegrations" ], "Resource": "*" }, { "Sid": "AllowRedshiftCreateIntegration", "Effect": "Allow", "Action": "redshift:CreateIntegration", "Resource": "arn:aws:redshift:<region>:<account>:integration:*" }, { "Sid": "AllowRedshiftModifyDeleteIntegration", "Effect": "Allow", "Action": [ "redshift:ModifyIntegration", "redshift:DeleteIntegration" ], "Resource": "arn:aws:redshift:<region>:<account>:integration:<uuid>" }, { "Sid": "AllowRedshiftCreateInboundIntegration", "Effect": "Allow", "Action": "redshift:CreateInboundIntegration", "Resource": // The Amazon Resource Name (arn) for a Redshift provisioned cluster and a Redshift Serverless namespace have different formats. // Choose the one that applies to you: "arn:aws:redshift:<region>:<account>:namespace:<uuid>" "arn:aws:redshift-serverless:<region>:<account>:namespace/<uuid>" } ] }
    2. Der Benutzer, der für die Konfiguration des Amazon Redshift Redshift-Ziel-Namespace verantwortlich ist, benötigt eine identitätsbasierte Richtlinie, die die folgenden Aktionen autorisiert:, und. PutResourcePolicy DeleteResourcePolicy GetResourcePolicy

      JSON
      { "Statement": [ # This statement authorizes the user to change, view or remove resource policies on a specific namespace { "Effect": "Allow", "Action": [ "redshift:PutResourcePolicy", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy" ], "Resource": [ "arn:aws:redshift{-serverless}:<region>:<account>:namespace/ExampleNamespace" ] }, # This statement authorizes the user to view integrations connected to any target namespaces in the account { "Effect": "Allow", "Action": [ "redshift:DescribeInboundIntegrations" ], "Resource": [ "arn:aws:redshift{-serverless}:<region>:<account>:namespace/*" ] } ], "Version": "2012-10-17" }
  5. Berechtigungen für den Verschlüsselungsschlüssel

    Wenn die DynamoDB-Quelltabelle mit einem vom Kunden verwalteten AWS KMS Schlüssel verschlüsselt ist, müssen Sie Ihrem KMS-Schlüssel die folgende Richtlinie hinzufügen. Diese Richtlinie ermöglicht es Amazon Redshift, Daten aus Ihrer verschlüsselten Tabelle mit Ihrem KMS-Schlüssel zu exportieren.

    { "Sid": "Statement to allow Amazon Redshift service to perform Decrypt operation on the source DynamoDB Table", "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com" ] }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnEquals": { "aws:SourceArn": "arn:aws:redshift:<region>:<account>:integration:*" } } }

Sie können auch den Schritten unter Erste Schritte mit Zero-ETL-Integrationen im Amazon Redshift Redshift-Managementleitfaden folgen, um die Berechtigungen für den Amazon Redshift Redshift-Namespace zu konfigurieren.

Einschränkungen bei der Verwendung von DynamoDB Zero-ETL-Integrationen mit Amazon Redshift

Die folgenden allgemeinen Einschränkungen gelten für die aktuelle Version dieser Integration. Diese Einschränkungen können sich in nachfolgenden Versionen ändern.

Anmerkung

Lesen Sie zusätzlich zu den unten aufgeführten Einschränkungen auch die allgemeinen Überlegungen zur Verwendung von Zero-ETL-Integrationen. Weitere Informationen finden Sie unter Überlegungen zur Verwendung von Zero-ETL-Integrationen mit Amazon Redshift im Amazon Redshift Management Guide.

  • Die DynamoDB-Tabelle und der Amazon Redshift Redshift-Cluster müssen sich in derselben Region befinden.

  • Die DynamoDB-Quelltabelle muss entweder mit einem Amazon-eigenen oder einem vom Kunden verwalteten Schlüssel verschlüsselt werden. AWS KMS Die von Amazon verwaltete Verschlüsselung wird für die DynamoDB-Quelltabelle nicht unterstützt.