Intégration DynamoDB Zero-ETL à Amazon Redshift - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Intégration DynamoDB Zero-ETL à Amazon Redshift

L'intégration d'Amazon DynamoDB Zero-ETL à Amazon Redshift permet une analyse fluide des données DynamoDB sans aucun codage. Cette fonctionnalité entièrement gérée réplique automatiquement les tables DynamoDB dans une base de données Amazon Redshift afin que les utilisateurs puissent exécuter des requêtes SQL et des analyses sur leurs données DynamoDB sans avoir à configurer de processus ETL complexes. L'intégration fonctionne en répliquant les données de la table DynamoDB vers la base de données Amazon Redshift.

Pour configurer l'intégration, il suffit de spécifier une table DynamoDB comme source et une base de données Amazon Redshift comme cible. Lors de l'activation, l'intégration exporte la table DynamoDB complète pour alimenter la base de données Amazon Redshift. Le temps nécessaire à l'exécution de ce processus initial dépend de la taille de la table DynamoDB. L'intégration Zero-ETL réplique ensuite de manière incrémentielle les mises à jour de DynamoDB vers Amazon Redshift toutes les 15 à 30 minutes à l'aide des exportations incrémentielles DynamoDB. Cela signifie que les données DynamoDB répliquées dans Amazon Redshift sont conservées automatiquement. up-to-date

Une fois la configuration terminée, les utilisateurs peuvent analyser les données DynamoDB dans Amazon Redshift à l'aide de clients et d'outils SQL standard, sans affecter les performances des tables DynamoDB. En éliminant la complexité de l'ETL, cette intégration zéro ETL permet de débloquer rapidement et facilement des informations issues de DynamoDB grâce aux fonctionnalités d'analyse et d'apprentissage automatique d'Amazon Redshift.

Conditions préalables à la création d'une intégration DynamoDB Zero-ETL avec Amazon Redshift

  1. Vous devez avoir créé votre table DynamoDB source et votre cluster Amazon Redshift cible avant de créer une intégration. Ces informations sont traitées dans Étape 1 : Configuration d'une table DynamoDB source etÉtape 2 : Création d'un entrepôt de données Amazon Redshift.

  2. Une intégration zéro ETL entre Amazon DynamoDB et Amazon Redshift nécessite que la restauration (PITR) soit activée dans votre table DynamoDB Point-in-time source.

  3. Pour les politiques basées sur les ressources, si vous créez l'intégration où votre table DynamoDB et l'entrepôt de données Amazon Redshift se trouvent dans le même compte, vous pouvez utiliser l'option Fix it for me lors de l'étape de création de l'intégration pour appliquer automatiquement les politiques de ressources requises à DynamoDB et à Amazon Redshift.

    Si vous créez une intégration dans laquelle votre table DynamoDB et l'entrepôt de données Amazon Redshift se trouvent dans des comptes AWS différents, vous devez appliquer la politique de ressources suivante à votre table DynamoDB.

    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:*" } } } ] }

    Vous devrez peut-être également configurer la politique de ressources de votre entrepôt de données Amazon Redshift. Pour plus d'informations, consultez Configurer l'autorisation à l'aide de l'API Amazon Redshift.

  4. Pour les politiques basées sur l'identité :
    1. L'utilisateur qui crée l'intégration a besoin d'une politique basée sur l'identité qui autorise les actions suivantes :GetResourcePolicy, etPutResourcePolicy. UpdateContinuousBackups

      Note

      Les exemples de politique suivants montreront la ressource sous la formearn:aws:redshift{-serverless}. Cet exemple montre que l'arn peut être l'un ou l'autre arn:aws:redshift ou arn:aws:redshift-serverless dépendre du fait que votre espace de noms est un cluster Amazon Redshift ou un espace de noms Amazon Redshift Serverless.

      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. L'utilisateur chargé de configurer l'espace de noms Amazon Redshift de destination a besoin d'une politique basée sur l'identité qui autorise les actions suivantes :, et. 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. Autorisations relatives aux clés de chiffrement

    Si la table DynamoDB source est chiffrée à l'aide d'une clé AWS KMS gérée par le client, vous devez ajouter la politique suivante à votre clé KMS. Cette politique permet à Amazon Redshift d'exporter les données de votre table chiffrée à l'aide de votre clé KMS.

    { "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:*" } } }

Vous pouvez également suivre les étapes décrites dans Getting Started with Zero-ETL intégrations dans le guide de gestion Amazon Redshift pour configurer les autorisations de l'espace de noms Amazon Redshift.

Limitations liées à l'utilisation des intégrations DynamoDB Zero-ETL avec Amazon Redshift

Les limitations générales suivantes s'appliquent à la version actuelle de cette intégration. Ces limitations peuvent changer dans les versions ultérieures.

Note

Outre les limitations ci-dessous, consultez également les considérations générales relatives à l'utilisation d'intégrations zéro ETL. Consultez la section Considérations relatives à l'utilisation d'intégrations zéro ETL avec Amazon Redshift dans le guide de gestion Amazon Redshift.

  • La table DynamoDB et le cluster Amazon Redshift doivent se trouver dans la même région.

  • La table DynamoDB source doit être chiffrée avec une clé appartenant à Amazon ou gérée par le client. AWS KMS Le chiffrement géré par Amazon n'est pas pris en charge pour la table DynamoDB source.