写点什么

NoSQL、JSON 和时间序列数据管理: Anuj Sahni 访谈

  • 2014-04-29
  • 本文字数:1745 字

    阅读完需:约 6 分钟

时间序列数据是以固定的时间间隔按顺序排列的变量值。时间序列数据正从四面八方向我们涌来:传感器、移动设备、Web 追踪、财经事件、工厂自动化以及各种工具—只列举这几个吧。

时间序列数据管理最近比较受关注,InfoQ 采访了 Oracle NoSQL 数据库的高级产品经理 Anuj Sahni,请他介绍时间序列数据,以及如何对这种类型的数据建模。

InfoQ: 什么是时间序列数据,它跟结构化数据有什么区别?

Sahni: 时间序列是按统一的时间间隔采集的数据点序列。比如来自全球证券交易所的股票行情信息,定期采集的贵金属价格,按周期间隔采集的特定经 / 纬度的天气详情,从制造机械或石油钻井平台的传感器上源源不断输出的数据。时间序列信息不一定会跟结构化数据有什么不同,但它是 a) 数量和速度出众 b) 信息的稀疏性使得很难用传统的数据存储方式保存它,因为那种方式是为定义良好的结构化数据设计的。

InfoQ: 将一个数据集建模为时间序列数据有什么好处?

Sahni: 并不是所有的数据都需要用时间序列表示,但如果你有持续的信息项进来(比如说来自于传感器),并且你想要基于时间维度分析那些数据,那么比较稳健的做法是保留每条信息项的到达时间,并为之建立索引以便提高查询速度。

InfoQ: 为了把时间序列类型的数据保存在我们的数据库中,设计时要考虑哪些问题?

Sahni: 时间序列数据,一般来说,都是大量生产的,所以需要特别考虑如何保存在数据库中,以及如何很好地访问它们。所以你应该尽量事先明确数据的访问方式,比如在证券交易的演示中,我们知道每只股票的行情信息都是每秒生成一次的,即每只股票每天有 86K 的行情信息。如果我们把那么多条记录都各自存在不同的行中,那访问这些信息的时间复杂度将会非常巨大,所以我们可以按 5 分钟,1 小时,或者一天将这些记录分组为一条向量记录。把信息存在更大数据块里的好处显而易见,因为你要从 NoSQL 存储中获取特定时间段的数据时,所做的查询次数更少。还有一点需要记住,如果你开的窗口太小,那你就要做很多的读写操作;如果太大,那耐久力就是个问题,如果出现系统故障,你就要有信息丢失了。所以你得掌握好两者的平衡。

InfoQ: 在使用时间序列数据时,开发人员应该遵循什么样的设计或架构模式呢?

Sahni: 在设计任何一个时间序列应用时,最重要的就是要了解客户端应用的访问模式,以及它所要求的信息粒度。尽管我们可能需要持久化所有的时间序列数据,但一般我们不需要把每个数据点都存成数据库里的单独记录。如果我们可以定义一个时间窗口,然后把那个时间段的所有读取都存为一个数组,那么我们可以极大削减存储在数据库中的实际记录数量,提升系统的性能。继续前面那个例子,如果每支股票每天生成 84K 的数据点,那么你在访问这些信息时就需要在硬盘上做很多的随机 I/O,简直太多了,但如果你可以把同样的信息存为一个数组,每个数组放一个小时的信息,那么取一天的数据只需要查询 24 次就行了。

另外一个需要平衡的是数组对象的大小 (不管是 JSON, XML 还是其他什么东西)。你应该不想让数组的窗口大小大到最终返回的数据超出你的需要太多,那样就浪费了宝贵的带宽。但如果你把窗口定的太精细,那很可能会降低吞吐量,并增加系统的延迟。所以要处理好两边的平衡,得出合适的时间窗口大小,从 / 往数据库中读 / 写时间序列数据集合。

InfoQ: 把数据集存为时间序列数据有什么限制吗?

Sahni: 我得说处理时间序列数据所面临的真正挑战是基于需求和访问模式微调系统。如果将来访问模式变了,那你可能必须重建索引,重新计算数组的大小来优化查询。所以每个时间序列应用的定制性都非常强,你可以采用最佳实践,但却不能指望只通过引入数据建模模板来解决不同的时间序列问题。

Anuj 还在去年的 JavaOne 大会上讲了如何在应用中管理时间序列数据。

关于受访者

Anuj Sahni是 Oracle 的高级产品经理 **,他负责管理公司在NoSQL数据库和大数据产品上的领导地位。**Anuj 在世界 500 强公司里有超过 12 年的产品管理 / 开发经验。他领导过高度成功的、分布在全球的跨职能团队开发新软件和基于云的服务。Anuj 在佛罗里达大学取得了计算机工程硕士学位,还在生物信息学领域发表过学术论文。在闲暇时,他喜欢骑行、追踪,还有跟他的两个女儿玩。

查看原文链接: NoSQL, JSON, and Time Series Data Management: Interview with Anuj Sahni

2014-04-29 08:054787
用户头像

发布了 45 篇内容, 共 26.7 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

云起无垠入围“2024第五届“科创中国”科技创新创效大赛总决赛TOP10企业榜单”

云起无垠

如何区分产品研发管理和研发项目管理?实用指南

易成研发中心

项目管理 产品研发 产品研发管理

【教程】第七章:工作流——自动赋能,效率飞跃

NocoBase

开源 工作流 低代码 教程 无代码

iMovie 剪辑 for Mac(专业视频剪辑工具)v10.4.3中文版

Rose

Go Web服务中如何优雅平滑重启?

左诗右码

量子计算与人工智能的交汇:科技未来的新引擎

天津汇柏科技有限公司

人工智能 量子计算

PowerPhotos for Mac(mac专用图片管理工具)v2.6.4直装版

Rose

Dash for Mac(好用的API文档工具)v7.3.2激活版

Rose

一文读懂计算机视觉「目标检测」的基本原理和主流模型

Zilliz

人工智能 计算机视觉 目标检测

智能生产管控数字化平台(源码+文档+部署+讲解)

深圳亥时科技

Final Cut Pro 11 正式发布带来强大的 AI 工具(fcpx视频剪辑最新版下载)

Rose

易于使用的 PDF 编辑器和注释器 PDF Expert for Mac

Rose

MES信息系统建设整体方案,MES技术方案书,需求规格说明书(Word原件完整版)

金陵老街

解决方案 系统源码

Logic Pro X 11 mac苹果版音乐创作软件

Rose

百度智能云 VectorDB 优势项目数量并列 TOP 1

Baidu AICLOUD

Milvus Zilliz 向量数据库 VDB

Compressor for Mac:满足专业需求的强大文件压缩工具

Rose

荣誉|奇点云入选首批“百舸企业”名单

奇点云

「混合专家模型」可视化指南:A Visual Guide to MoE

Baihai IDP

程序员 AI LLMs MoE 混合专家模型

利用人工智能 ChatGPT 提升测试开发能力:通往高效之路

测试人

软件测试

探究亚马逊详情API接口:开发与应用

科普小能手

API API 接口 亚马逊API 亚马逊商品详情API 亚马逊API接口

SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍

江南一点雨

超越传统截图,TechSmith Snagit 的高级功能让你眼前一亮!

Rose

乘风破浪的“厂二代”|《你好!厂长》第八期全国首映,见证​逆风翻盘的精彩人生

科技热闻

探索DDCA:深入理解内存架构、子系统与内存控制器

代码忍者

电脑重装系统后硬盘数据可以恢复吗?系统重装后以前的文件怎么找回来?

阿拉灯神丁

EasyRecovery 数据恢复软件 电脑 备份 & 恢复 系统还原

房主、设计师都爱的 Live Home 3D Pro,家居设计不再犯难!

Rose

充电桩管理平台(源码+文档+部署+讲解)

深圳亥时科技

NoSQL、JSON和时间序列数据管理: Anuj Sahni访谈_Oracle_Srini Penchikala_InfoQ精选文章