Dans le s3 bucket chaque jour, de nouveaux fichiers JSON sont vidés, je dois créer une solution qui sélectionne le dernier fichier lorsqu'il arrive PARSE le JSON et le charge dans Snowflake Datawarehouse. quelqu'un peut-il partager vos réflexions comment pouvons-nous y parvenir
4 Réponses :
Il existe plusieurs façons de procéder en fonction de vos besoins. Je suggérerais de créer un événement pour déclencher une fonction lambda.
https://docs.aws.amazon.com /lambda/latest/dg/with-s3.html
Une autre option peut être de créer un message SQS lorsque le fichier arrive sur s3 et de demander à une instance ec2 d'interroger la file d'attente et de traiter si nécessaire.
https://docs.aws.amazon.com/AmazonS3 /latest/dev/NotificationHowTo.html https: //boto3.amazonaws. com / v1 / documentation / api / latest / guide / sqs-example-long-polling.html
edit: Voici une explication plus détaillée sur la façon de créer des événements à partir de s3 et de déclencher des fonctions lambda. La documentation est fournie par Snowflake
https: //docs.snowflake .net / manuels / guide-utilisateur / data-load-snowpipe-rest-lambda.html
@akhrot j'ai mis à jour ma réponse avec un exemple de flocon de neige
Regardez dans Snowpipe , cela vous permet faites cela dans le système, ce qui rend (peut-être) beaucoup plus facile.
pouvez-vous s'il vous plaît partager un lien qui montre le chargement des données de s3 vers snowflake chaque fois qu'un nouveau fichier arrive dans s3 bucket. Merci beaucoup,
C'est le processus que nous utilisons - snowpipe configurera automatiquement une file d'attente SQS pour vous que vous pouvez utiliser en combinaison avec un déclencheur d'événement s3 pour charger les données dans une table. Fonctionne comme un rêve pour nous! voici un très bon article de blog à ce sujet: snowflake.com/blog / vos-premiers pas-avec-snowpipe
Il y a certains aspects à prendre en compte, tels que s'agit-il d'un traitement par lots ou de données en continu, voulez-vous réessayer de charger le fichier au cas où les données ou le format ne seraient pas corrects ou voulez-vous en faire un processus générique pour pouvoir gérer différents formats de fichiers / types de fichiers (csv / json) et étapes. Dans notre cas, nous avons construit un chargement s3 générique vers Snowflake en utilisant Python et Luigi et avons également implémenté la même chose en utilisant SSIS mais pour le fichier csv / txt uniquement.
Le format de fichier est JSON et sa structure reste toujours la même, en cas d'erreur, j'essaie d'implémenter le déclenchement par e-mail. Mon objectif final est donc de charger le fichier du seau s3 vers l'entrepôt de données Snowflake. s'il vous plaît aidez-moi si vous avez une solution
Dans mon cas, j'ai un script python qui récupère des informations sur le bucket avec boto .
Une fois que j'ai détecté un changement, j'appelle les fichiers d'insertion de point final REST sur SnowPipe.
Mise en phase:
Ce dont vous avez besoin:
J'ai également essayé avec un job Talend avec TOS BigData.
J'espère que cela aide.