使用IBM Informix TimeSeries处理股票交易、智能电表等事务
随着世界仪表化程度的不断提升,IBM 的智慧地球 愿景也逐渐成为现实,IBM Informix TimeSeries 的价值越来越明显。由于起源于关键架构突破性 Informix Dynamic Server (IDS) 版本 9,Informix TimeSeries 是一款独特而又强大的技术,人们普遍将其视为处理大
随着世界仪表化程度的不断提升,IBM 的智慧地球™ 愿景也逐渐成为现实,IBM® Informix® TimeSeries 的价值越来越明显。由于起源于关键架构突破性 Informix Dynamic Server (IDS) 版本 9,Informix TimeSeries 是一款独特而又强大的技术,人们普遍将其视为处理大量时间戳数据的卓越工具。
Informix TimeSeries 的核心技术最初被描述为“对象关系模型”或“通用”。Informix 运用了专有(但并不十分生动)的营销术语“数据刀片”。
无论将它称作什么,这个概念都十分强大。您可以运用这项技术开放数据库,这样才能添加新的数据类型,其中包括通过运用新数据类型的特定操作人员来扩展标准 SQL 语言,从而添加新的“方法”。
由于用于添加这些扩展(数据刀片开发人员工具包)的应用程序编程接口 (API) 已经对客户端、合作伙伴和 Informix 开发人员完全开放,所以这些群体现在可以添加新数据类型支持。目前已经创建了数十种有趣的数据刀片,但其中的两种最为流行、对客户最有吸引力:处理时间序列数据和空间数据的扩展。
这些扩展得到广泛接受是有一定道理的。几乎每一家机构(无论是企业还是*机构)都具有地点和时间数据。
位置数据案例
位置(空间)数据对于现今已向许多数据库添加此类数据处理机制的机构而言十分有用,还有一些公司的业务基于提供与此搭配使用的空间数据和地图。例如,如果您每次使用网站时,网络均要求您提供邮政编码,然后向您显示最近的业务位置(如最近的 ATM),那么您使用的很可能是支持空间数据的数据库。
即使没有专门的时间序列数据和空间数据功能,您仍然可以在自己的数据库中保留地址,但您却很难对“从 26 Cherry St. 到 52 Adams St. in Springfield, OR. 有多远这类简单问题进行解答”。对于保存为未引用地理数据库的字符串的地址,它所包含的信息不足以回答此类查询。
时间序列数据需求
虽然通过空间数据扩展典型关系数据类型从概念上很容易掌握,但仍然需要对时间序列数据类型需求稍作解释。毕竟,自最早的数据库系统问世以来,时间和日期一直是重要元素,并且始终是数据库系统不可或缺的组成部分。任何联机事务处理 (OLTP) 系统中的常规事务都会用时间戳来标记。计费系统通常基于计费周期,以日期和时间为界限。因此,如果从一开始 SQL 中便支持日期和时间数据格式,那么为什么还需要使用特殊时间序列数据类型和相关方法?
简言之,时间序列数据是一个特殊案例,一些数据变化十分迅速,因而创建了大量数据点。对使用传统时间元素与时间序列数据进行比较十分有用。一个普通的银行帐户每天可能执行几笔交易;使用 SQL 时间和日期格式,为每项交易创建一个新行,这样做十分简单明了。从另一极端角度,需要思考大型股票交易创建的数据点数,例如,IBM 股票平均每天近四百万宗交易。纽约证券交易所每个交易日 6.5 小时,每分钟产生约 10,000 宗交易(换算成每秒钟 170 宗交易),投资公司可能需要充分适应这种节奏。
当然,使用标准 SQL 数据类型和格式记录此类信息是可以实现的。TPC-C 基准几十年前就已发明出来,可以帮助客户了解这些类型的方案涉及的各种供应商系统的吞吐能力。但是,如果我们的要求更高,将会怎么样?如果我们不仅需要写入大量交易,而且同时还要对大量输入执行一些操作,该怎么办?此外,如果我们需要将数据存储在同一位置以便持续运行查询,又该怎样做?扫描数十乃至数百个包含几百万行数据的表听起来很难快速获得查询结果。
这些都是现实问题,Informix 工程师和架构师正是被派遣通过 Informix TimeSeries 技术解决问题。至于 TimeSeries,早期采用者都是一些服务于大型投资公司的高价套利交易员。
开发 TimeSeries 技术
Informix 团队创造了多项技术,运用 IDS 并通过全新的数据类型和方法进行扩展。
首先,Informix 团队开创了更加有效的存储机制,用户不再需要为时间序列数据创建数百万冗余数据行。这种存储机制是一种 TimeSeries 数据,专门设计用于存储数据点(或“刻度”,如金融交易所使用的纸带)。此数据类型大大缩小了数据库规模,而且还减少了数据库中行数,使其能够承载套利交易员所需的海量交易数据(参见图 1)。随后,Informix 团队向查询语言 (SQL) 中添加了新的扩展,不再需要使用数十个语句才能提出简单问题,这简化了问题提问过程。
此外,Informix 团队还开发了一种更加迅速的数据库数据录入方法,其速度比 OLTP 系统使用的典型方法更加迅速。Informix 团队构建了高速加载器,以满足这种客户端关键任务需求。
图 1. Informix TimeSeries 通过避免创建数百万冗余行来简化存储。
从概念上了解 Informix TimeSeries 如何存储时间序列数据十分容易,并且演示了该产品的其他功能如何运用这种思想。我们的目标是确保其快速、有效且易于理解。当开发人员提取信息时,数据库系统十分有用。简单的概念模型才能实现轻松查询,并最终加速新型交易战略的开发和部署。这是竞争激烈的商品贸易世界的一项关键要求。
如果定期(例如,实验室以 1/10 秒为间隔测量传感器数据)提供时间序列数据,则需要通过进一步的细化来提高效率。Informix TimeSeries 不会存储时间戳,因为用户可以根据初始值来轻松计算时间戳。例如,如果传感器从 2:00:00.0 开始读取,而数据点是序列中的第 251 个数据点,那么时间戳将读取为 2:00:25.1。
在这篇文章的第 2 部分中,我们将探讨电力行业如何能够快速采用 Informix TimeSeries,并将其作为适应智能电表生成的海量时间戳数据的有效途径。