数据投影介绍

在计算机软件架构和数据库设计中,数据投影(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 中:数据投影指的是“把历史日志事件流转换/重构为某种最终业务状态”的过程。
  • 数据库 / 数据分析 中:数据投影指的是“只挑选数据中的某些列”的操作。
posted @ 2026-07-30 07:25  立体风  阅读(4)  评论(0)    收藏  举报