- 发布于
Notion如何处理2000亿条数据实体?
- 作者

- 姓名
- AbnAsia.org
- @steven_n_t
Notion 中的一切都是一个块——文本、图片、列表、数据库行,甚至是页面。

Notion 的架构旨在支持其独特的数据模型,该模型围绕 " 块 " —— 可以表示各种类型内容(如文本、图像和数据库条目)的基本信息单位。这种架构允许用户以高度可定制的方式创建和操作数据,从而实现灵活和动态的用户体验。
Notion 架构的关键功能
- 基于块的数据模型
一切都是块:在 Notion 中,所有内容都被视为块。块是 Notion 的 LEGO。包括文本、图像、数据库行和整个页面。每个块都有相关的元数据,可以自由地在应用程序中转换或移动。
灵活性:这种块模型允许用户在没有严格约束的情况下组织信息,使其更容易适应各种用例和工作流程。
- 数据库设计
关系数据库:Notion 使用 PostgreSQL 作为其底层数据库系统。最初,它在单个 PostgreSQL 实例上运行,但后来发展为一个更复杂的架构,使用分片来有效地管理不断增长的数据负载。
分片策略:截至 2023 年中期,Notion 的数据库架构由 96 个数据库服务器组成,根据工作区 ID 分为逻辑分片。这确保了所有属于特定工作区的块都存储在一起,从而实现高效的事务和一致性。
- 可扩展性和性能
集群架构:使用集群服务器允许 Notion 水平扩展其数据库。每个分片都表示为 PostgreSQL 架构,这有助于在保持性能的同时管理不断增长的数据量。
API 交互:客户端应用程序通过使用 Node.js Web 服务器的专用 API 服务器与数据库交互。这种设置通过连接池高效地管理连接,从而提高性能。
- 数据管理和增长
数据湖基础设施:Notion 实现了一个用于数据分析和报告的 ELT(提取、加载、转换)管道,使用工具如 Fivetran 从 PostgreSQL 中提取数据到 Snowflake 进行进一步分析。
快速数据增长:Notion 中的块数据量已经大幅增加——从 2021 年初的 20 亿个块增加到 2024 年中期的 200 亿个块。这种增长需要不断优化其数据管理策略。
在 Notion 中设计数据库
在 Notion 中创建数据库非常简单,涉及以下几个步骤:
创建数据库块:用户可以通过在任何 Notion 页面中输入 /database 来创建数据库,并访问各种数据库类型(内联或全页)。
添加列和条目:用户可以为数据库中的每个条目定义属性,包括文本、数字、日期等类型。
自定义视图:Notion 支持多种视图(表格、板、画廊)来根据用户偏好可视化数据。
链接数据库:用户可以使用链接属性在不同的数据库之间创建关系,从而增强其数据的互连性。
Notion 的架构将灵活的基于块的模型与强大的关系数据库管理原则相结合,创建了一个强大的信息组织工具。其可扩展的基础设施和用户友好的设计使用户能够有效地管理复杂的数据集,同时提供必要的工具进行定制和协作。这种独特的组合使 Notion 适用于个人生产力和团队协作场景。
最初,Notion 将所有块存储在 Postgres 数据库中。
当时,Postgres 数据库处理从在线用户流量到离线分析和机器学习的所有内容。
2021 年,他们开始使用 Fivetran 从 Postgres 到 Snowflake 的简单 ETL,将 480 个连接器写入 480 个原始 Snowflake 表,每小时一次。
但这种方法在 Postgres 数据增长时遇到了一些问题:
❌ 管理 480 个 Fivetran 连接器是一场噩梦。
❌ Notion 的用户更频繁地更新块,而不是添加新块。这种频繁更新的模式会减慢并增加 Snowflake 数据摄取的成本。
❌ 数据消耗变得更加复杂和重(AI 工作负载)
2022 年,他们引入了一个内部数据湖架构,该架构使用 Debezium 从 Postgres 到 Kafka 增量摄取数据,然后使用 Apache Hudi 从 Kafka 写入 S3。
请注意,中文版本是由 AI 辅助翻译的,因此可能存在细微错误。
作者
Ai Base Network (ABN), ABN ASIA由具有深厚学术背景的人员创立,他们在美国、荷兰、匈牙利、日本、韩国、新加坡和越南等国家有工作经验。ABN Asia是学术界和技术相遇的地方。凭借我们领先的解决方案和优秀的软件开发服务,我们帮助企业提升水平,走向全球舞台。我们的承诺:更快。更好。更可靠。在大多数情况下:也更便宜。
无论您需要IT服务、数字咨询、现成软件解决方案,还是想向我们发送招标要求(RFPs),都请随时与我们联系。您可以通过[email protected]与我们联系。我们随时准备为您提供所有技术需求的帮助。

© ABN ASIA