数据投影介绍
在计算机软件架构和数据库设计中,数据投影(Data Projection) 主要有两种常见概念:
1. 业务架构 / CQRS 中的数据投影(结合日志场景)
结合上一轮提到的日志文件 projection_log.jsonl,这里的“数据投影”通常指的是 CQRS(命令查询职责分离) 或 Event Sourcing(事件溯源) 架构中的关键技术。
-
核心概念:
系统不直接在数据库里修改最终的状态,而是把发生的每一个业务动作(事件)按顺序记录下来(通常写进事件日志中)。数据投影就是把这些原始的事件流/日志“转换并计算”成某种特定形态的数据视图(View/Read Model)的过程。 -
通俗比喻(银行流水与余额):
-
原始事件/日志: 存入 100 元、取出 30 元、转入 50 元...
-
投影计算: 将上面的流水按顺序计算一遍,得出当前“账户余额:120 元”。
-
这里的“余额 120 元”就是经过投影生成的数据视图。
-
为什么叫“投影”?
就像把一个复杂的 3D 物体用光照射,投影到 2D 墙面上一样:原始事件日志包含最完整的所有历史信息,而投影则是根据特定的业务需求,提取并加工出某一个特定维度的结果。 同一份日志可以生成不同的投影(例如:一个投影生成“用户账户余额表”,另一个投影生成“今日交易统计报表”)。
2. 数据库与 SQL 查询中的数据投影
在传统的数据库和数据处理(如 SQL、Pandas)中,“数据投影”指的是列选择操作(Selection of Columns)。
- 核心概念:
从包含大量属性/列的表或数据集中,只提取你需要用到的那几个字段,过滤掉无用的字段。 - SQL 示例:
-- 这是一个“选择/过滤 (Selection/Filter)”操作:筛选出符合条件的行
WHERE age > 18
-- 这是一个“投影 (Projection)”操作:只提取 id 和 name 两列
SELECT id, name FROM users
总结
- 在 日志 / 架构(如
projection_log.jsonl) 中:数据投影指的是“把历史日志事件流转换/重构为某种最终业务状态”的过程。 - 在 数据库 / 数据分析 中:数据投影指的是“只挑选数据中的某些列”的操作。

浙公网安备 33010602011771号