In der heutigen digitalen Welt ist die Fähigkeit, große Datenmengen schnell und effizient zu analysieren, für Unternehmen und Plattformen von zentraler Bedeutung. Microsoft Clarity, ein kostenloses Analysewerkzeug, das Website- und App-Besitzern detaillierte Einblicke in das Nutzerverhalten bietet, steht genau vor dieser Herausforderung. Clarity verarbeitet täglich Millionen von Nutzersitzungen, was enorme Anforderungen an Skalierbarkeit, Performance und Kosten mit sich bringt. Um diese Anforderungen zu erfüllen, entschied sich Microsoft Clarity für den Einsatz von ClickHouse, einer leistungsstarken, spaltenorientierten Datenbank, die speziell für OLAP-Szenarien entwickelt wurde. Doch warum fiel die Wahl gerade auf ClickHouse und welche Herausforderungen mussten dabei bewältigt werden? Ein Blick hinter die Kulissen zeigt, wie eine skalierbare Analytics-Plattform erfolgreich umgesetzt wurde.
Zu Beginn von Microsoft Clarity stand ein Proof of Concept (POC), der vor allem intern eingesetzt wurde, um einige Microsoft-Websites zu überwachen. Dieses frühe System basierte auf Elastic Search und Spark, was sich jedoch schnell als unzureichend für den geplanten Einsatz erwies. Die Durchsatzraten bei der Datenaufnahme waren gering, Abfragen benötigten lange Zeit, und insbesondere die Generierung von Heatmaps war ein zeitintensiver Offline-Prozess, der Nutzer bis zu einer halben Stunde warten ließ. Zudem machten die hohen Betriebskosten eine breite öffentliche Nutzung nahezu unmöglich. Das Team von Clarity stand somit vor der Herausforderung, eine robuste Infrastruktur zu entwickeln, die Millionen von Projekten und hunderte Billionen von Events bewältigen kann – bei einer Datenmenge von mehreren hundert Petabyte.
Die Anforderungen an das neue System waren enorm: Es sollte Daten mit extrem hoher Geschwindigkeit erfassen, komplexe Berechnungen und Aggregationen ermöglichen und sofortige Einblicke bieten. Gleichzeitig sollten detaillierte Filtermöglichkeiten erhalten bleiben, um Nutzern die genaueste Analyse ihrer Daten zu erlauben. Diese vielseitigen und hohen Anforderungen führten das Clarity-Team zu einer umfassenden Evaluierung verschiedener Technologien. Mit der Einführung von ClickHouse im Oktober 2020 wurde ein Meilenstein erreicht. Im Vergleich zu allen zuvor getesteten Technologien, darunter Elastic Search und Spark, zeigte ClickHouse deutliche Vorteile.
Die Geschwindigkeit bei Abfragen und Datenaufnahme war um ein Vielfaches besser, Heatmaps konnten nun in Echtzeit generiert werden, und die Betriebskosten waren signifikant niedriger. Diese Vorteile machten ClickHouse zur klaren Wahl für die ständig wachsenden Anforderungen von Microsoft Clarity. ClickHouse ist eine spaltenorientierte Datenbank, die speziell für Online Analytical Processing (OLAP) entwickelt wurde. Dies bedeutet, dass sie Daten in Spalten statt in Zeilen speichert, was für analytische Abfragen besonders effizient ist. Mit dem MergeTree-Engine-Design unterstützt ClickHouse sehr hohe Ingestionsraten, was entscheidend für die Verarbeitung der riesigen Datenmengen bei Clarity ist.
Ebenso beeindruckend sind die extrem schnellen Abfragezeiten, wodurch selbst die Aggregation von Milliarden von Zeilen innerhalb von Millisekunden gelingt. Ein weiterer Vorteil ist die Effizienz hinsichtlich Speicherplatz. Durch fortschrittliche Kompressionstechniken spart ClickHouse erheblich Kosten ein, ohne dabei die Datenqualität oder Detailgenauigkeit zu beeinträchtigen. Zusätzlich erlaubt das System die Konfiguration von Speicherhierarchien, bei denen häufig genutzte Daten auf schnellen Festplatten und selten abgefragte Daten auf kostengünstigeren „kalten“ Speichern abgelegt werden können. Die horizontale Skalierbarkeit von ClickHouse ist ein weiterer wichtiger Punkt.
Als verteilt arbeitende Master-Master-Datenbank mit eingebauter Replikation kann Clarity das System bei steigender Nachfrage problemlos ausweiten, was gerade bei Millionen von Projekten und wachsendem Datenvolumen unerlässlich ist. Das Open-Source-Modell und die aktive Community rund um ClickHouse haben zudem für Vertrauen und eine breite Unterstützung bei der Entwicklung und dem Betrieb gesorgt. Microsoft beteiligte sich sogar direkt am ClickHouse-Projekt, was die enge Zusammenarbeit unterstreicht. Nichtsdestotrotz brachte die Einführung von ClickHouse auch Herausforderungen mit sich. Eine der größten war die operationelle Komplexität und Kosten, die durch den eigenverantwortlichen Betrieb des Clusters entstanden.
Während viele Cloud-Dienste die Verwaltung von Datenbanken als Managed Services anbieten, war ClickHouse zu diesem Zeitpunkt nicht als solcher auf Azure verfügbar. Das führte dazu, dass Microsoft eigene Automatisierungen, Werkzeuge und Services entwickeln musste, um den Betrieb und die Skalierung effizient zu gestalten. Dies erforderte zusätzliche Kompetenz und einen Fokus auf Infrastrukturaufgaben, der vom eigentlichen Kerngeschäft ablenkte. Technisch ist die Clarity-Architektur so gestaltet, dass das ClickHouse-Cluster aus hunderten von Maschinen besteht, die in sogenannte Layer strukturiert sind. Diese Schichten verwalten jeweils bestimmte Projektgruppen, sodass die Datenverwaltung übersichtlich und performant bleibt.
Gleichzeitig ermöglichen Verbindungen zwischen den Layern abteilungsübergreifende Abfragen, was die Flexibilität erhöht. Die Replikation erfolgt über ein zentrales ZooKeeper-Ensemble, das für hohe Ausfallsicherheit und Synchronisation sorgt. Die zugrunde liegende Datenstruktur basiert auf einem großen ReplicatedMergeTree-Table, ergänzt durch weitere sekundäre Tabellen. Die Wahl der Partitionierungs- und Primärschlüssel wurde bewusst getroffen, um die Indexeffizienz und Datenkompression zu optimieren. Zudem kommen Materialized Views zum Einsatz, um spezielle Abfragen durch vorstrukturierte und aggregierte Datenmengen zu beschleunigen.
Der Weg der Daten beginnt bei den JavaScript-SDKs und mobilen SDKs, die visuelle Informationen sowie Nutzerinteraktionen sammeln. Diese werden zunächst an Backend-Gateways übertragen, die sowohl die visuelle Playback-Daten in Blob-Speicher auslagern, als auch die Interaktionsdaten für weitere Verarbeitung zwischenspeichern. Anstelle der integrierten Buffer-Tabellen von ClickHouse setzt Clarity eigene Puffermechanismen ein, um Datenverlust im Falle von Serverausfällen zu vermeiden. Für die Darstellung und Analyse im Portal werden alle Daten von ClickHouse über spezielle Serving APIs abgerufen. Dabei wurde zunächst der Open Source Proxy Chproxy verwendet, doch um den Anforderungen der individuellen Schichtung und des Bi-Shardings gerecht zu werden, wurde ein maßgeschneiderter Service entwickelt.
Dieser bietet zusätzliche Funktionalitäten wie Rate Limiting und detailliertes Logging, um den Betrieb stabil und sicher zu gestalten. Microsoft Clarity hat sich so als leistungsfähiges Tool etabliert, das Website- und App-Betreibern tiefgreifende Einblicke eröffnet. Die Entscheidung für ClickHouse war dabei ein entscheidender Schritt, der es ermöglichte, enorme Datenmengen effizient zu verarbeiten und gleichzeitig die Kosten im Griff zu behalten. Trotz der anfänglichen Betriebshürden ist Clarity heute ein Musterbeispiel für eine skalierbare, performante Analytics-Plattform. Die Zukunft von Clarity wird durch kontinuierliche Weiterentwicklung geprägt sein.
Das Ziel ist, Nutzer immer schneller und detaillierter zu informieren, um digitale Erlebnisse optimal zu gestalten. Die Kombination aus leistungsfähiger Infrastruktur und benutzerfreundlichen Analysefunktionen macht Clarity zu einem unverzichtbaren Begleiter im digitalen Ökosystem – und das alles kostenlos. Die Wahl von ClickHouse als Herzstück der Plattform unterstreicht die Bedeutung moderner, skalierbarer Datenbanklösungen in einer Zeit, in der Daten zum wichtigsten Asset von Unternehmen avancieren.