SAP HANA行和列存储表

SAP HANA Modeler视图只能在基于列的表的顶部创建。在列表中存储数据并不是什么新鲜事。早先假定以基于Columnar的结构存储数据需要更多的内存大小,而不是性能优化。

随着SAP HANA的发展,HANA在信息视图中使用了基于列的数据存储,并展示了列式表相对于基于行的表的真正优势。

列存储

在列存储表中,数据垂直存储。因此,类似的数据类型如上例所示。它借助内存中计算引擎提供更快的内存读写操作。

在常规数据库中,数据存储在基于行的结构中,即水平存储。SAP HANA以基于行和列的结构存储数据。这可以在HANA数据库中提供性能优化,灵活性和数据压缩。

将数据存储在基于列的表中具有以下好处-

  •  资料压缩

  • 与传统的基于行的存储相比,对表的读写访问速度更快

  • 灵活性和并行处理

  • 更快地进行汇总和计算

功能差异-行与列存储


如果SQL语句必须执行聚合函数和计算,则始终建议使用基于列的存储。当运行汇总函数(例如Sum,Count,Max,Min)时,基于列的表始终会表现更好。

当输出必须返回完整的行时,首选基于行的存储。下面给出的示例很容易理解。

在带有Where子句的sales列中运行聚合函数(求和)时,它将仅在运行SQL查询时使用Date和Sales列,因此如果它是基于列的存储表,则将对其性能进行优化,因为仅需两个数据即可列。

运行简单的Select查询时,必须在输出中打印完整的行,因此建议根据此方案将表存储为Row。