SuperAPI AI 工具集

ddia-principles

数据与分析

查看项目

更新于 10-29 14:22

技能介绍

该技能是一份围绕《Designing Data-Intensive Applications》(DDIA)整理的浓缩参考指南,作者标注为 Martin Kleppmann。其中心论点是:数据是现代应用的核心挑战,而非计算。内容按原书三大部分组织,适合在数据库设计、存储选型、分布式架构决策时作为速查材料。

一、数据系统基础 涵盖第1至4章。第1章讨论可靠性、可扩展性、可维护性三大支柱,区分故障与失效,列出硬件、软件、人为三类故障及缓解手段,介绍垂直与水平扩展、弹性伸缩,并以 Twitter 写扩散案例说明读写负载差异;性能部分强调用 p50、p95、p99 等百分位而非平均值衡量,并提及尾延迟放大问题。第2章给出数据模型选型指南:关系型适合结构化数据与复杂连接,文档型适合层级与灵活模式,图模型适合高度关联数据;同时讨论写时模式与读时模式、规范化与反规范化,指出各类模型正在趋同。第3章对比 B-Tree 与 LSM-Tree 在写吞吐、读延迟、写放大、空间效率与事务支持上的差异及代表产品,并区分 OLTP 与 OLAP 的访问模式、用户、数据与规模,介绍 ETL、星型模式与列式存储。第4章比较 JSON、Thrift、Protobuf、Avro 的大小、模式与演进能力,说明向后与向前兼容规则,以及经数据库、服务、异步消息三种数据流模式。

二、分布式数据 涵盖第5至9章。第5章介绍单领导者、多领导者、无领导者三种复制模型,同步与异步及半同步复制,读己之写、单调读、一致前缀读等复制延迟问题的解法,以及 LWW、合并、应用层、版本向量等冲突解决方式与法定人数条件 w+r>n。第6章讨论键范围、哈希、复合分区策略,本地与全局二级索引,再平衡方式与请求路由。第7章列出读已提交、快照隔离、可串行化三种隔离级别可防止与仍允许的异常,说明脏读、脏写、丢失更新、写偏斜、幻读等并发异常,以及串行执行、两阶段锁、SSI 三种可串行化实现。第8章讲网络、时钟、进程三类不可靠性,强调不能用墙钟排序事件、超时是唯一故障检测手段,并提出围栏令牌、安全性与活性等原则。第9章从线性一致性到最终一致性排列一致性模型,介绍 2PC 与 Paxos/Raft/Zab 等共识算法、FLP 不可能性,以及 ZooKeeper/etcd 的协调模式。

三、派生数据 涵盖第10至12章。第10章从 Unix 哲学引出 MapReduce 流水线,介绍排序合并、广播哈希、分区哈希三种分布式连接策略,以及 Spark、Flink 等数据流引擎的改进。第11章比较 AMQP/JMS 与基于日志的消息代理,介绍变更数据捕获、事件溯源、流-流/流-表/表-表连接、滚动/跳跃/滑动/会话窗口,强调事件时间与处理时间的区别,以及微批、检查点、幂等等处理保证。第12章提出以事件日志作为集成骨干的数据集成模式、数据库解绑、端到端精确一次所需的操作标识与幂等、异步约束执行与可审计性。

文末附快速决策框架,按多对多关系、层级数据、写密集负载、分析查询、多数据中心、离线客户端、金融关键场景、历史数据重处理等条件给出选型建议。资料未提供安装命令、调用方式、收费与平台信息,暂未提供。