ETL Pipeline zur Verarbeitung von Tweets

Dieses Workflow automatisiert das Abrufen und Analysieren von Tweets mit sentimentalen Bewertungen basierend auf einem bestimmten Hash-Tag.

ETL Pipeline zur Verarbeitung von Tweets

Die Website nutzt die Wordpress-Infrastruktur.

Server: Unser Server befindet sich in einem Unternehmen mit Sitz in Deutschland. Er hat eine hohe und schnelle Internetverbindung. Es gibt eine Generatorunterstützung für ununterbrochenen Strom.

Einführung

Dieser Workflow nutzt die n8n-Plattform, um Tweets zu erfassen und ihre Sentiment-Werte mithilfe von Google Cloud Natural Language API zu analysieren. Die analysierten Tweets werden dann in einer PostgreSQL-Datenbank gespeichert und in einem Slack-Kanal geteilt, wenn der sentimentale Score einen bestimmten Wert überschreitet.

Node-Details

1. Cron

  • Name: Cron
  • Typ: n8n-nodes-base.cron
  • Aufgabe: Dieser Node löst den Workflow jeden Tag um 6 Uhr morgens aus.
  • Ausslungen: {"triggerTimes":{"item":[{"hour":6}]}}

2. Twitter

  • Name: Twitter
  • Typ: n8n-nodes-base.twitter
  • Aufgabe: Dieser Node sucht nach den neuesten Tweets, die den Hashtag #OnThisDay enthalten.
  • Ausslungen: {"limit":3,"operation":"search","searchText":"=#OnThisDay"}
  • Credentials: Twitter API für authentifizierte Anfragen.

3. MongoDB

  • Name: MongoDB
  • Typ: n8n-nodes-base.mongoDb
  • Aufgabe: Speichert die abgerufenen Tweets in der tweets Collection in einer MongoDB-Datenbank.
  • Ausslungen: {"fields":"text","operation":"insert","collection":"tweets"}
  • Credentials: MongoDB Zugangsdaten.

4. Google Cloud Natural Language

  • Name: Google Cloud Natural Language
  • Typ: n8n-nodes-base.googleCloudNaturalLanguage
  • Aufgabe: Analysiert den Text der Tweets, um sentimentale Scores und Magnituden zu erhalten.
  • Ausslungen: {"content":"={{$node[\"MongoDB\"].json[\"text\"]}}"}
  • Credentials: Google Cloud Natural Language API Zugangsdaten.

5. Set

  • Name: Set
  • Typ: n8n-nodes-base.set
  • Aufgabe: Setzt die Analyseergebnisse (Sentiment Score und Magnitude) für die Verwendung in nachfolgenden Nodes.
  • Ausslungen: {"values":{"number":[{"name":"score","value":"={{$json[\"documentSentiment\"][\"score\"]}}"},{"name":"magnitude","value":"={{$json[\"documentSentiment\"][\"magnitude\"]}}"}],"string":[{"name":"text","value":"={{$node[\"Twitter\"].json[\"text\"]}}"}]}}

6. Postgres

  • Name: Postgres
  • Typ: n8n-nodes-base.postgres
  • Aufgabe: Speichert die analysierten Tweets in einer PostgreSQL-Datenbanktabelle namens tweets.
  • Ausslungen: {"table":"tweets","columns":"text, score, magnitude","returnFields":"=*"}
  • Credentials: PostgreSQL Zugangsdaten.

7. IF

  • Name: IF
  • Typ: n8n-nodes-base.if
  • Aufgabe: Überprüft, ob der sentimentale Score größer als ein bestimmter Wert ist.
  • Ausslungen: {"conditions":{"number":[{"value1":"={{$json[\"score\"]}}","operation":"larger"}]}}

8. Slack

  • Name: Slack
  • Typ: n8n-nodes-base.slack
  • Aufgabe: Sendet eine Nachricht in einen Slack-Kanal, wenn der sentimentale Score des Tweets größer ist als der definierte Wert.
  • Ausslungen: {"text":"=🐦 NEW TWEET with sentiment score {{$json[\"score\"]}} and magnitude {{$json[\"magnitude\"]}} ⬇️\n{{$json[\"text\"]}}","channel":"tweets"}
  • Credentials: Slack API Zugangsdaten.

9. NoOp

  • Name: NoOp
  • Typ: n8n-nodes-base.noOp
  • Aufgabe: Ein Platzhalter für die Ausführung, wenn die Bedingung im IF Node nicht erfüllt ist.

Ergebnis

Dieser ETL-Pipeline-Workflow ermöglicht die automatisierte Verarbeitung und Analyse von Tweets. Basierend auf dem sentimentalen Score der Tweets können Nutzer relevante Informationen in Echtzeit über Slack erhalten und die Daten in PostgreSQL für spätere Analysen speichern.

Download Link

Sie können den Workflow hier herunterladen: Download Link

Facebook
Twitter
LinkedIn

Andere Projekte