SAP HANA Temporal Table (历史表)

2024-05-11 21:38
文章标签 历史 table sap temporal hana

本文主要是介绍SAP HANA Temporal Table (历史表),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       引自《SAP HANA 实战》 刘刚 舒戈 著  2.4.2.3

       除了行、列存储的数据库表外,HANA还提供了 Temporal Table(简称历史表或临时表)。它和普通表的区别是所有历史表中的数据更新都不会对原始的数据记录进行真正的更新。

      Temporal Table 的特点:

  • 插入新数据记录,系统会插入新的数据
  • 更新就数据记录系统会插入更新后的数据,并生成新版本,即时在版本合并期间的历史版本也不会被删除
  • 删除数据,不会删除原始的数据记录,而是插入新数据,并且在数据的“有效期至”这列中设置删除的当前时间戳(应该              和通常说的假删标志和修改时间类似的方式)
  • 定义 Temporal Table 时不能指定特定的数据库主键

       Temporal Table 保留原始数据记录,以及对原始数据进行的所有的数据更新操作历史纪录,这样用户可以查询到数据过去的历史状态。

       外部应用访问 HANA 数据库的数据,在默认情况下,SQL 查询只返回最新版本的数据记录。用户也可以在 SQL 上指定查询数据的时间范围(类似数据的时间旅行概念,可以浏览这个数据在这一时间段内的所有更新变化 ),这种基于过去时间的数据查询,目前只有列存储方式的Temporal Table 对其提供支持,行存储的 Temporal Table 暂时还没有出现在SAP 官方的功能列表中。

       用户可以通过 SQL 来创建 Temporal Table ,比如通过下面这样的形式。

CREATE GLOBAL TEMPORARYCOLUMN TABLE 表名(字段名类型);eg: CREATE GLOBAL TEMPORARY TABLE TEST (A int , B int , C int )

或者在 HANA Studio 中使用向导创建数据库表时设置成Temporal Table 即可。

       如果查询过去的历史记录,则可以考虑使用一下的SQL 语法。查询相同的数据在不同时间的变化需要通过两个参数,一个是数据更新时最后事务提交的COMMIT ID,另一个是需要指定时间戳。

SELECT * FROM <TABLENAME>AS OF CPMMIT ID XXX
或
SELECT * FROM <TABLENAME>AS OF UTCTIMESTAMP '2018-11-23 10:50:00'

 

这篇关于SAP HANA Temporal Table (历史表)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980728

相关文章

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

SAP学习笔记 - 开发02 - BTP实操流程(账号注册,BTP控制台,BTP集成开发环境搭建)

上一章讲了 BAPI的概念,以及如何调用SAP里面的既存BAPI。 SAP学习笔记 - 开发01 - BAPI是什么?通过界面和ABAP代码来调用BAPI-CSDN博客 本章继续讲开发相关的内容,主要就是BTP的实际操作流程,比如账号注册,登录,BTP集成开发环境的搭建这方面。 目录 1,账号注册 2,BTP登录URL 3,如何在BTP上进行开发? 以下是详细内容。 1,账

通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示

点击“会商人员情况表”,弹出层,显示一个表格,如下图: 利用Ajax和Jquery和JSONArray和JsonObject来实现: 代码如下: 在hspersons.html中: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>会商人员情况表</title><script type="text/javasc

SAP项目中沟通的几点总结

最近参与的公司SAP RISE项目,由于是国际项目,全程远程实施,所以沟通显得尤为重要,有几点总结跟大家分享。   1.     提前沟通 提前沟通比事后沟通效果好太多。作为项目管理者,需要把下一步的计划等信息提前通过一定的形式(会议、邮件、Teams Channel等)传播出去。而不是等着这个事情发生了,项目组成员来询问,一方面这样很浪费时间,也会对项目进队产生影响,所以作为项目管理者永

UVa 10820 Send a Table (Farey数列欧拉函数求和)

这里先说一下欧拉函数的求法 先说一下筛选素数的方法 void Get_Prime(){ /*筛选素数法*/for(int i = 0; i < N; i++) vis[i] = 1;vis[0] = vis[1] = 0;for(int i = 2; i * i < N; i++)if(vis[i]){for(int j = i * i; j < N; j += i)vis[j] =

css-table

设置table的文字不换行:给th,td添加white-space: nowrap; 设置单元格内容及其边框的距离:使用html的cellpadding属性,还有一种方式设置padding。在CSS中,table, th, td{padding:0;}效果等同于cellpadding="0″。 设置table的单元格边距:border-spacing如果定义一个 length 参数,那么定义的是水

Git Gui 查看分支历史的时候中文显示乱码

如图所示 在Git Gui工具栏上选择-编辑-选项: 选择:Default File Contents Encoding, change为UTF-8 成功:

KDD 2024 时空数据(Spatio-temporal) ADS论文总结

2024 KDD( ACM SIGKDD Conference on Knowledge Discovery and Data Mining, 知识发现和数据挖掘会议)在2024年8月25日-29日在西班牙巴塞罗那举行。 本文总结了KDD2024有关时空数据(Spatial-temporal) 的相关论文,如有疏漏,欢迎大家补充。 时空数据Topic:时空(交通)预测, 生成,拥堵预测,定价预