Durch Anklicken „Akzeptieren“, stimmen Sie der Speicherung von Cookies auf Ihrem Gerät zu, um die Seitennavigation zu verbessern, die Nutzung der Website zu analysieren und unsere Marketingaktivitäten zu unterstützen. Sehen Sie sich unsere an Datenschutzrichtlinie für weitere Informationen.
Sep 4, 2024
More

So erstellen Sie mithilfe von BigQuery ein Warnsystem in Slack

Erstellen Sie Ihren Slack-Bot mit BigQuery und Google Sheets. Von Deborah Menezes ‍

Musstest du schon einmal bestimmte Daten direkt aus einer Tabelle in einen Slack-Channel teilen? aber der gesamte Prozess, die Daten zu extrahieren, zu konsolidieren und dann eine Nachricht zu versenden, scheint anstrengend zu sein. Oder vielleicht bist du ein Projektmanager, der alle Teammitglieder mit den neuesten Daten aus deinen Tabellen auf dem Laufenden halten muss, aber das manuelle Kopieren und Einfügen von Daten aus deiner Tabelle in Slack scheint mühsam und fehleranfällig. Mit BigQuery, Google Sheets, Google Apps Script und der Slack-API von Google wird diese Aufgabe unglaublich einfach.

In diesem Blog zeigen wir dir, wie du ein automatisiertes Slack-Benachrichtigungssystem einrichtest, das mit BigQuery verbunden ist. So wird das Überwachen und Teilen von Daten für dich und dein Team zum Kinderspiel!

Schauen wir uns ein paar Anwendungsfälle an,

Vertriebs- und Marketinganalysen:

  • Teilen: Verkaufsdaten, Kennzahlen zu Marketingkampagnen, Statistiken zur Kundengewinnung.
  • Vorteil: Hält das Team über Leistung und Fortschritte bei der Erreichung der Ziele auf dem Laufenden.

Analytik des Kundensupports:

  • Teilen: Offene Support-Tickets, durchschnittliche Lösungszeit, Ticketverteilung nach Problem oder Kunde.
  • Vorteil: Ermöglicht schnelle Antworten und verbessert die Qualität des Kundenservices.


Operative Kennzahlen:

  • Teilen: Lagerleistung, Lieferkettenstatistiken, Produktionsdaten.
  • Vorteil: Erhöht das Bewusstsein für betriebliche Probleme und die Auswirkungen von Änderungen.

Projektleitung:

  • Teilen: Offene Aufgaben, erledigte Aufgaben, erreichte Meilensteine.
  • Vorteil: Sorgt für einen zeitnahen Projektfortschritt und behebt Engpässe.

Webseitenanalyse:

  • Teilen: Seitenaufrufe, individuelle Besucher, Einblicke in das Nutzerverhalten.
  • Vorteil: Informiert über die Leistung der Website und hebt Bereiche hervor, die optimiert werden müssen.

Softwareentwicklung:

  • Teilen: Ergebnisse von Softwaretests, Fehlerverfolgung, Systemleistung, Statistiken zur Nutzung von Funktionen.
  • Vorteil: Beschleunigt Softwareverbesserungen und gewährleistet eine gleichbleibende Qualität.

Dies sind nur einige Beispiele. Das Schöne an diesem System ist, dass es hochflexibel ist und an eine Vielzahl von Anwendungsfällen angepasst werden kann — überall dort, wo Sie Daten in BigQuery haben, die Sie regelmäßig mit Ihrem Team teilen möchten.

Schritt 1: BigQuery-Abfrage erstellen

Unser erster Schritt besteht darin, eine BigQuery-SQL-Abfrage zu formulieren, um die Daten zu extrahieren, die wir überwachen möchten. Wenn wir beispielsweise unseren täglichen Gesamtumsatz verfolgen möchten, könnte unsere SQL-Abfrage wie folgt aussehen:

  
SELECT DATE(order_timestamp) AS order_date, SUM(total_amount) AS daily_sales
FROM `my_project.my_dataset.my_table`
WHERE DATE(order_timestamp) >= (CURRENT_DATE() - INTERVAL 1 WEEK)
GROUP BY order_date
ORDER BY order_date DESC;
 


Die Ergebnisse dieser Abfrage geben uns den Gesamtumsatz der letzten 7 Tage, die in den Daten verfügbar sind.

Schritt 2: BigQuery mit Google Sheets verbinden

Google Sheets verfügt über eine nützliche Funktion, mit der Sie eine direkte Verbindung zu BigQuery herstellen können. Um dies zu tun,

  • Gehe zu Daten > Datenkonnektoren > Mit BigQuery verbinden in Ihrer Google Sheets-Oberfläche.

  • Diese Verbindung ermöglicht es Ihnen, entweder direkt auf Ihre BigQuery-Tabelle zu verlinken oder ein 'einzugeben.benutzerdefinierte Abfrage' um die notwendigen Daten zu extrahieren.

  • Wenn Sie die Abfrage in Zukunft aktualisieren müssen, können Sie auf 'klickenVerbindungseinstellungen' in der BigQuery-Connector-Tabelle

  • Sobald Sie die Daten abgerufen haben, können Sie alle erforderlichen Datentransformationen auf einem neuen separaten Blatt durchführen, indem Sie auf das 'extrahieren' Knopf

  • Sie können die Datenaktualisierungsrate auch festlegen, indem Sie das 'Aktualisierte Optionen' auf der linken Seite, wodurch sich rechts eine Seitenleiste öffnet. Aktivieren Sie die Option „Geplante Aktualisierung“ mit den gewünschten Einstellungen. Dadurch wird sichergestellt, dass Ihre Daten in der Tabelle aktuell und relevant bleiben.

Schritt 3: Eine Slack-App erstellen

Um unsere Daten an Slack zu senden, müssen wir eine benutzerdefinierte Slack-App erstellen und deren Funktion „Eingehende Webhooks“ verwenden. Folge diesen Schritten:

  • Besuch Slack-API und verbinde dich mit deinem Slack-Account

  • Klicken Sie auf „Neue App erstellen“ > Von Grund auf neu

  • Benenne deine App und wähle deinen Slack-Workspace.
  • Sobald Ihre App erstellt ist, wählen Sie 'Eingehende Webhooks'.
  • Schalten Sie die „Incoming Webhooks“ ein und klicken Sie auf 'Neuen Webhook zum Workspace hinzufügen'.

  • Wähle den Slack-Kanal, an den du deine Benachrichtigungen senden möchtest, oder erstelle einen neuen Channel für deine Unternehmenseinstellungen.

  • Kopieren Sie die Webhook-URL, die später im App Script-Code verwendet wird.

Schritt 4: Google Apps Script-Funktionen einrichten

Unser letzter Schritt besteht darin, Google Apps Script (eine JavaScript-basierte Skriptsprache) zu verwenden, um unsere Daten aus der Tabelle abzurufen und an unseren Slack-Kanal zu senden.

Klicken Sie auf Erweiterungen > App Script: eine neue Apps Script-Datei erstellen

Der Skripteditor ist leer und Sie müssen die folgenden Schritte ausführen, um die Einstellungen vorzunehmen. Wir müssen drei Funktionen schreiben

  • buildReport: Diese Funktion ruft Daten aus unserer Tabelle ab, erstellt die Benachrichtigungsnutzlast und ist dafür verantwortlich, die Daten aus den Zellen A2:B abzurufen: Überspringen des Header-Namens.
  • buildAlert: Diese Funktion formatiert die Daten in ein benutzerfreundliches Format.
    Die Daten, die Sie gerade im vorherigen Schritt abgerufen haben, sind im JavaScript-Array-Format. In diesem Format kannst du sie nicht an Slack senden — Slack wird es nicht verstehen. Stattdessen muss es in ein speziell strukturiertes JSON umgewandelt werden, das Slack versteht. Slack nennt diese Struktur 'Blöcke'.
  • sendAlert: Diese Funktion verwendet die Payload, die Sie gerade in Schritt 2 erstellt haben, als Argument. Das Objekt 'options' stellt lediglich sicher, dass wir die richtige Art von Anfrage im richtigen Format stellen, dann stellt der Teil 'UrlFetchApp.Fetch' die Anfrage. Wir packen es in einen Try/Catch-Block ein, nur für den Fall, dass etwas schief geht. Der einzige Teil, den Sie tun müssen, ist die von Ihnen erstellte Webhook-URL einzufügen

Hier ist ein Beispiel dafür, wie Sie diese Funktionen implementieren könnten:

  
// Function to build the sales report.
function buildReport() {
// Get the active spreadsheet.
const ss = SpreadsheetApp.getActive();


// Get data from the "weekly_sales" sheet, columns A and B, from the second row to the end.
let data = ss.getSheetByName("weekly_sales").getRange("A2:B").getValues();


// Build the payload for the Slack message from the data.
let payload = buildAlert(data);


// Send the payload as a Slack message.
sendAlert(payload);
}


// Function to process and format the sales data.
function mySalesDaTa(data){
// Log the original data for debugging purposes.
Logger.log(data)


// Filter the data to remove any rows where the first column (the date) is missing or null.
data = data.filter(item => item[0] && item[0].toString().length > 0);


// Log the filtered data for debugging purposes.
Logger.log(data)


// Map each row in the data to a string in the format '[date] $[sales]\n'.
var sales = data.map(item => {
// Format the date using the script's time zone and the format "yyyy-MM-dd".
var formattedDate = Utilities.formatDate(new Date(item[0]), Session.getScriptTimeZone(), "yyyy-MM-dd");
return '' + formattedDate + ' $' + item[1]+ "\n";
}).join("\n"); // Join all the strings into a single string separated by newlines.


// Log the final sales string for debugging purposes.
Logger.log(sales)
// Return the final sales string.
return sales;
}


// Function to build the payload for the Slack message.
function buildAlert(data) {
// Get today's date.
let today = new Date();


// Process and format the sales data.
let sales = mySalesDaTa(data);
Logger.log(sales)


// Build the payload for the Slack message.
let payload = {
'username' : 'My Test Slackbot',
'text' : 'Datadice rocks!!!',
'attachments': [{
'text': ' :chart_with_upwards_trend: Weekly Sales Metrics :dollar:'+ "\n" + sales + "\n",
}]
}


// Return the payload.
return payload;
}


// Function to send the payload as a Slack message.
function sendAlert(payload) {
// Paste your webhook URL here.
const webhook = "";


// Define the options for the HTTP request.
var options = {
"method": "post",
"contentType": "application/json",
"muteHttpExceptions": true,
"payload": JSON.stringify(payload)
};


// Try to send the HTTP request.
try {
UrlFetchApp.fetch(webhook, options);
} catch(e) {
// If the request fails, log the error.
Logger.log(e);
}
}

 

So sieht der Alert Slack aus

Schritt 5: Plane deinen Slack-Bot.

Vergessen Sie nicht, Auslöser für Ihre Google Apps Script-Funktionen einzurichten, um zu steuern, wann Ihre Benachrichtigungen versendet werden. Auf Trigger kann im Apps Script-Editor unter zugegriffen werden Bearbeiten > Auslöser des aktuellen Projekts.

Und das war's! Mit diesen vier einfachen Schritten können Sie ein leistungsstarkes automatisiertes Slack-Benachrichtigungssystem erstellen, das direkt in Ihre BigQuery-Daten integriert wird, ohne Ihre Google Sheets-Oberfläche zu verlassen. Verabschieden Sie sich von manueller Datenextraktion und begrüßen Sie den optimierten Datenaustausch!

Fazit

Dieser Blogbeitrag konzentriert sich zwar darauf, Google Sheets mit BigQuery und dann Slack mithilfe von Google Apps Script zu verbinden, aber das Schöne an diesen Tools liegt in ihrer Anpassungsfähigkeit. Dieser Prozess kann auf verschiedene Anwendungsfälle und Datenquellen zugeschnitten werden. Diese Flexibilität ermöglicht es uns, Daten besser zu nutzen, fundierte Entscheidungen schneller zu treffen und letztlich unseren Betrieb effizienter zu gestalten.

Mit der Weiterentwicklung der Technologie wird sich auch die Art und Weise ändern, wie wir diese Tools nutzen können. Bleiben Sie also neugierig, entdecken Sie weiter und denken Sie daran: Wenn es um die Automatisierung Ihrer Arbeitsabläufe geht, ist der Himmel wirklich die Grenze!

Weitere Links

Folge uns auf LinkedIn für Einblicke in unsere tägliche Arbeit und wichtige Updates zu BigQuery, Data Studio und Marketing Analytics.

Abonniere unseren YouTube-Kanal für Diskussionen zu DWH, BigQuery, Looker Studio und Google Tag Manager.

Wenn Sie BigQuery von Grund auf lernen möchten, erhalten Sie Zugriff auf unsere kostenloser BigQuery-Kurs

Verbessern Sie Ihre Fähigkeiten mit Google Data Studio und BigQuery, indem Sie sich für unser Udemy-Kurs.

Benötigen Sie Hilfe bei der Einrichtung eines modernen, kostengünstigen Data Warehouse oder eines analytischen Dashboards? Senden Sie uns eine E-Mail an hello@datadice.io um einen Anruf zu vereinbaren.