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? P>
4 Réponses :
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). P>
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é?
La copie de RedShift ne peut que copier la table entière. Il y a plusieurs façons d'atteindre ce p>
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. P> Li>
Vous pouvez stocker vos données dynamoodb en fonction des modèles d'accès (voir
dynamo db a une fonctionnalité (actuellement en aperçu) appelée Streams A>: p>
Les flux d'Amazon DynamoDB conservent une séquence d'article ordonnée de temps
changements de niveau dans n'importe quelle table dynamodb dans un journal pendant une durée de 24
les heures. En utilisant les API des flux, les développeurs peuvent interroger les mises à jour,
recevoir les données de niveau d'article avant et après les modifications et utilisez-la
construire des extensions créatives à leurs applications construites sur
Dynamodb. P>
blockQuote>
Cette fonctionnalité vous permettra de traiter de nouvelles mises à jour lorsqu'elles entrent et font ce que vous voulez avec eux, plutôt que de concevoir un système d'exportation au-dessus de DynamoDB. P>
Vous pouvez voir plus d'informations sur la manière dont le traitement fonctionne dans lecture et traitement des flux dynamodb documentation. P>
Si votre table DynamoDb peut avoir P>
Timestamps en tant qu'attribut ou p>
un drapeau binaire qui transmet la fraîcheur de données en tant qu'attribut p> blockQuote>
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. P>