Veröffentlicht am

Wie handhabt Notion 200 Milliarden Datenentitäten?

Autoren

Alles in Notion ist ein Block – Text, Bilder, Listen, Datenbankzeilen und sogar Seiten.

Image

Notions Architektur ist so konzipiert, dass sie das einzigartige Datenmodell unterstützt, das sich um "Blöcke" dreht - die grundlegenden InformationsEinheiten, die verschiedene Arten von Inhalten darstellen können, wie Text, Bilder und Datenbankeinträge. Diese Architektur ermöglicht ein flexibles und dynamisches Benutzererlebnis, das es Benutzern ermöglicht, Daten in einer hochgradig anpassbaren Weise zu erstellen und zu manipulieren.

Hauptmerkmale von Notions Architektur

  1. Blockbasiertes Datenmodell
  • Alles ist ein Block: In Notion werden alle Inhalte als Block behandelt. Blöcke sind Notions LEGO-Steine. Dazu gehören Text, Bilder, Datenbankeinträge und sogar ganze Seiten. Jeder Block hat assoziierte Metadaten und kann frei innerhalb der Anwendung transformiert oder verschoben werden.

  • Flexibilität: Dieses Blockmodell ermöglicht es Benutzern, Informationen ohne strenge Einschränkungen zu organisieren, was es einfacher macht, sich an verschiedene Anwendungsfälle und Workflows anzupassen.

  1. Datenbankdesign
  • Relationale Datenbank: Notion nutzt PostgreSQL als zugrunde liegendes Datenbanksystem. Anfangs betrieb es eine einzelne PostgreSQL-Instanz, hat sich aber seitdem zu einer komplexeren Architektur entwickelt, die Sharding zur effektiven Verwaltung von Datenmengen verwendet.

  • Sharding-Strategie: Mitte 2023 besteht Notions Datenbankarchitektur aus 96 Datenbankservern, die in logische Shards aufgeteilt sind, basierend auf Workspace-IDs. Dies stellt sicher, dass alle Blöcke, die zu einem bestimmten Workspace gehören, zusammen gespeichert werden, was effiziente Transaktionen und Konsistenz ermöglicht.

  1. Skalierbarkeit und Leistung
  • Cluster-Architektur: Die Verwendung von Cluster-Servern ermöglicht es Notion, seine Datenbank horizontal zu skalieren. Jeder Shard wird als PostgreSQL-Schema dargestellt, was hilft, das zunehmende Datenvolumen zu verwalten, während die Leistung erhalten bleibt.

  • API-Interaktion: Client-Anwendungen interagieren mit der Datenbank über einen dedizierten API-Server, der auf Node.js-Webservern läuft. Diese Einrichtung verbessert die Leistung durch effizientes Verwalten von Verbindungen durch Connection-Pooling.

  1. Datenverwaltung und -wachstum

Data-Lake-Infrastruktur: Notion hat eine ELT- (Extract, Load, Transform) -Pipeline für Datenanalyse und Berichterstellung implementiert, die Tools wie Fivetran nutzt, um Daten aus PostgreSQL in Snowflake zu laden, um weitere Analysen durchzuführen.

  • Schnelles Datenwachstum: Das Volumen von Blockdaten in Notion hat sich erheblich erweitert - von über 20 Milliarden Blöcken zu Beginn des Jahres 2021 auf mehr als 200 Milliarden Blöcke Mitte 2024. Dieses Wachstum erfordert eine kontinuierliche Optimierung ihrer Datenverwaltungsstrategien.

Datenbanken in Notion entwerfen

Das Erstellen von Datenbanken in Notion ist einfach und umfasst mehrere Schritte:

  • Erstellen eines Datenbank-Blocks: Benutzer können eine Datenbank erstellen, indem sie /database in eine beliebige Notion-Seite eingeben, um auf verschiedene Datenbanktypen (inline oder Vollbild) zuzugreifen.

  • Hinzufügen von Spalten und Einträgen: Benutzer können Eigenschaften für jeden Eintrag in der Datenbank definieren, einschließlich Typen wie Text, Zahlen, Daten usw.

  • Anpassen von Ansichten: Notion unterstützt mehrere Ansichten (Tabelle, Board, Galerie) für die Visualisierung von Daten entsprechend den Benutzerpräferenzen.

  • Verknüpfen von Datenbanken: Benutzer können Beziehungen zwischen verschiedenen Datenbanken erstellen, indem sie verknüpfte Eigenschaften verwenden, was die Vernetzung ihrer Daten verbessert.

Notions Architektur kombiniert ein flexibles blockbasiertes Modell mit robusten relationalen Datenbankverwaltungsprinzipien, um ein leistungsfähiges Werkzeug für die Organisation von Informationen zu schaffen. Ihre skalierbare Infrastruktur und benutzerfreundliche Gestaltung ermöglichen es Benutzern, komplexe Datensätze effektiv zu verwalten, während sie die notwendigen Werkzeuge für Anpassung und Zusammenarbeit bieten. Diese einzigartige Kombination macht Notion sowohl für persönliche Produktivität als auch für Teamzusammenarbeit geeignet.

Ursprünglich speicherte Notion alle Blöcke in der Postgres-Datenbank.

Zu dieser Zeit verarbeiteten Postgres-Datenbanken alles von Online-Benutzer-Traffic bis hin zu Offline-Analyse und maschinellem Lernen.

Im Jahr 2021 begannen sie mit einer einfachen ETL, die Fivetran verwendete, um Daten aus Postgres in Snowflake zu laden, indem sie 480 Connector verwendeten, um 480 Shards in Roh-Snowflake-Tabellen stündlich zu schreiben.

Aber dieser Ansatz hatte einige Probleme, als die Postgres-Daten wuchsen:

❌ Das Verwalten von 480 Fivetran-Connectors ist ein Albtraum.

❌ Notions Benutzer aktualisieren Blöcke häufiger als neue hinzufügen. Dieses häufige Aktualisierungsmuster verlangsamt und erhöht die Kosten für die Snowflake-Datenübernahme.

❌ Die Datenverwendung wird komplexer und schwerer (AI-Workloads)

Im Jahr 2022 implementierten sie eine in-house-Data-Lake-Architektur, die Daten inkrementell aus Postgres in Kafka verwendete, indem sie Debezium verwendeten, und dann Apache Hudi verwendeten, um von Kafka in S3 zu schreiben.

Bitte beachten Sie, dass die deutsche Version von Ai unterstützt wird und daher geringfügige Fehler auftreten können.

AUTOR

Über ABN Asia: Ai Base Network (ABN), ABN Asia wurde im Jahr 2012 gegründet und ist ein Unternehmen mit akademischem Hintergrund, das von Lehrkräften und ehemaligen Studierenden aus Ungarn, den Niederlanden, Russland, Deutschland und Japan gegründet wurde. Wir teilen eine gemeinsame Leidenschaft und eine klare Vision für Technologie, die Innovation und erstklassige Qualität für unsere Kunden bringt. Unser Motto lautet: Besser. Schneller. Sicherer. In vielen Fällen: Günstiger.

Zögern Sie nicht, uns zu kontaktieren, wenn Sie IT-Dienstleistungen, digitale Beratung, Standardsoftwarelösungen benötigen oder uns Angebotsanfragen (RFPs) senden möchten. Sie können uns unter [email protected] kontaktieren. Wir sind bereit, Ihnen bei all Ihren Technologiebedürfnissen zu helfen.

ABNAsia.org

© ABN ASIA