1

Je suis nouveau à AWS et s'il vous plaît pardonnez-moi si cette question est posée précédemment.Comment charger des données dans Redshift à partir d'une API REST personnalisée

J'ai une API REST qui retourne 2 paramètres (nom, email). Je veux charger ces données dans Redshift. J'ai pensé à faire une fonction Lambda qui commence toutes les 2 minutes et appelle l'API REST. L'API peut renvoyer un maximum de 3 à 4 enregistrements dans ces 2 minutes. Donc, dans cette situation, est-ce que je peux simplement faire une opération d'insertion ou je dois encore utiliser COPY (en utilisant S3)? Je ne m'inquiète que de la performance et de l'insertion de données sans erreur (robustes).

En outre, la fonction Lambda démarrera de manière asynchrone toutes les 2 minutes, de sorte qu'il peut y avoir un chevauchement de l'opération d'insertion (mais il n'y aura pas de chevauchement des données). Dans cette situation et si je vais avec l'option S3, je crains que le fichier S3 généré par l'invocation Lambda précédente ne soit écrasé et qu'un conflit se produise. En bref, quelle est la meilleure pratique pour insérer moins d'enregistrements dans redshift? PS: Je peux également utiliser d'autres composants AWS. J'ai même regardé dans Firehose qui est parfait pour moi mais il ne peut pas charger des données dans Redshift Private Subnet.

Merci d'avance

+0

On dirait que vous n'avez pas beaucoup de données .. alors pourquoi avez-vous besoin de Redshift qui est cher et une solution idéale lorsque vous avez des données énormes – Deepak

+0

Il existe d'autres tables qui sont énormes et nous utilisons AWS DMS pour ceux – Selva

Répondre

2

Oui, ce serait bien à INSERT petites quantités de données. La recommandation pour toujours charger via une commande COPY est pour de grandes quantités de données car les charges COPY sont parallélisées sur plusieurs nœuds. Cependant, pour quelques lignes, vous pouvez utiliser INSERT sans se sentir coupable.

Si votre SORTKEY est un horodatage et que vous chargez des données dans l'ordre chronologique, il est également moins nécessaire d'effectuer un VACUUM car les données sont déjà triées. Toutefois, il est bon de toujours continuer à utiliser la table régulièrement si des lignes sont supprimées.

0

Comme vous n'avez pas beaucoup de données; vous pouvez utiliser soit copier ou insérer. commande de copie est optimisé pour l'insertion en vrac .. sa capacité comme donner u d'insertion de lot ..

les deux fonctionneront tout aussi bien