0

J'essaie de configurer le processus d'importation ElasticSearch à partir de la table DynamoDB. J'ai déjà créé AWS Lambda et activé le flux DynamoDB avec un trigger qui appelle mon lambda pour chaque enregistrement ajouté/mis à jour. Maintenant, je veux effectuer l'opération de démarrage initiale (importer tous les enregistrements qui sont actuellement dans ma table DynamoDB à ElasticSearch). Comment je fais ça? Est-il possible de faire en sorte que tous les enregistrements d'une table soient "retraités" et ajoutés au flux (afin qu'ils puissent être traités par mon lambda)? Ou est-il préférable d'écrire une fonction séparée qui lira manuellement toutes les données de la table et les enverra à ElasticSearch - donc en gros 2 lambdas: un pour la migration initiale des données (exécuté une seule fois et déclenché manuellement par moi), et un autre synchroniser les nouveaux enregistrements (déclenchés par les événements de flux DynamoDB)?Appel de déclencheur de flux DynamoDB pour tous les enregistrements

Merci pour toute l'aide :)

Répondre

1

Selon la taille de votre ensemble de données est que vous ne serez pas en mesure de semer votre base de données Lambda car il y a un délai d'attente maximum de 300 seconds.

Vous pouvez générer une instance EC2 et utiliser le SDK pour effectuer un DynamoDB scan operation et écrire en mode batch dans votre instance Elasticsearch.

Vous pouvez également utiliser Amazon EMR pour effectuer un travail de réduction de carte sur export to S3 et, à partir de là, traiter toutes vos données.