0

Je veux écrire des données de streaming à partir du compartiment S3 dans Redshift via Firehose car les données sont diffusées en temps réel (600 fichiers par minute) et je ne veux aucune forme de perte de données.Y a-t-il un moyen de mettre des données dans Kinesis Firehose à partir du compartiment S3?

Comment mettre des données de S3 dans Kinesis Firehose?

+1

Bienvenue dans StackOverflow! Que voulez-vous dire par "flux de données à partir de S3 seau"? Comment les données sont-elles envoyées à S3? Est-il possible de changer cette entité d'envoi pour l'envoyer à Firehose au lieu de S3? Qu'est-ce que vous allez faire avec les données une fois qu'il va dans Firehose? –

+0

Les données proviennent d'un serveur SFTP et une fois que les données arrivent dans le S3, je veux les stocker dans Redshift. Afin d'éviter la perte de données, je veux mettre les données dans le flux firehose, puis stocker dans Redshift. – Vignesh

Répondre

0

Son réellement conçu pour faire le contraire, Firehose envoie des données de streaming entrants - Amazon S3 non de Amazon S3, et autres que S3 il peut envoyer des données à d'autres services comme Redshift et service ElasticSearch.

Je ne sais pas si cela va résoudre votre problème mais vous pouvez utiliser COPY from S3 pour redshift.

J'espère que cela aidera!

0

Il semble que votre situation est:

  • fichiers apparaissent au hasard dans S3 à partir d'un serveur SFTP
  • Vous voulez charger les données dans Redshift

Il y a deux façons de base que vous pourriez faites ceci:

  • Chargez les données directement depuis Amazon S3 dans Amazon Redshift, ou
  • Envoyez les données par Amazon Kinesis Firehose

Franchement, il y a peu d'avantages à l'envoyer par Kinesis Firehose parce Kinesis simplement lot vers le haut, le stocker dans des fichiers temporaires S3 puis le charger dans Redshift. Par conséquent, ce ne serait pas une approche bénéfique.

Au lieu de cela, je recommande:

  • Configurer un événement sur le seau Amazon S3 pour envoyer un message à un Amazon SQS file d'attente chaque fois qu'un fichier est créé
  • Configurer Amazon CloudWatch Events à déclencher une fonction AWS Lambda périodiquement (par exemple toutes les heures, ou 15 minutes, ou tout ce qui répond aux besoins de votre entreprise)
  • La fonction AWS Lambda lit les messages de SQS a nd construit un manifest file, puis déclenche Redshift importer les fichiers répertoriés dans le fichier manifeste

Ceci est une solution simple à couplage lâche qui sera beaucoup plus simple que l'approche Firehose (ce qui exigerait une certaine façon la lecture de chaque fichier et envoi du contenu à Firehose).