Maria Colgan是Oracle的首席产品经理。
传统观点认为,关系数据库的可伸缩性或健壮性不足以处理大量连接,海量吞吐量以及掌握IoT(物联网)应用程序所需的所有绝妙技巧。 但是我知道这是不对的,因为Oracle客户已经这样做了多年。 究竟如何完成?
首先,让我们确保我们同意物联网的含义。 官方定义是通过日常对象的Internet互连,使它们能够发送和接收数据。 物联网涉及各种设备,从手表,电视和电话到烤箱,冰箱和通过连接和共享数据而变得“智能”的煤气表。 在某些时候,需要收集此数据以进行挖掘。
从数据库的角度来看,组织需要捕获从IoT设备发送的海量数据,将其吸收,然后根据业务需要对其进行挖掘。 摄取和快速分析这些数据对于企业在当今24 / 7、100%正常运行时间的商业环境中保持竞争优势至关重要。 这可以采用许多不同的形式,其中大多数形式在优化的关系数据库和硬件上都可以正常工作。
要使用SQL还是NoSQL?
一个常见的误解(由市场营销活动延续)是IoT工作负载需要NoSQL数据库,因为所需的接收率超过了传统关系数据库的功能。 正如许多Oracle客户所证明的那样,事实并非如此。 我们发现,与某些完整的NoSQL环境相比,优化的关系数据库可以在Oracle RAC集群的单个节点中吸收更多的信息。 请注意,我说的是一个优化的关系数据库。
总体而言,物联网工作负载的特征包括大量的小型轻量级转换,通常包括诸如地理空间数据和非结构化数据(视频或音频记录)之类的复杂数据类型。 因此,例如,从腕带收集健身数据的公司使用地理空间数据(记录行走的路线)以及步数,心率等。
尽管最近进行了大肆宣传,但高负荷工作负载并不是一个新概念。 例如,我们的一位电信客户每秒处理数百万个呼叫详细记录,每天最多可增加18 TB的数据。
在关系数据库上运行的证券交易所每秒记录180,000条消息,每天总计多达15 TB的数据。
那么他们该怎么做呢? 关键要求是可伸缩性,灵活性以及提供实时分析的速度。 筛选非结构化数据时使用优化的硬件也是成功的重要组成部分。
物联网关键1:数据库可扩展性
可伸缩性是系统提供与可用硬件资源成比例且仅受可用硬件资源限制的吞吐量的能力。 扩展Oracle数据库系统有两种不同的方法:Real Application Clusters和分片。
使用Real Application Clusters(RAC),任何打包或自定义应用程序都可以在连接到共享存储的服务器池中不变地运行。 如果池中的服务器发生故障,则数据库将继续在其余服务器上运行。 当需要更多处理能力时,您只需将另一台服务器添加到池中,而不会造成任何停机时间。
分片允许将大型数据库分区为较小的数据库或分片,每个数据库或分片可以存储在不同的硬件上。 想象一下一家全球零售公司,它拥有一个庞大的关系数据库,其中包含已分拆的所有可用商品; 数据库的每个分片将包含目录的一部分。
当查询询问特定的窗口小部件时,数据库服务器会知道这些窗口小部件类型存储在哪个分片上,并直接从那里检索数据。 这种全球经济的另一个好处是,可以为每个国家/地区创建一个分片,并将本地法规应用于该特定分片。 例如,德国要求将所有德国数据实际存储在该国境内。 使用碎片很容易做到这一点。
到目前为止,大多数大规模运行的数据库都提供分片,包括MongoDB,Microsoft SQL Server和PostgreSQL。 但这还不足以分片数据。 同样重要的是有效运行跨分片查询的能力,这大大减少了获得完整业务视图所需的时间。
物联网的一项关键要求是能够快速提取大量数据的能力。 因此,无论数据在何处分段,该存储的带宽将比数据库本身更能控制负载的速度。 毕竟,数据加载永远不会比读取数据快。 如果网络每秒读取的速度不能超过200兆字节,那么数据加载的速度也不能超过每秒200兆字节。
可伸缩性的其他重要组成部分是使用数组插入(与单行插入相反),并行执行以及使用外部表。
物联网关键2:数据库灵活性
灵活性是指快速,轻松地适应变化的能力。 物联网仍处于起步阶段,每台设备都有新的用例。 能够轻松适应数据格式的变化至关重要。 面对此要求时,开发人员经常转向JSON。 JSON极大地简化了应用程序开发,因为它允许在应用程序和数据库中使用相同的无模式表示。
分区也是实现大规模灵活性的关键。 分区使大量数据更易于管理,提高了整体性能,并且对应用程序完全透明。 分区的另一个好处是能够将历史数据存储在单独的分区中,从而可以将数据压缩并移动到较低的存储层。 这样,数据可用于数据挖掘,但不会减慢实时查询的速度。
物联网关键3:实时分析
如果不及时分析数据以达到影响业务成果的目的,那么所有这些加快数据接收和数据存储的技巧都将毫无用处。 最终,企业必须利用数据,这意味着要取出数据。
对于一家全球零售组织而言,一个目标可能是汇总所有分片上出售的产品,以确定在任何时间点上全球最受欢迎的十大产品。
对于一家国际电信公司而言,相同的数据库体系结构可能会以几种不同的方式提供帮助。 他们的大多数查询来自客户,因此他们可以同时使用分片和分区来从查询执行中消除很大一部分数据存储,从而提高满足客户期望所需的速度。
在内部,业务经理希望减少客户流失并提高盈利能力,因此他们在分片和分区中挖掘数据,寻找允许他们确定哪些客户可能要取消其服务或哪些其他产品的模式(例如,国际数据计划) ),他们可以主动为客户提供服务。
例如,他们可能提取取消并对其进行分析的客户的计费历史记录。 他们离开之前发生了什么事? 有什么共同的模式吗? 在切换到另一个提供商之前,是否有相当大的百分比超支了数据并连续获得三笔大账单?
一旦确定了这些模式,就可以采取积极措施保持业务。 例如,在客户经历了超支数据分钟的两次高峰之后,代表可以联系他们以提供更多数据的不同计划并避免取消。
要了解有关简化数据库和更新针对IoT工作负载优化的硬件的其他技巧的更多信息, 请查阅本白皮书 。
Maria Colgan是 Oracle的 首席产品经理 。 Maria的核心职责是编写有关Oracle数据库以及将其整合到您的环境中的最佳实践的材料和讲座。 她还负责将我们的客户和合作伙伴的反馈纳入产品的未来版本中。 在担任该职位之前,Maria是Oracle Database In-Memory和Oracle Database查询优化器的产品经理。 Maria是 SQLMaria博客 的主要作者, 也是 Oracle Optimizer博客 的特约作者 。
-
新技术论坛提供了一个以前所未有的深度和广度探索和讨论新兴企业技术的场所。 选择是主观的,是基于我们对InfoWorld读者认为最重要和最感兴趣的技术的选择。 InfoWorld不接受发布的营销担保,并保留编辑所有贡献内容的权利。 将所有查询发送到 newtechforum@infoworld.com 。