HANA 内存数据库

SAP HANA

把整份业务数据放进内存里,让几亿行账目也能秒级出报表。

存储与数据出现时间 · 2010 年前后通常按内存容量授权,与 SAP 套件捆绑销售较多。内存数据库列存储实时分析HTAP
看官方文档

01 它是干嘛的

HANA 是 SAP 自研的数据库,也是 S/4HANA 的地基。它的核心思路是把数据常驻内存并采用列式存储,让「一边处理交易、一边跑分析」在同一份数据上完成,不必先把数据搬到另一个分析系统里去。

02 为什么会有它

以前:交易系统和报表系统必须分成两套

传统做法是两套系统:一套专门处理下单、发货这类高频小操作(OLTP),另一套专门跑汇总统计(OLAP)。每天夜里把交易库的数据抽出来、清洗、搬进分析库,第二天早上出报表。

这个架构的代价是「永远慢一天」,而且两套系统的数据模型不同,口径容易打架。企业为了一个实时数字,往往要额外做一堆中间件。

内存价格持续下降让工程师开始想:既然内存便宜了,为什么还要把数据放在慢得多的磁盘上?HANA 就建立在这个判断上——数据常驻内存、按列存储,聚合运算可以极快完成,于是同一份数据既能写也能算。

03 它怎么工作

行式存储适合一次取一整条记录,列式存储适合一次扫一整列。报表大多只关心少数几列的汇总,列存因此快很多。

数据仓库的分层:数据只往上流① 定时同步② 清洗③ 聚合④ 出表业务数据库订单 / 用户表日志与埋点用户行为流水第三方数据广告 / 渠道回传原始层 ODS原样搬进来,不改动明细层 DWD清洗、去重、统一口径汇总层 DWS按天/按用户聚合应用层 ADS直接给业务用看板报表给运营和老板看模型训练喂给算法为什么要分层?因为「原始数据不干净、口径不统一」。先如实存下来,再逐层加工成可信的指标。对外服务层加工环节
这张图原本描述数仓的分层结构,HANA 的价值在于把「贴源层 → 明细层 → 汇总层」之间的搬运时间压缩到近乎为零。

为什么列式存储让统计变快

  1. 1
    ① 按列存放

    同一字段的值连续存放,统计「销售额总和」时只需读这一列,不必把整行都搬出来。

  2. 2
    ② 压缩

    同列数据相似度高,可用字典编码等方式大幅压缩,更多数据能塞进内存。

  3. 3
    ③ 常驻内存

    热数据放在内存,省掉磁盘寻道时间,扫描速度提升一个量级。

  4. 4
    ④ 增量合并

    新写入先进入增量区,再后台合并进主列存储,兼顾写入性能与读取效率。

  5. 5
    ⑤ 一份数据两种活

    交易与分析跑在同一份数据上,报表看到的永远是最新状态,不再隔夜。

04 谁在用它

需要实时经营看板的企业

管理者要看的是此刻的库存与毛利,而不是昨天的数据。

海量明细的自助分析

上亿行凭证仍要支持任意维度下钻。

ERP 与分析的统一平台

希望一套系统同时承担交易与分析,减少数据同步链路。

高频结算与关账

月末关账要在数小时内完成千万级凭证的汇总。

05 怎么用

HANA 通常随 S/4HANA 一起落地,单独使用者多为数据平台工程师。

  1. 01先搞清楚自己要优化的到底是写入慢还是查询慢,两者解法不同。
  2. 02用列存表存放事实数据、行存表存放需要整行读取的配置表。
  3. 03为高频查询建计算视图而不是反复写复杂 SQL。
  4. 04监控内存占用,HANA 的成本主要来自内存规模。

避坑提示

  • !内存数据库不是「快」的万能药,索引与建模不合理时一样会慢。
  • !许可证通常按内存容量计价,容量规划直接决定成本。

06 关键概念

行存与列存
行存适合一次取一条完整记录,列存适合对某一列做统计,报表场景列存优势巨大。
内存数据库
数据主要放在内存而非磁盘,延迟低一个量级,代价是内存成本高、需要持久化兜底。
HTAP
同一套系统既做交易又做分析,省掉两套系统之间的数据搬运。
增量合并
新数据先写增量区再异步整理进主存储,兼顾写入速度与读取效率。

07 容易混淆的对比

Oracle Database传统强者,生态成熟;HANA 在分析型负载上更激进地押注内存。
Snowflake纯分析型、存储计算分离,适合做企业级数仓而非承载交易。
图软件图鉴

纯静态站点,无后端、无追踪。内容为中文原创撰写,用于帮助非技术读者理解主流软件产品。

关于本站

全部内容在构建时生成
产品名称与商标归各自公司所有

© 2026 软件图鉴Nuxt 4 · Vue 3 · Tailwind 4 · 纯静态