Schritt-für-Schritt-Anleitung zur ETL-Pipeline
1. Cron
Name: Cron
Typ: n8n-nodes-base.cron
Zweck: Dieser Node plant die Ausführung des Workflows. Er ist so konfiguriert, dass er täglich um 06:00 Uhr ausgelöst wird.
Einstellungen:
– triggerTimes: Spezifiziert, dass der Trigger täglich um 6 Uhr ausgelöst wird.
2. Twitter
Name: Twitter
Typ: n8n-nodes-base.twitter
Zweck: Dieser Node sucht nach Tweets mit dem Hashtag #OnThisDay. Er holt die neuesten Tweets, um sie zu analysieren.
Einstellungen:
– limit: 3 (maximal 3 Tweets sind erlaubt).
– operation: search (Durchsuchen).
– searchText: =#OnThisDay (Hashtag für die Suche).
– credentials: twitterOAuth1Api: Dies erfordert API-Zugangsdaten zu Twitter.
3. MongoDB
Name: MongoDB
Typ: n8n-nodes-base.mongoDb
Zweck: Speichert die abgerufenen Tweets in einer MongoDB-Datenbank.
Einstellungen:
– operation: insert (Einfügen).
– collection: tweets (Ziel-Sammlung in der Datenbank).
– fields: text (das Textfeld des Tweets, das gespeichert wird).
– credentials: mongoDb: Zugangsdaten zur MongoDB.
4. Google Cloud Natural Language
Name: Google Cloud Natural Language
Typ: n8n-nodes-base.googleCloudNaturalLanguage
Zweck: Analysiert den Sentiment-Bewertung von Tweets, die in MongoDB gespeichert sind.
Einstellungen:
– content: ={{$node[„MongoDB“].json[„text“]}} (Text des Tweets wird analysiert).
– credentials: googleCloudNaturalLanguageOAuth2Api: API-Zugangsdaten für Google Cloud.
5. Set
Name: Set
Typ: n8n-nodes-base.set
Zweck: Setzt die Werte für den Score und die Magnitude des Sentiments, um sie später zu verwenden.
Einstellungen:
– values:
– score: ={{$json[„documentSentiment“][„score“]}}
– magnitude: ={{$json[„documentSentiment“][„magnitude“]}}
– text: ={{$node[„Twitter“].json[„text“]}} (Speichert den Text des Tweets).
6. Postgres
Name: Postgres
Typ: n8n-nodes-base.postgres
Zweck: Speichert die analysierten Tweets einschließlich ihrer Sentiment-Bewertung in einer PostgreSQL-Datenbank.
Einstellungen:
– table: tweets (Ziel-Tabelle in der Datenbank).
– columns: text, score, magnitude (Spalten, die in die Tabelle eingefügt werden).
– returnFields: =* (alle Felder zurückgeben).
– credentials: postgres: Zugangsdaten zur PostgreSQL.
7. IF
Name: IF
Typ: n8n-nodes-base.if
Zweck: Überprüft, ob der Sentiment Score größer als ein bestimmter Wert ist, um zu entscheiden, ob eine Slack-Nachricht gesendet werden soll.
Einstellungen:
– conditions:
– number:
– value1: ={{$json[„score“]}}
– operation: larger (größer).
8. Slack
Name: Slack
Typ: n8n-nodes-base.slack
Zweck: Sendet eine Benachrichtigung über neue Tweets mit ihrer Sentiment-Analyse an einen bestimmten Slack-Kanal.
Einstellungen:
– text: =🐦 NEUER TWEET mit Sentiment-Score {{$json[„score“]}} und Magnitude {{$json[„magnitude“]}} ⬇️
{{$json[„text“]}} (Formatierter Text für die Nachricht).
– channel: tweets (Slack-Kanal für die Benachrichtigung).
– credentials: slackApi: Zugangsdaten für Slack.
9. NoOp
Name: NoOp
Typ: n8n-nodes-base.noOp
Zweck: Eine Art Platzhalter, der nichts tut, wenn die Bedingung im IF-Node nicht erfüllt ist.
Einstellungen: Es sind keine spezifischen Einstellungen erforderlich.
Ergebnis
Diese ETL-Pipeline ermöglicht das Sammeln, Speichern und Analysieren von Tweets, während sie gleichzeitig die Benutzer über relevante Informationen benachrichtigt. Mit dieser Automatisierung können Benutzer wertvolle Einblicke in öffentliche Meinungen und Trends gewinnen, ohne manuelle Datenverarbeitung vornehmen zu müssen.
Download Link: Hier herunterladen