7
votes

Copier uniquement de nouveaux enregistrements de AWS Dynamodb à AWS Redshift

Je vois qu'il y a des tonnes d'exemples et de la documentation pour copier des données de DynamoDB à Redshift, mais nous examinons un processus de copie incrémentielle où seules les nouvelles lignes sont copiées de Dynamodb à Redshift. Nous allons exécuter ce processus de copie tous les jours, il n'est donc pas nécessaire de tuer toute la table de Redshift chaque jour. Quelqu'un a-t-il une expérience ou une pensée sur ce sujet?


0 commentaires

4 Réponses :


0
votes

Ceci peut être résolu avec une table de dynamodb secondaire qui ne suit que les clés qui ont été modifiées depuis la dernière sauvegarde. Ce tableau doit être mis à jour partout où la table initiale de DynamoDB est mise à jour (Ajouter, mettre à jour, Supprimer). À la fin d'un processus de sauvegarde, vous les supprimerez ou après votre sauvegarde d'une ligne (une à une).


1 commentaires

Même si j'utilise une table secondaire, il n'ya aucun moyen d'obtenir ces lignes de la commande de copie de Redshift. Quel processus de sauvegarde parlez-vous ici? Redshift ou un processus personnalisé?



1
votes

La copie de RedShift ne peut que copier la table entière. Il y a plusieurs façons d'atteindre ce

  1. Utilisation d'un cluster AWS EMR et de HIVE - Si vous configurez un cluster EMR, vous pouvez utiliser des tables de ruches pour exécuter des requêtes sur les données DYNAMODB et passer à S3. Ensuite, ces données peuvent être facilement déplacées vers Redshift.

  2. Vous pouvez stocker vos données dynamoodb en fonction des modèles d'accès (voir http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/guidelinesfortables.html#guidelinesfortables.TimeseriesDataAccessPatterns ). Si nous stockons les données de cette façon, les tables dynamoodb peuvent être supprimées après leur copie sur Redshift


0 commentaires


0
votes

Si votre table DynamoDb peut avoir

Timestamps en tant qu'attribut ou

un drapeau binaire qui transmet la fraîcheur de données en tant qu'attribut

Ensuite, vous pouvez écrire une requête de ruche pour exporter uniquement les données de la journée ou les données fraîches sur S3, puis "Garder_existing" Copier ces données S3 incrémentielles à Redshift.


0 commentaires